Errors
Every failed API, CLI, or MCP call returns one body: an RFC 9457 problem
detail, served as application/problem+json. Parse that one shape to handle
every failure.
The Problem Detail Body
type, title, status, detail, and instance are the RFC standard fields.
The remaining fields are aVenture extensions, present only when they apply:
codeis a machine-readable secondary code for when the status alone does not identify the recovery path. Branch oncode, not ondetail, becausedetailis prose and can be reworded.hint,suggestion, andresolutionsay how to correct the request.resolutioncan name the endpoint that clears the problem.field,value,unknownParameters, andvalidParametersidentify the rejected part of the request on a validation failure.detailscarries structured conflict information on a409, including the candidates from an ambiguous lookup. Select the intended record by its returnedid.limitType,limit,used,remaining,resetAt, andretryAfterSecondsdescribe the limit that refused a429.traceIdandspanIdidentify the request. Quote them when you contact support.
Status Codes
Retry 500, 503, and a 429 from a request-rate limit. Do not retry 400,
401, 402, 403, 404, 406, 409, 415, or 422, because the same
request fails the same way.
Subscription Refusals
A 402 means the operation needs a subscription state your account does not
have. code names the cause:
Plain-English search, link search, and research requests can answer 402.
Plans and usage explains how plans gate features.
Rate Limits
A request-rate limit answers 429 and carries its state in the problem detail
and in the Retry-After header:
Wait retryAfterSeconds before retrying, and add random jitter so parallel
workers do not resume at the same moment. resetAt gives the same deadline as
an absolute timestamp.
limitType names the limit you hit. IP, SUBNET, and GLOBAL are
request-rate limits. NATURAL_SEARCH, WEB_SEARCH, and INFERENCE_PROVIDER
limit one feature, so other endpoints can still succeed.
Usage Limits
When you have used a monthly allowance, such as company profile views, person
profile views, or web searches, the API answers 429 with code
billing_allowance_exhausted:
Stop sending that kind of request instead of retrying. Upgrade from
subscription settings, from the CLI,
or from your MCP client as described in
When you reach a limit, or wait for
resetAt. resolution.endpoint names the call that starts the upgrade:
checkout for the free plan, a plan change for a paid one.
On plans with additional usage turned on, a 429 with code
billing_additional_usage_cap_reached means you reached the spending cap you
set or used your prepaid credit. Raise the cap in
subscription settings to continue.
Redirects on Changed Slugs
GET /v1/entities/lookup-exact, GET /v1/people/lookup-exact, and GET /v1/news/lookup
can answer 301 instead of 404 when a record’s slug has changed. Follow the
redirect, which curl -L and most HTTP clients do by default, and store the
slug you land on.