Operations

Errors, request IDs and retries

Errors use a JSON envelope with a stable code and request ID. Payload excerpts are not included.

HTTPCodeClient action
400request_limit_exceededNon-retryable. Send exactly one question per request; the service does not split or drop questions.
400invalid_requestNon-retryable. Correct the JSON schema or tier header, or stay within the model’s token and option limits.
401invalid_api_keyCheck key configuration and revocation state.
402insufficient_creditReview the account balance before retrying.
403tier_not_allowedUse a tier permitted by the key.
404unknown_modelRefresh the live model catalogue.
409idempotency_conflictUse a new key only for a deliberately new request.
409idempotency_replay_unavailableThe attempt settled or its settlement is uncertain. A receipt is returned without replaying an answer or charging again; keep the same key until the outcome is clear.
413payload_too_largeStay within the candidate size bounds: request body up to 6 MiB, state up to 16 KiB, and one image up to 4 MiB decoded and 2,000,000 pixels. Final image validation is pending.
422unsupported_modalityChoose a model that supports the requested modality.
429rate_limit_exceededWait for Retry-After before retrying.
503model_unavailable / capacity_limitRetry only after the documented wait or capacity issue clears.
504inference_timeoutWhen confirmed uncharged, retry with the same key and body. If settlement is uncertain, keep the same key; do not create a second request.
Keep retries intentional

5xx errors are retryable unless the guard condition says otherwise. An EU request never fails over outside the EU. Use the response request ID when contacting support.

Exact retry behavior is governed by the live OpenAPI when it is published.