Error reference

Standardized error format and the most common codes.

Format

Every error follows the same JSON structure, regardless of the endpoint:

json
{
  "error": {
    "code": "insufficient_credits",
    "message": "Solde de credits insuffisant ou budget mensuel du projet depasse.",
    "request_id": "9480fe92-f68e-4731-b98e-d35a5e8b9819",
    "details": {}
  }
}

request_id identifies the request end-to-end across services — useful to provide if you contact us about an unexpected error.

Common codes

HTTPcodeMeaning
401missing_api_keyMissing Authorization header.
401invalid_api_keyInvalid, revoked, or expired API key.
403insufficient_scopeThe key does not have the required scope for this category.
403not_a_memberYou do not belong to this organization.
403csrf_check_failedMissing security header (session cookie, not applicable to API key usage).
404model_not_foundrouting_strategy "manual" with a model unknown to the catalog.
404no_model_availableNo model matches the requested criteria.
402insufficient_creditsInsufficient credit balance or the project's monthly budget was exceeded.
409conflictState incompatible with the action (e.g. agent conversation not idle).
422validation_errorInvalid request body (missing field, wrong type...).
429rate_limit_exceededToo many requests for this key — see Rate limits.
503all_providers_unavailableAll candidate providers failed (see Routing & fallback).

In the SDKs

The official SDKs convert each HTTP status range into a typed error class (AuthenticationError, PermissionDeniedError, NotFoundError, InsufficientCreditsError, ConflictError, ValidationError, RateLimitError, ServerError), all exposing .code, .status, .requestId and .details in addition to the message. See JavaScript SDK / Python SDK.