Getting started
Errors
HTTP status codes and actionable API errors.
Errors return the matching HTTP status and a JSON body of the shape { "error": { "code", "message" } }. The code is stable and safe to branch on.
Status
Code
Meaning
400invalid_jsonThe request body was not valid JSON.
400invalid_requestThe body failed validation (a field is missing or malformed).
401missing_api_keyNo Authorization: Bearer <key> header was sent. Body carries an onboarding url.
401invalid_api_keyThe API key is unknown, malformed, or revoked.
401expired_api_keyThe key is valid but past its configured expiry date.
402not_subscribedThe account has no active subscription. Body carries a url to subscribe.
402usage_exhaustedIncluded usage and extra credits are exhausted. Body carries a url to add credits.
402no_coinsDeprecated v1 alias for an exhausted extra-credit balance.
403missing_scopeThe key is valid but lacks the scope this endpoint needs.
409idempotency_conflictThe Idempotency-Key was reused with a different request body.
413request_too_largeThe JSON body is larger than the API accepts.
404developer_api_disabledThe Developer API is not enabled for this deployment.
429rate_limitedToo many requests from this API key or IP. Retry after the reset time.
503spend_cap_reachedA temporary service-wide spend cap was hit. Retry later.