Telegram Rate Limits and What They Do to Your Funnel

Telegram Rate Limits and What They Do to Your Funnel

Most funnel advice ignores delivery mechanics entirely, which works fine until your list gets big enough that your "9am send" is still going out at 10.

Telegram's limits are published, specific, and they shape campaign design more than any copywriting decision once you pass a few thousand subscribers.

The limits

From Telegram's own Bot FAQ and API documentation:

LimitValue
Single chat~1 message per second
Group20 messages per minute
Bulk broadcast~30 messages per second
With Paid Broadcastsup to 1,000 messages per second

For the single-chat limit, short bursts are tolerated — "We may allow short bursts that go over this limit, but eventually you'll begin receiving 429 errors." Telegram documents no equivalent tolerance for the group, bulk-broadcast or Paid Broadcasts ceilings.

When you are throttled, the API returns a retry_after value: "the number of seconds left to wait before the request can be repeated." Respect it. Retrying immediately deepens the throttle.

What 30 per second means in practice

SubscribersTime to reach everyone
1,00033 seconds
10,000~5.6 minutes
50,000~28 minutes
100,000~56 minutes
500,000~4.6 hours
1,000,000~9.3 hours

At 100,000 subscribers, the last person receives your "flash sale ends at midnight" message an hour after the first. At a million, the tail arrives more than nine hours later — a 9am send is still going out at dinnertime.

Telegram's own advice for large lists is to spread broadcasts over 8–12 hours rather than fight the limit.

Paid Broadcasts, and who can actually use them

Enabling Paid Broadcasts in @BotFather raises the ceiling to 1,000 messages per second. Each message above the free 30/second costs 0.1 Stars, drawn from the bot's Stars balance. At the API level this is the allow_paid_broadcast parameter on send methods.

The eligibility requirements are the part that matters:

That excludes almost everybody. Paid Broadcasts is a feature for large operations, not a workaround for a growing list.

The cost, if you qualify: a 100,000-message broadcast is roughly 10,000 Stars — on the order of $133 at typical Star valuations. A million-message broadcast is around 100,000 Stars, roughly $1,330 (both figures ignore the free 30/second allowance, which shaves about 3% off at these speeds). Meaningful money for a single send, and it buys you about 17 minutes (1,000,000 ÷ 1,000 per second ≈ 1,000 seconds) instead of the 9.3 hours in the table above.

Designing around the limits

Stop treating broadcast as instantaneous. Above ~10,000 subscribers your send has a duration. Plan campaigns around a delivery window, not a moment.

Never put a hard deadline in a large broadcast. "Ends in one hour" is false for most of your list if the send takes 56 minutes. Use dates, not countdowns: "ends Friday" is true for everyone.

Send in priority order when the message is time-sensitive. Your most engaged segment first, so the people most likely to act get the most time to act.

Stagger deliberately rather than fighting throttling. A send spread over 8 hours by design behaves predictably; one throttled unpredictably by the API does not.

Handle 429s properly. Read retry_after, wait exactly that long, resume. A queue with backoff is not optional infrastructure at scale — it is the difference between a campaign that completes and one that half-fails silently.

Where drip sequences win

Sequences are largely immune to all of this, and it is an underrated structural advantage.

A broadcast sends to everyone at once and collides with the ceiling. A drip sequence sends to each subscriber on their own timeline — day 1 after they joined, day 3, day 7. Since people join continuously, your sends are naturally spread across time.

A sequence serving 100,000 subscribers might send only a few hundred messages an hour, comfortably inside every limit, with no queue infrastructure and no throttling.

As your list grows, sequences scale gracefully and broadcasts do not. That is a reason to shift weight toward sequences that has nothing to do with marketing theory. See broadcast vs sequence.

The one-per-second-per-chat rule

Distinct from broadcasting, and easy to trip: avoid more than one message per second to a single chat.

Sequences that send several messages back to back — a greeting, then an image, then a keyboard — can hit this. Space multi-part messages by at least a second. Better, do not send three messages where one will do; consecutive rapid messages are also the fastest way to earn a block.

The group limit of 20 messages per minute matters if your bot posts into a community group. A bot announcing every purchase in a busy group will hit it. Telegram documents this limit for groups; it does not publish an equivalent per-channel figure.

A practical checklist

  1. Know your subscriber count and therefore your broadcast duration
  2. Never use countdown language in a broadcast over ~10,000 people
  3. Implement retry_after backoff before you need it
  4. Prioritise engaged segments first on time-sensitive sends
  5. Move recurring campaigns into sequences as the list grows
  6. Space multi-part messages by a second or more
  7. Treat Paid Broadcasts as unavailable unless you meet both thresholds

The limits are generous for small lists and genuinely constraining above six figures. The transition catches people out precisely because nothing breaks — the send just quietly takes an hour, and the campaign underperforms for a reason that never appears in the report.


Limits quoted from Telegram's Bot FAQ and Bot API documentation, verified September 2026. Star cost conversions use ~$0.0133 per Star and are approximate.