429 Too Many Requests с кодом RATE_LIMITED в конверте ошибки.
Два уровня ограничений
Глобальный (по IP)
Базовый лимит уровня приложения — 120 запросов в минуту на исходящий IP
(скользящее окно 60 секунд). Защищает инстанс от всплесков с одного адреса.
Per-site (по API-ключу)
Индивидуальный счётчик на каждый сайт обменника — «шумный» клиент не расходует лимит
остальных. Окно — фиксированные 60 секунд, лимит по умолчанию — 120 запросов в минуту.
Per-site лимит настраивается оператором: либо персональный override для вашего сайта, либо
глобальный дефолт инстанса. Значение
0 означает «без per-site лимита» (остаётся только
глобальный лимит по IP). Уточните действующее значение при подключении.Ответ при превышении
При срабатывании per-site лимита платформа возвращает429 и проставляет заголовки:
| Заголовок | Значение |
|---|---|
Retry-After | Через сколько секунд повторить (до сброса окна) |
X-RateLimit-Limit | Действующий лимит запросов в минуту |
X-RateLimit-Remaining | Остаток в текущем окне (при 429 всегда 0) |
Заголовки ответа
Стратегия повторов
Применяйте экспоненциальный backoff с джиттером
Если
Retry-After отсутствует — повторяйте с растущей паузой (например, 1s, 2s, 4s, 8s)
и небольшим случайным джиттером, чтобы не синхронизировать повторы.Как не упираться в лимит
- Кэшируйте справочники (
GET /v1/public/networks,GET /v1/public/assets) — они меняются редко. - Группируйте проверки балансов вместо запроса на каждую операцию.
- Соблюдайте webhook-first подход: реагируйте на события, а не опрашивайте.
Частые вопросы
Почему 429, хотя я делаю немного запросов?
Почему 429, хотя я делаю немного запросов?
Если на сервере обменника несколько процессов делят один исходящий IP, они складываются
в глобальный лимит по IP (120 req/min). Также проверьте, не запущен ли где-то цикл polling.
Какой лимит действует для моего сайта?
Какой лимит действует для моего сайта?
По умолчанию 120 req/min на сайт, но оператор может задать персональное значение или
отключить per-site лимит (
0). Действующий лимит виден в заголовке X-RateLimit-Limit
ответа 429. Точное значение уточняйте у оператора инстанса.Может ли rate-limit заблокировать критичную выплату?
Может ли rate-limit заблокировать критичную выплату?
Per-site счётчик работает в режиме fail-open: при сбое инфраструктуры лимитирования
запрос пропускается, а не отклоняется. Тем не менее закладывайте обработку
429 с повтором —
это штатное поведение под нагрузкой.Связанные страницы: Ошибки, Webhooks,
Частые вопросы.