error field containing a human-readable message.
Error Codes
400, Bad Request
Missing or invalid parameters. Check the error message for specifics. Watchlist endpoints:
Engagement endpoints:
LinkedIn Data endpoints:
401, Unauthorized
API key is missing or invalid.
Fix: Include your API key in the
x-api-key header. Get your key at mentions.outx.ai/api-doc.
402, Plan Limit Reached
Your team has hit a plan-based limit. The error message includes your current limit.
Fix: Upgrade your plan at outx.ai/pricing or wait for daily/weekly limits to reset.
Plan limits by tier:
Notes on the table:
- The weekly post limit counts posts with a relevance score of 4 or higher. Free teams whose extension and human activity have gone quiet for a while are limited to 100 posts per watchlist per week.
prois a legacy plan identifier. It carries the same limits asgrowth. There is no enterprise plan on the API.- These are quotas on how much you can have, not on how often you can call the API. There is no request rate limit on any plan.
- Hitting a quota returns
402with a message naming the limit. See Error Codes.
403, Forbidden
Access denied. Most commonly caused by the Chrome extension not being active.
Fix for plugin error: Install the OutX Chrome extension, sign into LinkedIn in the same browser, and keep the browser open. The extension must have been active within the last 48 hours. See Chrome Extension Guide.
404, Not Found
The requested resource does not exist or belongs to a different team.409, Conflict (Disabled Watchlist)
PUT /api-keyword-watchlist or PUT /api-reddit-watchlist against a paused watchlist. A disabled watchlist rejects updates so a paused list cannot be silently mutated or backfilled.
The one request that gets through is an explicit re-enable: a patch-mode PUT carrying disable: false is allowed, otherwise a paused watchlist could never be turned back on. Prompt mode has no such exception, so you cannot re-enable and re-prompt in one call: re-enable first, then send the new prompt.
Fix: Re-enable first, then retry the update:
disabled field on the type’s GET endpoint (GET /api-keyword-watchlist?id=... or GET /api-reddit-watchlist?id=...).
422, Prompt Not Specific Enough
Keyword and Reddit watchlists only, on a prompt-mode create or update. The prompt is checked before anything is written, so a422 means nothing was created and nothing on an existing watchlist was changed.
This is one of the two error bodies that carry more than an error field (the other is the 503 below):
Prompts refused this way: one with no subject in it (“find me buyers”), an unfilled
[PLACEHOLDER], a bare LinkedIn profile link (use a people watchlist), a bare URL, a request for engagement on your own posts, keyboard mashing, and anything under 6 words or 30 characters.
error, reason, missing, detected and example are always present. question is the only optional one.
The same status and body shape are returned when you send strict: true on a prompt-mode create and the prompt left something to be inferred. There, missing lists the inferred slots and detected.interpretation shows how the prompt was read.
Fix: ask your user the question if there is one, otherwise rewrite the prompt in the shape of example. Do not guess a topic on the user’s behalf.
503, Interpretation Unavailable
strict: true. Nothing was created. Both error and message are always present. Retry, or drop strict and accept inferred values.
405, Method Not Allowed
429, not used
No OutX endpoint returns429 for request volume. There is no API request quota on any plan. What is capped is the LinkedIn-side work your calls trigger, and that surfaces as a queued task, not an HTTP error. See Rate Limits. The one exception is POST /linkedin-agent/send-connection-request, which returns 429 with LinkedIn invitation limit reached when LinkedIn’s own weekly invitation cap is hit; that is LinkedIn’s limit, not a request quota, and the retry is the following week.
500, Internal Server Error
An unexpected error occurred on our side. Retry with exponential backoff. If the error persists, contact support@outx.ai.Error Response Format
Every error, on every endpoint, is a JSON object with a singleerror field:
error string for specifics.
The one exception is the prompt refusal (422 and the strict-only 503), where error is a stable machine-readable code (prompt_not_specific_enough, interpretation_unavailable) and the body carries extra fields to act on. See 422 above.
Frequently Asked Questions
Why am I getting a 403 error even though my API key is correct?
Why am I getting a 403 error even though my API key is correct?
The most common cause is the Chrome extension requirement. At least one team member must have the OutX Chrome extension installed and actively used within the last 48 hours. Install the OutX Chrome Extension, sign into LinkedIn in the same browser, and keep the browser open.
What does 'Plugin installation required' mean?
What does 'Plugin installation required' mean?
OutX retrieves LinkedIn data through real browser sessions via the Chrome extension. This error means no team member has had the extension active recently. The extension runs in the background, just keep Chrome open with the extension installed and it will stay active.
How do I fix a 402 plan limit error?
How do I fix a 402 plan limit error?
402 errors mean you’ve reached a limit on your current plan. You can either upgrade your plan at outx.ai/pricing, wait for daily/weekly limits to reset, or delete existing resources (like watchlists) to make room for new ones.
Do daily limits reset at a specific time?
Do daily limits reset at a specific time?
Yes. Daily limits (likes, comments) reset at UTC midnight (00:00 UTC). Weekly limits (posts per watchlist) reset on Monday at 00:00 UTC.

