Ошибки
Формат ошибок, коды статусов и лимиты.
Ошибки
Формат
Ошибки приходят в едином конверте:
{
"statusCode": 400,
"message": "duration must be an integer number",
}
statusCode— HTTP-код;message— строка или массив строк (ошибки валидации);code— машиночитаемый код (не всегда присутствует).
Коды
| Код | Когда |
|---|---|
| 400 | Неверные параметры запроса (валидация DTO) |
| 401 | Нет ключа / ключ неизвестен или деактивирован |
| 403 | Legacy service-ключ; доступ запрещён |
| 404 | Ресурс не найден |
| 429 | Превышен лимит запросов (60/мин на партнёра по умолчанию; общий гейт 100/мин на IP). Ответ содержит Retry-After |
| 500 | Внутренняя ошибка — безопасно повторить позже; при повторениях сообщите в поддержку |
Валидация
Глобальный валидационный пайплайн отбрасывает неизвестные поля и приводит типы. Массив message перечисляет все нарушения сразу:
{
"statusCode": 400,
"message": [
"duration must be an integer number",
"resolution must be shorter than or equal to 16 characters"
]
}
Рекомендации по ретраям
- 429 — экспоненциальная задержка, начиная с 1–2 секунд; при наличии заголовка
Retry-Afterориентируйтесь на него. - 5xx — повтор с задержкой; операции идемпотентны на стороне списаний, но перед повтором «запускающих» эндпоинтов генерации проверяйте статус задачи.
- 401/403 — не повторять: проверьте ключ.
Для AI-агентов/docs/errors.md