Platform: LinkedIn only. Company watchlists track LinkedIn company pages; there is no Reddit equivalent. Collection requires your team’s OutX Chrome extension to be installed and active (within the last 48 hours). See Choose a watchlist type.
Request Body
string
Watchlist name. If not provided, a name will be auto-generated.
array
required
Array of LinkedIn company identifiers. The API automatically detects and extracts identifiers from various formats (LinkedIn URLs, company slugs, LinkedIn URNs, or direct URN IDs).
string
Optional description for the watchlist
string
Add the companies to an existing list instead of creating a new one. This is the older add-members path, from before
PUT could edit membership. It still works, but to add or remove companies on a watchlist you already have, use add_companies and remove_companies on the update endpoint.number
default:"12"
Fetch frequency in hours. Allowed values:
1, 3, 6, 12, 24, 48, 72.string
Optional retry key you choose, up to 128 characters. A second create carrying the same key within about two minutes returns the watchlist the first one made instead of a duplicate. Send one on every create. See Idempotency.
Limits
Both caps run before anything is created, so a rejected create leaves nothing behind.
The team allowance is the real ceiling: free 400, growth 1,000, expert 4,000, ultimate 20,000, counting every profile and company on every watchlist you own. Making more watchlists does not raise it. Watchlists themselves are capped separately by plan; check both with
GET /api-team.
Supported Company Formats
LinkedIn URLs
LinkedIn URLs
Company Slugs
Company Slugs
LinkedIn URNs
LinkedIn URNs
Full URN format (automatically extracts the unique ID):
Direct URN IDs
Direct URN IDs
Numeric company IDs:
Idempotency
Two guards stop a retry from creating a second watchlist. Both run before the plan-watchlist check, so a retry that matches gets the existing watchlist back rather than a402. A retry that does not match falls through to a normal create, plan check included, so 402 is still possible: most often when the matched watchlist turned out to be incomplete (see the warning below) and a fresh one has to be built.
- Your own key (recommended). Send
idempotency_key: any string up to 128 characters, unique per logical create. A UUID per create is the simplest choice. A second request with the same key, from the same team, within about two minutes is answered with the watchlist the first one made, whatever else the body says. - Without a key, a create is matched against watchlists your team made in the last couple of minutes that agree on the name you chose, the description, the Slack webhook, and the companies themselves. A create that named a
list_idmatches when that list already holds every company you asked for; a create that did not matches when the list holds exactly those companies and no others.
created: false and deduplicated: true. Treat it as success.
400 before anything is created.
Response Fields
string
Unique identifier for the watchlist
string
Watchlist name
string
URL-friendly slug for the watchlist
string
Always “company” for company watchlists
number
What this counts depends on which response you got:
- On a fresh create (
created: true): the company rows this call actually inserted. When you passed alist_id, that is the companies this call added, not the list total. - On a deduplicated response (
created: false): the number of identifiers you sent in the request, echoed back. It is not the existing watchlist’s company total.
GET /api-company-watchlist?id=... and read companies_count there.number
Fetch frequency in hours
boolean
true when a new watchlist was created, false when an existing watchlist was returned instead. See Idempotency.boolean
Present and
true only when a duplicate guard returned an existing watchlist. Absent on a normal create.number
On a fresh create, the number of tracking tasks this call queued. On a deduplicated response, the number of tracking tasks the existing watchlist already has, so the field is never absent just because nothing new was created.
Use Cases
Competitor Analysis
Competitor Analysis
Monitor competitor company pages for announcements and updates:
Partnership Monitoring
Partnership Monitoring
Track potential or existing partners:
Industry Research
Industry Research
Follow companies in your industry vertical:
Frequently Asked Questions
Is there a maximum number of companies I can add to a single watchlist?
Is there a maximum number of companies I can add to a single watchlist?
200, on every plan. See Limits above, and note the separate team-wide allowance that caps the total across all your watchlists.
I need to track more companies than the cap allows. Should I split them across watchlists?
I need to track more companies than the cap allows. Should I split them across watchlists?
No. The team allowance counts every tracked profile and company on every watchlist you own, so extra watchlists do not raise your total. Upgrade the plan, or drop the pages you no longer follow.
How soon does tracking start after I create a company watchlist?
How soon does tracking start after I create a company watchlist?
Tracking tasks are created immediately, and
tasks_created confirms how many were queued. Company watchlists do not backfill, so the feed fills from the first fetch cycle onward rather than showing history right away.How do I add companies to a watchlist I already created?
How do I add companies to a watchlist I already created?
Send
add_companies to PUT /api-company-watchlist. Do not call create again with the same name. Without an idempotency_key, a create is deduped only when the name, description, webhook and the exact company set all match a create from about the last two minutes. A same-name create with a different company set makes a second watchlist.
