ДокументацияСправочник 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Шлюз перегружен запросами в обработке — повторите позже.
balance_insufficient402Баланс за вычетом оценочной стоимости выполняющихся запросов не покрывает этот запрос (см. Баланс аккаунта) — пополните счёт или дождитесь завершения запросов.
entry_unsupported404Путь/метод не является эндпоинтом, который поддерживает шлюз.
model_rejects_format / no_endpoint_for_format404Модель не принимает протокол этого эндпоинта, либо нет апстрима с таким протоколом — используйте нативный эндпоинт модели (Responses для GPT, Messages для Claude и т. д.).
model_not_schedulable / no_group_available404 / 403Модель вне доступного вам диапазона, или нет видимой вам группы маршрутизации — обратитесь к администратору.
client_not_allowed403Этому клиенту не разрешена ни одна группа; для собственного или незарегистрированного клиента попросите администратора зарегистрировать его.
account_disabled / account_deleted403Аккаунт-владелец ключа отключён или удалён.
privacy_filter_failed500Фильтрация приватных данных завершилась ошибкой, запрос отклонён — попросите администратора проверить правила фильтра.
video_job_missing / video_job_not_found / video_job_route_gone400 / 404 / 502Опрос видео без id задания, неизвестное задание или задание, чей апстрим удалён (см. Изображения и видео).

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

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