Opt-in broadcast · Bot API

Bulk messaging on Telegram, done inside the rules

Broadcast to the people who opted in, at the speed the platform documents, with delivery states reported back instead of a "messages sent" figure that cannot fail.

How does Telegram bulk messaging work? A bot sends messages to every user who has started it or to a channel its subscribers follow, one API call per chat, queued below Telegram's published limits. Telegram documents roughly 30 messages per second for bulk notifications; past that the API returns HTTP 429 and a retry_after value. The list is built from people who opted in: a bot cannot message anyone who has not contacted it first.

The published limits we build against

These are Telegram's own numbers. Everything in the queue design exists to stay underneath them.

Telegram Bot API send limits, as published
LimitValueWording
Single chat1 / secAdvisory — "avoid sending more than one message per second"
One group20 / minStated as a hard cap
Bulk notifications~30 / secApproximate in Telegram's own wording; 429s begin past it
Paid Broadcasts1,000 / sec0.1 Stars per message above the free 30/sec
Cold messages0Bots cannot start conversations, at any price

At the free tier's ~30 messages per second, a 100,000-subscriber broadcast takes roughly 56 minutes of continuous sending — before retries. Planning a "10-minute blast" to that base is planning to collect 429s.Derived from Telegram's published bulk-notification figure

Each of those figures is quoted with its original wording, alongside the four things Telegram documents nowhere, in the sourced mass DM guide.

Paid Broadcasts are not a shortcut around consent. The higher ceiling still applies only to users who granted permission to contact them, and Telegram's bot developer terms separately prohibit harassing or spamming users with unsolicited messages. Raising throughput does not widen who you are allowed to reach.

What we build

  1. Consent capture with attribution

    Bot start links, channel joins and website capture, each carrying a deep-link parameter so every subscriber has a recorded origin. Telegram allows up to 64 characters in that parameter — enough for a real campaign identifier.

  2. A queue that backs off instead of racing

    Per-chat and global throttles, plus handling for the retry_after value Telegram returns with a 429. Most bulk tools retry immediately on failure, which converts one rate-limit response into a sustained one.

  3. Segmentation before volume

    Sending less to the right segment beats sending everything to everyone, and it protects the base: every irrelevant broadcast produces blocks, and blocks are permanent in a way that unsubscribes from email are not.

  4. Opt-out handling that actually removes people

    A stop command, honoured immediately, plus automatic removal on the "bot was blocked by the user" error. A base that keeps sending to blocked chats inflates every metric you report.

  5. Reporting on states, not sends

    Queued, sent, delivered, blocked, opted out — with the same definitions every month, and the reachable base as the denominator.

When broadcast is the wrong tool

Three situations come up where this service will not help, and we say so during the audit rather than after the invoice.

You have a phone list, not subscribers

A CSV of phone numbers or emails cannot be turned into Telegram recipients. There is no import path: the person has to press start on your bot or join your channel. Converting a list means running an acquisition campaign first, which is growth work, not broadcast work.

Your audience is not on Telegram

Telegram's user base is heavily concentrated in specific regions and communities. If your customers are mainstream consumers in markets where Telegram penetration is low, a broadcast programme will be technically flawless and commercially pointless.

You need one-to-one support at scale

Broadcast is one-to-many. Conversations at volume are a different build — that is automation, with routing, CRM hooks and human handover.

Frequently asked questions

What is the difference between bulk messaging and mass DM on Telegram?

Bulk messaging means broadcasting to people who opted in — they started your bot or joined your channel — using the Bot API, which Telegram documents and rate-limits. Mass DM usually means cold-messaging strangers from a scraped member list, which requires driving a normal user account through an unofficial client. The first is a supported product feature. The second breaks Telegram's terms on both the data collection and the messaging, and the sending accounts are the ones that get limited.

How fast can you send a Telegram broadcast?

Telegram's Bots FAQ puts bulk notifications at roughly 30 messages per second before HTTP 429 errors begin, with a separate guideline of about one message per second into any single chat. At 30 per second a 100,000-subscriber broadcast takes a little under an hour of wall-clock time. Paid Broadcasts raise the ceiling to up to 1,000 messages per second, priced at 0.1 Telegram Stars per message above the free tier, but require a large Stars balance and a monthly-active-user threshold before Telegram enables them.

Will my messages land in the recipient's main chat list?

For subscribers who started your bot, yes — that chat already exists on their device. What no vendor controls is whether the person has muted the chat, blocked the bot, or has privacy settings that restrict messages. This is why we report blocked and opted-out counts alongside delivered counts: the honest denominator is the reachable base, not the list you imported.

Related reading

  • Growth & marketing — how the subscriber base gets built in the first place.
  • Why bots cannot cold-DM — every published send limit in Telegram's original wording, and what happens to the accounts that try.

Send us the current setup

Bot, channel, list origin, tooling. You get a written read on throughput, compliance and what will break at volume — before any engagement.

Request the audit