Ошибки
Формат — как у OpenAI: {"error": {"message", "type", "param", "code"}}, у /v1/messages — как у Anthropic. В каждом ответе есть x-request-id — пришлите его в поддержку, и мы найдём запрос. Отказ не списывает деньги.
| code | HTTP | Что значит | Что делать | Повторять |
|---|---|---|---|---|
| missing_api_key | 401 | Ключ не передан. | Заголовок Authorization: Bearer <ключ> (или x-api-key для /v1/messages). | нет |
| invalid_api_key | 401 | Ключ не найден или отозван. | Проверьте ключ в разделе «Разработчикам» или выпустите новый. | нет |
| api_not_available | 403 | На тарифе нет API (Бесплатный). | API и IDE — с тарифа «Студент» или «Лайт». | нет |
| model_not_in_plan | 403 | Модель не входит в тариф, баланса нет. | Пополните баланс (откроет любые модели) или смените тариф. | нет |
| model_not_allowed_for_key | 403 | Ключ ограничен списком моделей. | Разрешите модель ключу или используйте другой ключ. | нет |
| forbidden | 403 | /v1/usage: фильтр вне вашей области (чужой отдел или сотрудник). | Уберите фильтр или попросите права у админа команды. | нет |
| model_not_found | 404 | Такой модели нет или она недоступна ключу. | Список доступных — GET /v1/models. | нет |
| unknown_path | 404 | Неизвестный путь API. | Пути — в этой документации; base_url должен оканчиваться на /v1 (кроме Anthropic SDK). | нет |
| response_not_found | 404 | Ответ Responses не найден или истёк (30 дней). | Начните диалог без previous_response_id. | нет |
| invalid_json | 400 | Тело — не JSON. | Content-Type: application/json и корректный JSON. | нет |
| missing_required_parameter | 400 | Нет обязательного поля (model, messages, input…). | Поле — в param ошибки. | нет |
| unsupported_value | 400 | Недопустимое значение параметра. | Допустимые значения — в описании эндпоинта. | нет |
| invalid_period | 400 | /v1/usage: неверный период. | from/to — YYYY-MM-DD, не больше 366 дней. | нет |
| model_cannot_edit | 400 | Модель не правит картинки (YandexART). | gpt-image-2 или Nano Banana. | нет |
| too_many_inputs | 400 | Эмбеддинги: больше 2 048 строк. | Разбейте на части. | нет |
| image_too_large | 413 | Картинка больше 20 МБ. | Уменьшите файл. | нет |
| quota_exceeded | 429 | Квота тарифа на день или месяц исчерпана, баланса нет (или кап баланса 3 000 ₽ в день). | Пополните баланс или дождитесь полуночи по Москве. Заголовок x-should-retry: false. | нет |
| key_budget_exceeded | 429 | Месячный бюджет ключа исчерпан. | Поднимите бюджет ключа в «Разработчикам». x-should-retry: false. | нет |
| budget_exceeded | 429 | Бюджет отдела, сотрудника или ключа компании с действием «остановить». | Поднять бюджет может владелец или админ команды (/org/admin). x-should-retry: false. | нет |
| image_quota_exceeded | 429 | Дневной лимит картинок тарифа. | Завтра или тариф выше. x-should-retry: false. | нет |
| rate_limit_exceeded | 429 | Слишком часто: запросов в минуту больше, чем у ключа. | Повторите через retry-after секунд. | да, с паузой |
| model_unavailable | 502 | Провайдер модели отклонил запрос (модель временно недоступна). | Другая модель или повтор позже. Это не ваш ключ. | да, с паузой |
| upstream_error | 502 | Ошибка у провайдера модели. | Повторите запрос; x-request-id — для поддержки. | да |