ДокументацияСправочник APIОшибки

Ошибки

Три формата ошибок, соответствие категорий HTTP-статусам и типичные ошибки.

Шлюз предоставляет три формата API, и тело ошибки повторяет формат вызванного API — по пути запроса: /v1/messages* — формат Anthropic, /v1beta/* — формат Google, остальное — формат OpenAI. Благодаря этому разбор ошибок в каждом SDK работает как ожидается.

Три формата ошибок

OpenAI
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}
Anthropic
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key"
  }
}
Google
{
  "error": {
    "code": 401,
    "message": "Invalid API key",
    "status": "UNAUTHENTICATED"
  }
}

Категории и коды статусов

КатегорияHTTPOpenAI typeAnthropic typeGoogle status
Аутентификация401invalid_request_errorauthentication_errorUNAUTHENTICATED
Права доступа403invalid_request_errorpermission_errorPERMISSION_DENIED
Не найдено404invalid_request_errornot_found_errorNOT_FOUND
Неподдерживаемый эндпоинт404invalid_request_errornot_found_errorINVALID_ARGUMENT
Некорректный запрос400invalid_request_errorinvalid_request_errorINVALID_ARGUMENT
Лимит запросов429rate_limit_errorrate_limit_errorRESOURCE_EXHAUSTED
Квота / баланс402insufficient_quotabilling_errorRESOURCE_EXHAUSTED
Слишком большое тело413invalid_request_errorinvalid_request_errorINVALID_ARGUMENT
Сбой источника502api_errorapi_errorUNAVAILABLE
Перегрузка503server_erroroverloaded_errorUNAVAILABLE
Внутренняя ошибка500api_errorapi_errorINTERNAL

Типичные ошибки

ИдентификаторHTTPЗначение и действия
key_missing / key_invalid401Ключ отсутствует или недействителен — проверьте заголовок авторизации.
key_disabled / key_expired / key_ip_denied403Ключ отключён, истёк или ваш IP не в списке разрешённых.
key_quota_exhausted402Исчерпан лимит расходов ключа — дождитесь сброса или увеличьте лимит.
balance_exhausted402Недостаточно средств — пополните баланс и повторите.
rpm_exceeded / concurrent_exceeded429Превышен лимит RPM или конкурентности — повторите с задержкой.
model_missing400В запросе отсутствует поле model.
model_not_found / model_disabled404Модель не существует или снята — сверьте id со списком Моделей.
no_upstream_for_model404Нет источника, обслуживающего эту модель, — повторите позже или обратитесь к администратору.
moderation_blocked403Заблокировано модерацией — измените запрос и повторите.
body_too_large413Тело превышает лимит эндпоинта — сожмите встроенные медиа или используйте другой эндпоинт.
upstream_timeout / upstream_unreachable / all_upstreams_down502Источник не отвечает, недоступен или все источники отключены — повторите с задержкой.
server_busy503Шлюз перегружен запросами в обработке — повторите позже.

Сообщения об ошибках локализуются под язык аккаунта (до аутентификации — Accept-Language, по умолчанию английский). В коде ориентируйтесь на HTTP-статус и поле type/status, а не на текст сообщения.

Конкретные схемы повторов и задержек — в разделе Обработка ошибок и повторы.