Что такое…

Что такое rate limit — почему API отвечает 429 и просит подождать

Иллюстрация: турникет пропускает запросы по одному

Ты шлёшь запросы к API, всё работало — и вдруг в ответ прилетает число 429 и слова «Too Many Requests». Первая мысль обычно паническая: «сломал ключ» или «баг в коде».

Так вот, неожиданная штука: это вообще не ошибка. Сервис тебе не отказал — он вежливо просит притормозить. Через пару минут ты будешь понимать, что делать, и перестанешь паниковать при виде 429.

Что такое rate limit

Rate limit (лимит запросов) — это правило сервиса: сколько раз за единицу времени тебе можно к нему обратиться. Например, «60 запросов в минуту» или «1000 в день». Перешёл черту — следующий запрос не выполнится, и в ответ придёт код 429.

Зачем сервису это? Чтобы один пользователь — или кривой цикл в твоём коде — не завалил его миллионом запросов и не положил сервер для всех остальных. Это как турникет в метро: поток он пропускает, но строго по одному.

С этим живёт любой API — и платный, и бесплатный. Лимит есть почти всегда, просто на платном тарифе он выше.

Как он работает — окно, счётчик и 429

Представь счётчик с таймером. Сервис заводит «окно» — например, одну минуту. Каждый твой запрос увеличивает счётчик. Дошёл до лимита — до конца окна все новые запросы получают 429. Окно закончилось — счётчик обнуляется, и можно снова.

Часто сервер прямо подсказывает, сколько ждать. В ответе бывает заголовок Retry-After: 30 — «вернись через 30 секунд». Или X-RateLimit-Remaining: 0 — «запросы на это окно кончились». Это не для красоты, на эти заголовки нужно смотреть.

Важно не путать коды. 429 — это не 401 или 403 (там проблема с ключом или правами) и не 500 (там сам сервер упал — если что, вот что значит ошибка 500). 429 говорит ровно одно: «с тобой всё нормально, просто слишком часто».

Почему это важно тебе

Когда собираешь приложение с ИИ, ты дёргаешь чужие API постоянно: саму модель, погоду, карту, базу. И почти у каждого свой лимит — особенно жёсткий на бесплатном тарифе. Рано или поздно ты в него упрёшься.

Две привычки, которые тебя спасут:

  • Не повторяй запрос сразу. Получил 429 — подожди и попробуй ещё раз, лучше с растущей паузой: сначала 1 секунда, потом 2, потом 4. Это называется «экспоненциальная задержка», и почти все официальные библиотеки умеют это сами.
  • Не спрашивай одно и то же дважды. Если данные не меняются каждую секунду — сохрани ответ (кэшируй) и переиспользуй. Меньше запросов — реже упираешься в лимит.

Вывод, который останется с тобой: 429 — не повод паниковать и не баг. Это сигнал «сбавь темп». Лечится паузой, кэшем или платным тарифом — а не лихорадочным переписыванием кода.

Где ты с ним встречаешься

Когда ИИ-модель в твоём приложении вдруг перестаёт отвечать на пике нагрузки. Когда бесплатный ключ к погодному сервису «кончается» к обеду. Когда телеграм-бот шлёт сообщения слишком быстро и часть просто не доходит.

Везде, где есть подключение к API, за углом стоит rate limit. Знаешь про него — и эти ситуации перестают быть загадкой.

429 — это я что-то сломал?

Нет. 429 значит «слишком много запросов за короткое время». Твой код, скорее всего, рабочий — он просто шлёт запросы чаще, чем сервис разрешает. Добавь паузу между запросами, и всё поедет.

Как обойти rate limit?

Честного «обхода» нет, и пытаться не стоит — за это банят ключ. Правильных ходов три: ждать (по заголовку Retry-After), кэшировать повторяющиеся ответы и, если реально упираешься в потолок, перейти на платный тариф с большим лимитом.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →