Справочник по ошибкам

Стандартизированный формат ошибок и наиболее частые коды.

Формат

Каждая ошибка следует одной и той же JSON-структуре, независимо от эндпоинта:

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 идентифицирует запрос сквозным образом через все сервисы — полезно указывать его, если вы обращаетесь к нам по поводу неожиданной ошибки.

Частые коды

HTTPкодЗначение
401missing_api_keyОтсутствует заголовок Authorization.
401invalid_api_keyНедействительный, отозванный или истёкший API-ключ.
403insufficient_scopeУ ключа нет необходимой области действия для этой категории.
403not_a_memberВы не принадлежите к этой организации.
403csrf_check_failedОтсутствует заголовок безопасности (сессионный cookie, неприменимо при использовании API-ключа).
404model_not_foundrouting_strategy «manual» с моделью, отсутствующей в каталоге.
404no_model_availableНи одна модель не соответствует запрошенным критериям.
402insufficient_creditsНедостаточный баланс кредитов или превышен месячный бюджет проекта.
409conflictСостояние несовместимо с действием (например, диалог агента не в состоянии idle).
422validation_errorНекорректное тело запроса (отсутствует поле, неверный тип и т. д.).
429rate_limit_exceededСлишком много запросов для этого ключа — см. Лимиты запросов.
503all_providers_unavailableВсе кандидаты-поставщики завершились неудачей (см. Маршрутизация и отказоустойчивость).

В SDK

Официальные SDK преобразуют каждый диапазон HTTP-статусов в типизированный класс ошибки (AuthenticationError, PermissionDeniedError, NotFoundError, InsufficientCreditsError, ConflictError, ValidationError, RateLimitError, ServerError), каждый из которых, помимо сообщения, предоставляет .code, .status, .requestId и .details. См. SDK для JavaScript / SDK для Python.