Документация / Использование
Лимиты и ошибки
Формат ошибок API, коды и что делать при каждом из них.
Формат ошибки
Ошибки — в формате OpenRouter: HTTP-статус числом, текст и подробности (или null).
{
"error": {
"code": 400,
"message": "Unknown model: 'vendor/x'.",
"metadata": {
"param": "model"
}
}
}metadata.param — параметр запроса, из-за которого отказ; metadata.reasons — причины модерации; metadata.provider_message — текст провайдера, когда он отклонил запрос.
Коды
- 400Неверный запрос или его стоимость нельзя ограничить заранее. Ничего не списано; причина — в тексте и metadata.param.
- 401Нет ключа, ключ неверный или отозван.
- 402Баланса не хватает на резерв запроса. Пополните баланс.
- 403Вход помечен модерацией; причины — в metadata.reasons. Повтор с тем же входом бессмыслен.
- 404Нет такого пути или объекта (например, задачи видео другого аккаунта). Или провайдер не нашёл модель — тогда его текст в metadata.provider_message.
- 405Метод не подходит пути; допустимые — в заголовке Allow.
- 409Видео ещё генерируется.
- 410Видео сгенерировано, но провайдер его больше не хранит.
- 413, 422Провайдер отклонил запрос: слишком большой или с неверным аргументом. Его текст — в metadata.provider_message.
- 429Слишком много запросов или провайдер перегружен. Подождите Retry-After, если он есть.
- 502Провайдер модели недоступен или вернул ошибку, ответ провайдера не удалось однозначно разобрать, временно недоступны цены моделей или хранилище задач видео. Повторите позже.
- 503Не удалось записать списание или его исход, либо провайдер отказал по причинам на нашей стороне. Повторите позже.
При сбоях
- Ответ провайдера с ошибкой переводится: 400, 404, 413 и 422 — тот же статус с
metadata.provider_message(ключи и токены известных форматов из текста вырезаются); 401, 402 и 403 без признаков модерации — наша сторона, клиенту 503; модерация входа — 403 сmetadata.reasons; 408 и 429 — 429 сRetry-Afterв секундах (не больше часа), если провайдер его прислал; 5xx — 502. - Если списание или его исход не удалось записать, обычный ответ заменяется на 503, а стрим завершается строкой ошибки без
data: [DONE]. - Не повторяйте платный запрос вслепую при неизвестном исходе: проверьте его в кабинете.
- Состояние сервиса — на странице статуса.