Bot API limits

The limits a bot runs into, each with the sentence from Telegram's documentation it comes from. Wording checked on 13 November 2026.

Sending rate

Bar length: messages per second on a log scale.

One chat1 message / s
In a single chat, avoid sending more than one message per second. We may allow short bursts that go over this limit, but eventually you'll begin receiving 429 errors.Bots FAQ
One group20 messages / min
In a group, bots are not be able to send more than 20 messages per minute.Bots FAQ
Broadcast to many chatsabout 30 messages / s
For bulk notifications, bots are not able to broadcast more than about 30 messages per second, unless they enable paid broadcasts to increase the limit.Bots FAQ
Paid broadcastsup to 1000 messages / s
Enabling paid broadcasts in @BotFather allows a bot to broadcast up to 1000 messages per second. Each message broadcasted over the free amount of 30 per second incurs a cost of 0.1 Stars per message, paid with Telegram Stars from the bot's balance.Bots FAQ

Sizes and counts

Message text1–4096 characters
Text of the message to be sent, 1-4096 characters after entities parsingsendMessage
Caption0–1024 characters
Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsingsendPhoto
Upload50 MB
Bots can currently send files of any type of up to 50 MB in sizeBots FAQ
Download (getFile)20 MB
Use the getFile method. Please note that this will only work with files of up to 20 MB in size.Bots FAQ
Photo upload10 MB
The photo must be at most 10 MB in size.sendPhoto
Local Bot API server2000 MB upload
Download files without a size limit. Upload files up to 2000 MB.Bot API
Media group2–10 items
A JSON-serialized Array describing messages to be sent, must include 2-10 itemssendMediaGroup
callback_data1–64 bytes
Data to be sent in a callback query to the bot when the button is pressed, 1-64 bytesInlineKeyboardButton
Bot commands100
At most 100 commands can be specified.setMyCommands
getUpdates batch1–100 updates
Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100.getUpdates
Webhook connections1–100, default 40
The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40.setWebhook
Webhook ports443, 80, 88, 8443
Ports currently supported for webhooks: 443, 80, 88, 8443.setWebhook
Undelivered updateskept 24 hours
Incoming updates are stored on the server until the bot receives them either way, but they will not be kept longer than 24 hours.Getting updates

FAQ

How many messages per second can a Telegram bot send?

About 30 per second across all chats, one per second into a single chat and 20 per minute into one group, according to Telegram's Bots FAQ. Paid broadcasts raise the overall limit to 1000 per second.

What happens when a bot is over the limit?

The Bot API answers 429 Too Many Requests with parameters.retry_after: the number of seconds to wait before the next call. Wait that long; retrying earlier extends the block.

How do I send to many users without hitting the limit?

Queue the messages and send below 30 per second, spread over a longer period. Telegram's FAQ suggests intervals of 8–12 hours for large broadcasts.

Are these numbers guaranteed?

No. Telegram words the rate limits as “about” and allows short bursts. Treat 429 with retry_after as the real signal and these figures as the planning values.