Битлента
Ошибки и коды3 мин чтения·

Ошибка 429 Too Many Requests: сработало ограничение частоты запросов

Код 429 означает, что с вашего адреса или аккаунта пришло слишком много запросов. Как работает лимит, что такое Retry-After и как вести себя, чтобы ошибка не повторялась.

Ограничение частоты

Многие сервисы защищаются от перегрузки и злоупотреблений, ограничивая число запросов за определённый интервал. Как только лимит превышен, вместо обычной страницы сервер возвращает код 429. Смысл прост: вы обращаетесь слишком часто, замедлитесь.

В отличие от 403, отказ здесь временный. Он связан не с вашими правами, а с количеством обращений за короткое время, поэтому через некоторое время запросы снова начинают проходить.

Из-за такого поведения многие сервисы ставят разные лимиты на разные действия: чтение страниц допускают чаще, а вход в аккаунт или отправку сообщений ограничивают строже, чтобы защитить пользователей от подбора паролей и рассылок.

Что могло превысить лимит

Обычный пользователь упирается в лимит после многократных обновлений страницы, множества открытых вкладок с автообновлением, частых попыток войти с неверным паролем или запуска расширений, которые массово запрашивают данные. Иногда причиной служат программы, работающие в фоне и делающие обращения без вашего участия.

Второй вариант связан с общим адресом: если вы находитесь за сетью, где множество людей выходит в интернет с одного IP, счётчик запросов складывается на всех. Тогда лимит достигается, хотя лично вы почти ничего не запрашивали.

Специальные системы защиты считают запросы не только по адресу, но и по признакам поведения: слишком быстрая прокрутка, одинаковые интервалы, отсутствие обычных заголовков. Поэтому иногда ограничение срабатывает и у обычного человека, использующего автоматизирующее расширение.

Что смотреть в ответе

Хорошо оформленный сервис в ответе добавляет заголовок Retry-After: он подсказывает, через сколько секунд можно повторить запрос, либо называет момент, после которого ограничение снимется. В консоли разработчика браузера этот заголовок виден на вкладке сетевых запросов. Также встречаются служебные заголовки с остатком лимита.

Если ошибка выводится в приложении, ищите в его настройках интервал обновления данных или включённую массовую синхронизацию.

При работе через приложение полезно заглянуть в его настройки или журнал: там иногда указано, какое именно действие вызвало ограничение. Если приложение опрашивает сервер слишком часто, увеличьте интервал обновления.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Как действовать посетителю

Остановитесь и подождите: от нескольких минут до часа, в зависимости от правил сервиса. Закройте лишние вкладки, отключите автообновление и расширения, которые обращаются к этому сайту. Не нажимайте обновление подряд, потому что каждое обращение может продлевать ограничение.

Если вы вошли в аккаунт, выйдите и зайдите заново после паузы. Если лимит связан с общим адресом, попробуйте другую сеть, например мобильную. Если ошибка не проходит сутки, напишите в поддержку сервиса.

Не пытайтесь менять сеть каждые несколько минут в надежде обмануть счётчик: многие сервисы учитывают также учётную запись и параметры браузера, и такие действия лишь задерживают возврат к нормальной работе.

Для разработчиков и владельцев

Клиентам API стоит добавлять паузы между запросами, использовать экспоненциальную задержку при повторах и учитывать Retry-After. Кэшируйте результаты, чтобы не запрашивать одно и то же.

Владельцу сервиса важно возвращать понятное сообщение и заголовки с указанием времени ожидания, а лимиты устанавливать с запасом для обычного поведения людей. Слишком жёсткие правила ломают нормальную работу и вызывают жалобы.

Полезной практикой считается возврат в ответе не только кода, но и понятного текста с указанием, какое ограничение сработало и когда оно закончится. Это заметно уменьшает нагрузку на поддержку и число повторных запросов.

Почему нельзя просто повторять запрос

Бесконечные повторы без пауз лишь усугубляют ситуацию: счётчик растёт, срок ограничения продлевается, а нагрузка на сервис увеличивается. Правильная тактика состоит в ожидании и уменьшении частоты обращений. Так вы вернёте нормальный режим быстрее.

Если вы разработчик клиента, реализуйте очередь запросов с ограничением скорости на своей стороне: так вы не превысите лимит даже при пиковой нагрузке и не получите ограничение из-за случайного всплеска.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
http429лимиты

Часто задаваемые вопросы

Читайте также