Skip to content
Start free

API errors and limits

GetIntel API error codes, the monthly read budget shared with the MCP server, the per-minute rate limit, and how to handle each one.

Errors return a status code and a JSON body with a machine-readable code:

{ "error": { "code": "brand_required", "message": "This account has several brands: pass brand_id. See GET /brands." } }
StatusCodeWhat to do
400invalid_parameterA parameter has the wrong type, is out of range, or is missing. The message says which.
400brand_requiredThe account has several brands. Pass brand_id.
401invalid_api_keyThe key is missing, mistyped or revoked.
403feature_not_in_planThe data is part of the Pro and Growth plans.
403plan_inactiveThe account’s plan isn’t active.
404brand_not_foundThe brand_id isn’t on this account.
404market_not_foundThe market isn’t a live market of this brand. See GET /markets.
404not_foundThe topic, task or other item doesn’t exist.
409integration_not_connectedThe endpoint needs an integration, such as Search Console, that isn’t connected.
429quota_exceededThe monthly read budget is used up.
429rate_limitedMore than 60 requests a minute. Wait for Retry-After seconds.
502upstream_errorA service GetIntel depends on failed. Retry later.

Each data request counts as one read. The budget is shared with the MCP server: reads from your API scripts and from your coding agents come out of the same monthly number.

PlanReads a month
Monitor10,000
Pro50,000
Growth200,000

GET /usage shows what’s used and left, and when it resets (the first of the month). /usage and /brands don’t count against the budget.

Up to 60 requests a minute per key. Over that, the API answers 429 rate_limited with a Retry-After header.

The API reads the same data as the app, so it’s as fresh as the app. AI answers update after the daily scan (9am IST), brand perception and the technical scan update weekly, and AI traffic every few minutes to every hour. See Data freshness. There’s no need to poll more often than once an hour.