tunnel_ docs

Коды ошибок

Все ошибки — в OpenAI-совместимом формате:

{
  "error": {
    "message": "человекочитаемое описание",
    "type": "invalid_request_error",
    "code": "invalid_request"
  }
}

Таблица кодов

HTTPtypecodeКогда возникаетЧто делать
400invalid_request_errorinvalid_requestТело не прошло валидацию (нет model, пустой messages, неверный image_url и т.п.)Проверить тело запроса по описанию эндпоинта
400invalid_request_errorinvalid_requestАпстрим отклонил запрос как некорректный (проброс от провайдера)Проверить параметры, специфичные для модели/провайдера
401authentication_errorinvalid_api_keyКлюч отсутствует, не начинается с sk-tn-, отозван или аккаунт заблокированПроверить заголовок Authorization, при необходимости выпустить новый ключ
402insufficient_quotainsufficient_quotaБаланс аккаунта ≤ 0Пополните баланс в кабинете — карта/СБП или счёт для юрлица, см. «Оплата и счета»
404invalid_request_errormodel_not_foundmodel не существует или отключена в каталогеСвериться со списком моделей
404invalid_request_errornot_foundЗапрошен несуществующий путь/методПроверить URL — актуальные эндпоинты перечислены в этой документации
429rate_limit_errorrate_limit_exceededПревышен rate limit ключа (см. «Аутентификация»)Повторить с задержкой — приходит заголовок Retry-After
502api_errorupstream_unavailableАпстрим-провайдер недоступен, а фолбэк на альтернативный маршрут не сработалПовторить запрос позже; при системной проблеме — написать в поддержку
500api_errornullНепредвиденная внутренняя ошибка шлюзаНаписать в поддержку с точным временем запроса и телом ответа — requestId в ответе клиенту не передаётся, это внутренний идентификатор для логов

Примеры

Недостаточно средств:

{
  "error": {
    "message": "Insufficient balance. Top up your account in the dashboard.",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}

Неизвестная модель:

{
  "error": {
    "message": "Model 'gpt-5-mega' not found",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

Невалидный ключ:

{
  "error": {
    "message": "Invalid API key",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

Что не тарифицируется

Запрос, завершившийся ошибкой (400/401/402/404/429/502/500), никогда не списывает баланс — тарифицируются только успешно завершённые запросы (или прерванный стрим, если апстрим уже успел отдать часть контента, см. «Chat Completions»).