Skip to main content
All OutX API errors return a JSON object with an 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.
  • pro is a legacy plan identifier. It carries the same limits as growth. 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 402 with 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.
The 403 plugin error is the most common API issue. If you’re getting this error, check that:
  1. The Chrome extension is installed on at least one team member’s browser
  2. That browser has been open within the last 48 hours
  3. The team member is signed into LinkedIn in the same browser

404, Not Found

The requested resource does not exist or belongs to a different team.

409, Conflict (Disabled Watchlist)

You sent a 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:
Check whether a watchlist is disabled via the 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 a 422 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

Only reachable on a prompt-mode create with strict: true. Nothing was created. Both error and message are always present. Retry, or drop strict and accept inferred values.

405, Method Not Allowed

You used the wrong HTTP method. Check the endpoint documentation for the correct method (GET, POST, PUT, DELETE).

429, not used

No OutX endpoint returns 429 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 single error field:
Parse the HTTP status for the category and the 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

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.
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.
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.
Yes. Daily limits (likes, comments) reset at UTC midnight (00:00 UTC). Weekly limits (posts per watchlist) reset on Monday at 00:00 UTC.