Вы когда-нибудь сталкивались с тем, что ваш Telegram-бот внезапно перестал отвечать? Не потому что он сломался, а потому что Telegram просто его проигнорировал? Это не ошибка - это лимиты Telegram Bot API. Многие разработчики думают, что бот может слать сообщения без остановки. На практике - нет. Telegram жестко ограничивает, сколько запросов бот может отправить за секунду, минуту и час. И если вы перешагнете эти границы, ваш бот получит блокировку - временно или даже навсегда.
Сколько запросов можно отправлять в секунду?
Telegram Bot API разрешает до 30 запросов в секунду на один бот. Это не 30 сообщений - это 30 API-вызовов. Каждый вызов sendMessage, sendPhoto, editMessageText, getUpdates - это один запрос. Даже если вы отправляете одно сообщение, но делаете это 31 раз за одну секунду, Telegram откажется обрабатывать 31-й запрос. Он вернет ошибку 429 Too Many Requests.
Этот лимит не зависит от количества пользователей. Даже если ваш бот обслуживает 10 000 человек, он все равно не может делать больше 30 запросов в секунду. Это значит, что если вы пытаетесь рассылать уведомления всем пользователям одновременно - вы попадете в ловушку. Даже 1000 пользователей за 30 секунд - это уже 33 запроса в секунду. Превышение.
Что происходит, когда вы превышаете лимит?
Telegram не блокирует бота сразу. Он использует систему очередей и таймаутов. Когда вы отправляете запрос слишком часто, Telegram начинает откладывать ответы. Вместо мгновенного ответа вы получаете задержку в 1-2 секунды. Потом - 5 секунд. Потом - 15. Если вы продолжаете, Telegram начинает возвращать ошибку 429 с заголовком Retry-After, который говорит, через сколько секунд можно повторить запрос.
Если вы игнорируете эти задержки и продолжаете слать запросы каждые 100 мс - Telegram может временно заблокировать бота на 10-30 минут. За несколько таких инцидентов за месяц - бота могут забанить полностью. И да, это не предупреждение. Это автоматическое действие, без писем, без уведомлений. Вы просто перестаете получать ответы.
Какие методы API самые «дорогие»?
Не все API-методы одинаково «нагружают» систему. Некоторые из них требуют больше ресурсов и имеют более жесткие ограничения.
sendMessage- самый частый. Допустимо до 30 раз в секунду.sendPhoto,sendVideo- требуют загрузки файлов. Telegram ограничивает их до 15 запросов в секунду, потому что они тяжелее для серверов.getUpdates- используется для получения входящих сообщений. Если вы запрашиваете обновления чаще, чем раз в 5-10 секунд, Telegram может начать возвращать пустые ответы или отключать ваше соединение.setWebhook- можно вызывать только один раз в 10 минут. Повторные вызовы в течение этого времени игнорируются.
Если вы используете бота для отправки изображений или видео - вы не просто ограничены 30 запросами. Вы ограничены 15. Это значит, что даже если вы не превышаете общий лимит, вы можете превысить лимит для конкретного типа запроса.
Очереди и буферизация: как Telegram управляет нагрузкой
Telegram не обрабатывает запросы в порядке их прихода. Он использует внутреннюю очередь, которая работает по принципу «первым пришел - первым обслужен», но с приоритетами. Запросы на отправку текста имеют высший приоритет. Запросы на загрузку медиа - низший. Если очередь переполнена, Telegram начинает отбрасывать запросы на медиа-файлы, чтобы не перегружать сеть.
Это значит, что если вы отправляете 20 текстовых сообщений и 10 фотографий за секунду, Telegram может обработать все 20 текстов, но отбросить 5-7 фотографий. Вы не получите ошибку - просто файлы не отправятся. Это одна из самых коварных проблем: бот выглядит как работает, но часть контента теряется.
Если вы используете бота для рассылки новостей, рекламы или уведомлений - вы должны учитывать это. Не полагайтесь на то, что все сообщения дойдут. Добавьте логирование: записывайте, какие запросы были отправлены, а какие не прошли. Используйте Retry-After заголовок, чтобы автоматически перезапускать неудачные запросы через нужное время.
Как избежать блокировки: практические советы
Вот что работает на практике:
- Всегда используйте задержки. Даже если вы отправляете 25 сообщений в секунду - добавьте 100-200 мс между запросами. Это снижает риск попадания в лимит.
- Собирайте сообщения в пакеты. Вместо того чтобы слать 100 отдельных сообщений, используйте
sendMediaGroup- можно отправить до 10 медиафайлов за один запрос. Это сэкономит вам 90 запросов. - Используйте вебхуки вместо long polling. Метод
getUpdatesв цикле - это плохая практика. Он создает лишнюю нагрузку. Настройте вебхук - Telegram сам будет отправлять вам новые сообщения, когда они появляются. - Логируйте ошибки 429. Если вы видите
Retry-After: 5, не игнорируйте. Подождите 6 секунд и повторите. Не пытайтесь «переслать сразу». - Не отправляйте одинаковые сообщения массово. Telegram фильтрует спам. Если 1000 пользователей получают одно и то же сообщение - бота могут забанить за спам, даже если вы не превысили лимиты.
Сравнение лимитов: что реально можно сделать
Вот что вы можете сделать за минуту, если соблюдаете правила:
| Действие | Лимит в секунду | Лимит в минуту | Рекомендация |
|---|---|---|---|
| Отправка текста | 30 | 1800 | Добавьте задержку 35 мс между запросами |
| Отправка фото/видео | 15 | 900 | Используйте sendMediaGroup для групповых отправок |
| Получение обновлений (getUpdates) | 1 | 60 | Перейдите на вебхук |
| Изменение сообщений | 30 | 1800 | Ограничьте редактирование только важными сообщениями |
| Установка вебхука | 1 раз в 10 минут | 6 раз в час | Не меняйте вебхук без необходимости |
Эти цифры - не рекомендации. Это жесткие границы. Превышение - это не «можно обойти». Это «безопасность Telegram».
Что делать, если бот уже заблокирован?
Если ваш бот перестал отвечать, и вы видите ошибку 429 с Retry-After больше 30 секунд - значит, вы уже в зоне риска. Проверьте:
- Не отправляете ли вы одинаковые сообщения 50+ пользователям за раз?
- Не используете ли вы
getUpdatesв цикле с интервалом 100 мс? - Не отправляете ли фото/видео чаще, чем 1 раз в 70 мс?
Если вы нашли проблему - остановите бота. Подождите 30 минут. Затем запустите его снова, но с задержками. Если бот не восстановился через 2 часа - попробуйте создать нового бота через @BotFather. Иногда Telegram блокирует именно ID бота, а не IP-адрес. В этом случае новый бот - единственный выход.
Когда можно обойти лимиты?
Никогда. Нет легальных способов обойти лимиты Telegram Bot API. Даже если вы используете несколько ботов - Telegram отслеживает их по связанным аккаунтам, IP-адресам и поведению. Если вы запускаете 5 ботов, каждый из которых делает по 25 запросов в секунду - это 125 запросов. Telegram заметит. И заблокирует всех.
Некоторые разработчики используют прокси или VPN, чтобы «скрыть» запросы. Это не работает. Telegram не блокирует по IP. Он блокирует по поведению бота. Даже если вы смените IP - если ваш бот ведет себя как спамер - он будет заблокирован.
Единственный легальный способ - это использовать Telegram Bot API так, как он задуман: медленно, стабильно, с учетом очередей. Это не значит, что вы не можете масштабироваться. Это значит, что вы должны проектировать бота с учетом этих ограничений с самого начала.
Как масштабировать бота без нарушения лимитов
Если у вас больше 10 000 пользователей, и вы хотите отправлять уведомления - вот как это делают профессионалы:
- Разбейте пользователей на группы по 500-1000 человек.
- Отправляйте сообщения в каждую группу с интервалом в 1-2 минуты.
- Используйте очередь задач (например, Redis + Celery) для планирования рассылок.
- Добавьте случайные задержки между отправками - чтобы не было паттерна «каждые 33 мс».
- Проверяйте статус доставки через
getUpdatesи логируйте неудачи.
Такой подход не выглядит как «массовая рассылка». Он выглядит как естественная, постепенная активность. Telegram не блокирует естественные действия. Он блокирует автоматизированный спам.
Что будет, если вы игнорируете лимиты?
В 2025 году Telegram ужесточил правила для ботов, которые массово рассылают рекламу. Боты, которые превышали лимиты и отправляли одинаковые сообщения, получили:
- Временную блокировку на 24-72 часа (для первых нарушений)
- Полный запрет на отправку сообщений (для повторных)
- Удаление из поиска ботов (ботов больше нельзя найти через @BotFather)
Некоторые компании потеряли целые каналы, потому что их боты были забанены. Их клиенты не получали уведомления. Их бизнес пострадал. Это не гипотетическая угроза - это реальные случаи, которые происходят каждый день.
Ваш бот - это не инструмент для обхода правил. Это часть экосистемы Telegram. И как и любой участник, он должен соблюдать правила.
Какой максимальный лимит запросов Telegram Bot API в секунду?
Максимальный лимит - 30 запросов в секунду для большинства методов, таких как sendMessage. Для отправки фото и видео - 15 запросов в секунду. Превышение приводит к ошибке 429 и временной блокировке.
Что делать, если бот получает ошибку 429 Too Many Requests?
Проверьте заголовок Retry-After. Подождите указанное время (например, 5 или 15 секунд) и повторите запрос. Не пытайтесь отправить следующий запрос сразу. Используйте автоматические повторы с экспоненциальной задержкой.
Можно ли обойти лимиты, используя несколько ботов?
Нет. Telegram отслеживает поведение ботов по связанным аккаунтам, IP-адресам и шаблонам отправки. Если вы запускаете несколько ботов с одинаковым поведением - все они будут заблокированы как часть одной спам-сети.
Какой метод API самый «тяжелый» для Telegram?
Отправка фото, видео и файлов (sendPhoto, sendVideo) - самые тяжелые. Их лимит - 15 запросов в секунду. Это связано с нагрузкой на серверы загрузки файлов. Текстовые сообщения легче и имеют лимит 30 запросов в секунду.
Какие инструменты помогают управлять лимитами?
Используйте очереди задач (Redis, RabbitMQ), библиотеки с автоматическими повторами (например, python-telegram-bot с retry-механизмом) и логирование ошибок. Также рекомендуется использовать вебхуки вместо getUpdates для снижения нагрузки.