Обновлено: 22.09.2026
Ошибки и лимиты
Ошибки возвращаются с соответствующим HTTP-статусом и телом вида { "error": { "code": "...", "message": "..." } }. Поле code не меняется между версиями API, поэтому логику интеграции стоит строить на нём. Текст message может меняться и переводиться на другие языки.
Коды ошибок
| Статус | Код | Описание |
|---|---|---|
400 | invalid_request | Не хватает обязательного поля или неверный формат. |
401 | unauthenticated | Токен не передан или недействителен. |
403 | forbidden | Токену не хватает прав на это действие. |
404 | not_found | Объект с таким ID не найден. |
409 | conflict | Действие конфликтует с текущим состоянием объекта, например повторная оплата уже оплаченного заказа. |
422 | insufficient_points | Недостаточно баллов лояльности для списания. |
429 | rate_limited | Превышен лимит запросов. Когда можно повторить запрос, подскажет заголовок Retry-After. |
Лимиты запросов
Лимит составляет 120 запросов в минуту на токен и считается отдельно для песочницы и боевой среды. Текущее состояние лимита приходит в заголовках ответа на каждый запрос.
| Заголовок | Значение |
|---|---|
X-RateLimit-Limit | Лимит запросов в минуту |
X-RateLimit-Remaining | Сколько запросов осталось в текущем окне |
Retry-After | Через сколько секунд можно повторить запрос после 429 |
Полезно знать
- Если к API подключено несколько сервисов, каждому лучше выдать отдельный токен. Тогда лимит не делится между ними и проще найти источник всплеска запросов.
- Массовые операции, например начисление баллов всей аудитории, лучше выносить в задачи экспорта или согласовать для них отдельный лимит с поддержкой. Повторять запросы в цикле после ответа 429 не стоит.
