Что такое 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), кэшировать повторяющиеся ответы и, если реально упираешься в потолок, перейти на платный тариф с большим лимитом.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





