HTTP 429 Too Many Requests
Помедленнее: клиент отправил больше запросов, чем сервер допускает за определённый промежуток времени.
Что означает HTTP 429
HTTP 429 Too Many Requests означает, что клиент превысил лимит запросов — по IP, по API-ключу, по пользователю или по эндпоинту. Корректно настроенные серверы включают заголовок Retry-After (секунды или дата) и часто заголовки X-RateLimit-*, описывающие квоту.
Для клиентов правильная реакция всегда одна и та же: снизить нагрузку. Немедленный повтор только ухудшает ситуацию и может превратить временное ограничение в бан.
Частые причины ошибок 429
- Клиент API опрашивает слишком часто или превышает свою квоту всплесками запросов.
- Веб-скрапинг без задержек между запросами.
- Баг: цикл повторов без задержки, бомбардирующий один и тот же эндпоинт.
- Общий IP (офисный NAT, VPN, исходящий трафик serverless), где суммарный трафик превышает лимит.
- Эндпоинты входа ограничивают повторяющиеся попытки в качестве защиты от перебора.
Как исправить со стороны клиента/разработчика
- Точно соблюдайте Retry-After; если его нет, используйте экспоненциальную задержку с джиттером (например, 1с, 2с, 4с, 8с…).
- Читайте заголовки API X-RateLimit-Remaining/Сбросить и заранее распределяйте запросы по времени.
- Группируйте запросы и кэшируйте ответы вместо повторного получения одних и тех же данных.
- Распределяйте нагрузку по времени, а не по одноразовым IP-адресам — обход лимитов обычно нарушает условия использования API.
Как исправить со стороны владельца API
- Всегда отправляйте Retry-After и заголовки квоты, чтобы клиенты могли вести себя корректно.
- По возможности ограничивайте по ключу/пользователю, а не по голому IP, чтобы не наказывать общие сети.
Пример ответа
HTTP/1.1 429 Too Many Requests
Retry-After: 30
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
{"error":"rate_limited","retry_after":30}Частые вопросы
Сколько нужно ждать после 429?
То, что указано в Retry-After. Если его нет, начните с секунды-двух и удваивайте задержку при каждом следующем 429 подряд (экспоненциальная задержка).
Означает ли 429, что меня забанили?
Нет — это временное ограничение. Однако если его постоянно игнорировать, это может привести к настоящему бану по IP или ключу.
Почему я получаю 429 на первом же запросе?
Лимит, вероятно, общий: ваш IP (VPN, офисная сеть) или API-ключ уже израсходовали квоту в другом месте.