Skip to content
TGDirectory
DirectoryCategoriesRankingsBlogAPI
Log inList your channel
TGDirectoryMenu
List Your Channel, Group or Bot/MiniGame

Your channels

  • My Channels

Account

Log InRegister

Discover

  • View all Telegram Channels
  • Categories
  • Best Telegram Channels
  • Crypto Channels 2026
  • Top Rated
  • Recently Added
  • Articles & Guides

Company

  • Contact Us

TGDirectory — find, compare and discover Telegram channels.

  1. Home/
  2. Blog/
  3. Bots & Mini Apps/
  4. How to Send Broadcast Messages to Your Bot Subscribers (Opt-In)
Bots & Mini Apps

How to Send Broadcast Messages to Your Bot Subscribers (Opt-In)

How to build an opt-in subscriber list for your Telegram bot, send broadcasts within Telegram's limits, handle blocks and errors, measure results and avoid being flagged as spam.

TGDirectory31 Oct 202619 min read
Bots & Mini AppsHow to Send Broadcast Messages to Your Bot Subscribers (Opt-In)

To broadcast from a Telegram bot, you keep a list of the users who started your bot and agreed to receive updates, then send the message to each of them one by one through the Bot API, staying within Telegram's sending limits and removing anyone who has blocked the bot. Telegram has no "send to all" button for bots, so the broadcast is a loop your bot or bot platform runs. Bots can only message people who started them, which makes every bot list opt-in by design.

This guide covers how to collect consent properly, what to store, how to write and send a broadcast, the rate limits and errors you will meet, paid broadcasts for very large lists, how to measure results, and how to fix delivery problems. It describes the Bot API calls in words rather than code.

How bot broadcasting works

A Telegram bot talks to each user in a private chat. When someone opens your bot and presses Start, Telegram creates that chat and your bot receives an update containing the user's chat ID. From then on, your bot can send messages to that chat ID.

A broadcast is simply the same message sent to many of those chat IDs. Three rules shape everything that follows:

  1. A bot cannot start a conversation. It can only message users who started it or otherwise interacted with it. There is no way to message a phone number or a username that has never contacted your bot.
  2. Users can block the bot at any time. After that, every message to them fails.
  3. Telegram limits sending speed. Send too fast and Telegram asks your bot to wait.

Unlike a channel, a bot message arrives in a private chat, usually with a notification. That makes bot broadcasts more noticeable than channel posts, and also more irritating when unwanted. Treat that attention with care.

Bot broadcast or channel?

Before building a broadcast system, ask whether a channel would do the job. A channel sends one post to unlimited subscribers with no code, no rate limits and no list to maintain. Our guide to channels versus groups explains channels in detail.

A bot broadcast is better when:

  • messages need to be personal, such as an order update or a reminder with the user's name,
  • different users should receive different messages,
  • the message needs buttons that do something for that user, such as confirming a booking,
  • your audience already uses your bot for a service.

For general news to everyone, a channel is usually simpler. Many businesses use both: a channel for news, a bot for personal messages.

Before you start

Have these in place:

  1. A working bot. Created with @BotFather. Our guide to creating a bot with BotFather covers setup.
  2. A way to receive updates. Either polling or a webhook, so your bot learns who starts it. Our guide to setting a webhook explains the webhook route.
  3. Storage. A database or at least a reliable file to keep subscribers and their status.
  4. A privacy notice. A short explanation of what you send, how often, and how to stop.
  5. A plan for who sends broadcasts. Decide which team members can trigger one, and require a test send first.

If you do not write code, a bot-building platform can handle storage and sending for you. Our guide to building a bot without coding covers that route, and the principles in this guide still apply.

Step 1: Build an opt-in subscriber list

Pressing Start lets your bot message someone, but it does not necessarily mean they want marketing messages. Someone who started your bot to check an order expects order updates, not weekly promotions. Ask separately.

Ask for consent clearly

A good pattern:

  1. When a user starts the bot, greet them and explain what the bot does.
  2. Offer updates as a separate choice, with buttons like "Yes, send me updates" and "No thanks".
  3. Say what kind of updates and how often, for example "one message a week with new recipes".
  4. Record their answer and the time.

People who tap "Yes" are your broadcast list. People who tap "No" still use the bot normally but receive only messages related to their own actions.

What to store for each subscriber

  • Chat ID. The number your bot uses to message them. Our guide to getting a chat ID explains what it is.
  • Consent status. Subscribed, unsubscribed or never asked.
  • Consent time and source. When they agreed and where they came from.
  • Language. Telegram tells your bot the user's app language. Use it to send the right version.
  • Preferences. Topics they chose, if you offer choices.
  • Delivery status. Active, blocked or deactivated, updated from send results.

Store only what you use. Do not store message contents you do not need.

Where subscribers come from

  • Start links with a parameter. A t.me link to your bot can carry a short code, which your bot receives when the user presses Start. Use a different code on each website page, channel post or ad to see where subscribers came from. Our guide to tracking clicks and sales from Telegram covers this.
  • Your channel or group. A pinned post or button that opens the bot.
  • Your website and emails. A link or QR code with a short reason to subscribe.
  • Inside the service. Ask users who already use your bot for something else.

Never import lists of phone numbers or usernames to message. It is impossible with a bot anyway, and attempting to reach people who never asked through other accounts leads to bans.

Step 2: Make unsubscribing easy

An easy way out keeps your list healthy. People who cannot find how to stop will block the bot instead, and many blocks are a strong spam signal.

  1. Add a stop command. Something like a /stop or /unsubscribe command, listed in the bot's command menu.
  2. Mention it in broadcasts. A short line at the end, or a button, such as "Stop updates".
  3. Honour it immediately. Mark the user unsubscribed in the same moment, and confirm with one short message.
  4. Offer a preferences option. Some people want fewer messages, not none. Let them choose topics or frequency.
  5. Let them come back. A /subscribe command or button to rejoin.

Unsubscribing from broadcasts should not break the bot's main service. Someone who stops promotions should still get their order updates if they want them.

Step 3: Write the broadcast

A bot message lands in a private chat, usually with a notification. That raises the bar for what is worth sending.

Make every message earn the notification

Ask: would this person be glad they received this? Useful examples include a new feature they asked for, an offer on something they showed interest in, a reminder they signed up for, or genuinely important news.

SponsoredBitcoin Insights67K members · CryptoOpen in Telegram

Keep it short and clear

  • Put the key point in the first line. It appears in the notification and chat list.
  • Use formatting sparingly for emphasis. Our text formatting guide explains bold, italic and links on Telegram.
  • Include one clear action, ideally as a button under the message. Our guide to adding buttons explains how inline buttons work.

Personalise carefully

Using the user's first name or referring to their past choices can help, but only with data you hold accurately. A name that is blank or wrong looks careless.

Use silent sending when it fits

The Bot API lets you send a message without a notification sound. That suits non-urgent updates, or sends that land at night in some time zones.

Media

If the broadcast includes a photo, video or file, upload it once, then reuse the file identifier Telegram returns for the rest of the sends. Uploading the same file thousands of times is slow and wasteful.

Copy rather than forward

If you want to reuse a post from your channel, the Bot API can copy a message to each user, which sends it without the "Forwarded from" header. Forwarding shows the source, which you may or may not want.

Step 4: Test before sending

  1. Send the broadcast to yourself and a small test group of team members.
  2. Check formatting on Android, iPhone and Desktop. Line breaks and links can look different.
  3. Tap every button and link.
  4. Check the message in each language you send.
  5. Confirm the unsubscribe button or command works.

A broken link sent to thousands of people cannot be recalled from every chat easily. Testing takes minutes.

Step 5: Send within Telegram's limits

The default speed

Telegram's Bot API documentation says bots can broadcast to their users at up to about 30 messages per second by default. Telegram's bot FAQ also advises not sending more than about one message per second to a single chat, and fewer to groups. Limits can change, so check Telegram's current bot documentation.

For a large list, a broadcast therefore takes time. As an illustration only: a list of 60,000 subscribers sent at 30 messages per second takes around half an hour. Plan for that.

How to pace the loop

  1. Put all recipients for this broadcast into a queue.
  2. Send to them at a steady rate below the limit, rather than as fast as possible.
  3. Record the result of each send immediately.
  4. If interrupted, resume from where you stopped rather than starting again, so nobody receives the message twice.

When Telegram asks you to wait

If you send too fast, Telegram responds with a "too many requests" error that includes how many seconds to wait. Stop sending, wait at least that long, then continue from the same place. Ignoring it and retrying immediately makes things worse.

Paid broadcasts for very large lists

Telegram offers paid broadcasts for bots that need to send faster. When enabled in @BotFather, a bot can send well above the default rate, and each message above the free limit costs a small amount of Telegram Stars from the bot's balance. Telegram's documentation sets conditions for using it, such as a minimum Stars balance, and these have changed over time. Check the current requirements in the Bot API documentation and @BotFather before relying on it.

Most bots never need this. It matters for time-sensitive messages to very large lists, where a slow broadcast would deliver the last messages too late.

Keep the bot responsive during a broadcast

The sending limit is shared by everything your bot sends. If a broadcast uses the full allowance, the bot's normal replies to users, such as answers to commands or booking confirmations, get delayed or refused. Three habits prevent that:

  1. Run the broadcast as a separate background job, not inside the code that answers incoming messages. A long loop inside the reply handler can make the bot appear frozen.
  2. Leave headroom. Send the broadcast below the limit so normal replies still fit.
  3. Never run two broadcasts at once. They compete for the same allowance. Queue the second until the first finishes.

Step 6: Handle errors properly

Every send returns either success or an error. Use the errors to keep your list clean.

The user blocked the bot

The send fails with a forbidden error saying the bot was blocked by the user. Mark that user as blocked and stop sending to them. Do not retry. If they unblock the bot later, your bot receives an update, and you can mark them active again. The same update type also tells your bot when a user blocks it, so you can update your list before the next broadcast.

The user deleted their account

The send fails with a forbidden error saying the user is deactivated. Mark them inactive permanently.

Chat not found

Usually means the stored chat ID is wrong, or the user never started this bot. Check how that ID got into your list.

Too many requests

Covered above: wait the time Telegram specifies, then resume.

Bad request: formatting

If formatting marks are unbalanced, Telegram refuses the message. This affects every recipient, so it should be caught during testing. If it happens mid-broadcast, stop and fix the message.

Network and server errors

Temporary failures can happen. Retry a few times with increasing pauses, then record as failed for review.

Keep a log

For each broadcast, keep counts of sent, blocked, deactivated and failed. A sudden rise in blocks after a broadcast is your clearest signal that the message was unwelcome.

Step 7: Segment and schedule

Segment by interest

Sending everything to everyone is the fastest way to raise blocks. If you know users' interests or past actions, send each group only what fits it. A user who bought one product category usually cares more about that category.

Schedule by time zone

A notification at 3 a.m. annoys people. If your users are spread across time zones, either schedule by the user's likely local time, or send at a time that is reasonable for most, using silent sending for the rest. Telegram does not tell bots a user's time zone, so you may need to ask or infer it from language and context.

Control frequency

Decide a maximum number of broadcasts per week and stick to it. Users who agreed to "weekly updates" and receive daily ones will leave.

Step 8: Measure results

Telegram does not tell a bot whether a user read a message. You can still measure what matters.

  • Delivery. Successful sends versus errors.
  • Blocks. How many users blocked the bot after each broadcast. Compare across broadcasts.
  • Button taps. Inline buttons with callback data tell your bot exactly who tapped and when.
  • Link clicks. Use tracked links that your website analytics recognise.
  • Replies. If users reply to the bot, count and read them.
  • Unsubscribes. Via your stop command.
  • Conversions. Purchases or bookings that came from the broadcast, using codes or tracked links.

Compare each broadcast against the previous ones. A message with fewer taps and more blocks than usual is telling you something.

SponsoredKrypto News Insider 🇩🇪64K members · CryptoOpen in Telegram

Correcting a broadcast after it goes out

Mistakes happen: a wrong date, a broken link, a price typo. Bots have two tools to fix them, and both depend on something you must do before sending.

Store the message ID for every recipient

When a send succeeds, Telegram returns the ID of the message in that user's chat. Save it with the user and the broadcast. Without these IDs you cannot touch the message again.

Editing

A bot can edit the text, caption or buttons of a message it sent. To correct a broadcast, run a second loop that edits each stored message, at the same careful pace as the original send. Edits do not trigger a new notification, so users who already read the message may not notice the change. If the mistake matters, such as a wrong event date, send a short correction as well.

Deleting

A bot can also delete messages it sent in private chats, but Telegram limits how long after sending this is possible, and the exact rules are in the Bot API documentation. If a message was sent to the wrong segment, delete it quickly and send the right one.

Swapping a link

If the message's button points to your own website, you can often fix a mistake by changing where that link leads on your side, which is faster than editing thousands of messages.

Keeping your list healthy over time

A list that only grows gradually fills with people who no longer care. Signs include more blocks per broadcast and fewer button taps.

  1. Track activity. Note the last time each subscriber tapped a button, replied or used the bot.
  2. Ask long-inactive users to confirm. Send one message asking whether they still want updates, with Yes and Stop buttons. Stop broadcasting to those who do not answer.
  3. Respect preferences. If someone chose fewer messages, keep to it even when you have a lot to say.
  4. Clean regularly. Remove blocked and deactivated users from your sending queue so each broadcast finishes faster.

A smaller list of people who want your messages beats a large list that blocks you.

Consent, data and the rules

Broadcasting to people is regulated in many places, and Telegram has its own rules against spam.

  • Record consent. Keep when and how each person agreed, so you can show it if asked.
  • Honour deletion requests. If a user asks you to delete their data, remove it from your list and any connected systems.
  • Follow local law. Marketing and data protection rules differ by country. If your users are in several countries, the strictest rules that apply to them are the safe baseline.
  • Follow Telegram's terms. Unwanted messages and spam can lead to your bot being limited or banned.

This is general information, not legal advice. Check local rules or ask a professional for your situation.

Using automation tools

Many teams send broadcasts through automation platforms that connect a bot to a spreadsheet, CRM or form. When you use them, check that the tool:

  • respects Telegram's rate limits rather than firing all messages at once,
  • records blocked users and stops sending to them,
  • lets you test on a small group first,
  • keeps your bot token secure.

Never paste your bot token into a tool you do not trust. Anyone with the token controls the bot and its subscriber chats.

Worked example: a hypothetical cookery school bot

This is an illustrative scenario.

A cookery school uses a bot for class bookings. It wants to announce new classes to interested students.

  1. When students start the bot to book, it asks: "Would you like a message when new classes open? About twice a month." Most tap Yes.
  2. The bot stores each student's chat ID, consent, language and which cuisine they booked before.
  3. When a new Italian class opens, the school broadcasts only to subscribers who booked Italian classes before or chose Italian as an interest.
  4. The message has one line about the class, a photo uploaded once and reused, and a "Book a place" button. A small "Stop updates" button sits beneath it.
  5. The bot sends at a steady pace below the limit and logs results. A handful of sends fail because users blocked the bot; they are marked blocked.
  6. Button taps show how many opened the booking flow. Bookings show how many completed it.
  7. The next broadcast goes to a different interest group. The school compares blocks and bookings between them and adjusts.

Troubleshooting

Some users never receive broadcasts

  • Check their status in your list; they may be marked blocked from an earlier failure.
  • Check whether they ever started the bot, or only interacted with it in a group.
  • Check your segmentation filter is not excluding them by mistake.

Blocks jump after a broadcast

The message was unwanted by many. Review the content, the frequency and whether it went to the right segment. Reduce frequency and target more narrowly.

The broadcast is very slow

That may be correct: large lists take time at safe speeds. If it is slower than expected, check you are reusing media file identifiers and that your server is not the bottleneck. For time-critical large sends, look into paid broadcasts.

Some users got the message twice

Your loop restarted from the beginning after an interruption. Record each successful send as it happens and resume from the queue.

Formatting symbols show up as plain text

The message was sent without a formatting mode, or with a different mode from the one the text was written for. Telegram supports more than one formatting style, and each uses different marks. Make sure the send uses the same style the text was written in, and test again.

Buttons do nothing when tapped

For buttons that send data back to the bot rather than open a link, the bot must answer each tap. If it does not, the user sees a loading indicator and nothing happens. Check that the bot is running, receives the tap updates, and responds to them, including during a busy broadcast.

SponsoredIGaming News1.3K members · NewsOpen in Telegram

Links open the wrong page

Check the tracked link parameters. A copy-paste mistake in one character sends everyone to an error page. Fix it on your website if you can redirect, or edit the stored messages.

The bot was limited or users report spam

Stop broadcasting, review consent records and content, and make sure only opted-in users are receiving messages.

What to do next

Once your first broadcasts run smoothly, the next improvements usually come from the bot itself rather than the messages:

  1. Add a short preferences menu so subscribers choose topics and frequency.
  2. Connect the bot to your CRM or helpdesk so replies to broadcasts reach a person.
  3. Build a simple report of sends, blocks and taps per broadcast, so trends are visible at a glance.
  4. Promote the bot where your audience already is, with a clear promise of what subscribing brings.

Common mistakes

  • Treating Start as marketing consent. Ask separately for broadcast permission.
  • No visible way to stop. People block instead, which hurts the bot.
  • Sending as fast as possible. It triggers waits and risks limits.
  • Ignoring blocked users. Retrying them wastes time and can look abusive.
  • Restarting a failed broadcast from the start. It sends duplicates.
  • Uploading the same media for every send. Reuse the file identifier.
  • Sending at night. Use time zones or silent sending.
  • Exposing the bot token. Keep it on the server only.
  • Using a bot when a channel would do. For general news, a channel is simpler and free of limits.

FAQ

Can a Telegram bot message users who have not started it?

No. A bot can only message users who started it or interacted with it in a way that allows messaging. There is no way to cold-message people with a bot.

Is there a built-in broadcast button for bots?

Not in Telegram itself. Broadcasting means your bot or bot platform sends the message to each subscriber in a loop. Some bot-building tools provide a broadcast feature that does this for you.

How fast can a bot send a broadcast?

Telegram's documentation says around 30 messages per second by default, with an optional paid speed-up for bots that meet its conditions. Check the current Bot API documentation, as limits can change.

How do I know who blocked my bot?

Sends to users who blocked the bot fail with a specific error, and your bot also receives an update when a user blocks or unblocks it. Use both to keep your list accurate.

Can I see whether users read my broadcast?

No. Telegram does not report read status to bots. Measure button taps, link clicks, replies and conversions instead.

Do broadcasts cost money?

Sending at normal speed through the Bot API is free. Costs come from hosting your bot, any platform you use, and paid broadcasts if you choose to send faster than the default limit.

Summary

Broadcasting from a Telegram bot means sending one message to each opted-in user in turn. Ask clearly for permission to send updates, store each subscriber's status, and make stopping easy. Write short messages worth a notification, test them, and send at a steady pace within Telegram's limits, waiting when Telegram asks. Use errors to remove blocked and deleted users, segment by interest and time zone, and measure taps, clicks and blocks rather than reads. For general news to everyone, consider a channel instead; for personal, actionable messages, a well-run bot broadcast is hard to beat.

AdHow the 30% discount works
Verified
Verified channels

Ownership confirmed through our claim process — not an endorsement of their content.

  1. Pavel DurovOwner verified
    @durov·News·10M members

    Founder of Telegram.

    ★ 5.0(2179)
  2. Telegram NewsOfficial channel
    @telegram·News·9.1M members

    The official Telegram on Telegram. Much recursion. Very Telegram. Wow.

    ★ 5.0(2879)
  3. Telegram PremiumOfficial channel
    @premium·News·6.3M members

    Telegram Premium – a subscription that unlocks dozens of exclusive features.

    ★ 4.6(1283)
  4. Binance AnnouncementsOfficial channel
    @binance_announcements·Crypto·3.2M members

    Binance Official English Group Binance Official Chinese Group Binance English Announcements Binance Chinese Announcements

    ★ 4.0(450)
Directory
The Crypto Channel Directory
List Your Channel, Group or Bot/MiniGame
  1. Crypto ResearchOfficial channel
    @cryptoresearch·Crypto·53K members

    is a modern crypto news and research platform covering the latest developments across digital assets, markets, regulation, and blockchain technology.

    ★ 4.5(553)
  2. Charts Signals TradingOfficial channel
    @ChartsSignalsTrading·Trading·105K members

    Technical analysis & high-probability trade setups. Price action, market structure, risk control.

    ★ 4.8(1865)
  3. Black Block MarketsOfficial channel
    @BlackBlockMarkets·Crypto·70K members

    BlackBlock Markets exists to observe how capital moves before it becomes obvious.

    ★ 4.4(1369)
  4. Only FinanceOfficial channel
    @OnlyFinance_Pro·Finance·80K members

    This channel focuses exclusively on what shapes global finance. Macroeconomics, markets, liquidity, central banks.

    ★ 4.1(1245)
  5. Bitunix Trading Signals
    @Bitunix_Trades·Trading·67K members

    Clear long & short signals for BTC, ETH & liquid altcoins. AI-backed analysis, real-time execution.

    ★ 4.4(220)
Explore the directory→
More from the blog
Privacy & SafetyHow to Recover Deleted Messages on TelegramPrivacy & SafetyHow to Recover Deleted Messages on TelegramWhat Telegram's delete options actually remove, which copies survive on your other devices, local caches and exports, and what is gone for good.12 Nov 2026Bots & Mini AppsHow to Use Telegram Bots to Send Automatic RepliesBots & Mini AppsHow to Use Telegram Bots to Send Automatic RepliesSet up Telegram automatic replies the right way: built-in Business greeting, away and quick replies, or a custom BotFather bot with menus, keyword answers and handoff.11 Nov 2026Getting StartedHow to Use Telegram Saved Messages as a Personal CloudGetting StartedHow to Use Telegram Saved Messages as a Personal CloudWhere Saved Messages sits on each Telegram app, how to save and organise notes and files there, and what it does not protect.10 Nov 2026Getting StartedHow to Search Messages in a Telegram Chat or ChannelGetting StartedHow to Search Messages in a Telegram Chat or ChannelFind a specific past message, link, photo or file inside a Telegram chat or channel on phone or desktop, using search filters, hashtags and date ranges.9 Nov 2026Getting StartedTelegram Web Preview of Channels ExplainedGetting StartedTelegram Web Preview of Channels ExplainedWhat a t.me/s link is, how to read a public Telegram channel in a browser without joining, and how to embed a single post.8 Nov 2026Getting StartedHow to Transfer Telegram Chats to a New PhoneGetting StartedHow to Transfer Telegram Chats to a New PhoneA step-by-step guide to moving Telegram to a new Android phone or iPhone: what returns from the cloud, what stays behind, and the order of steps before wiping the old device.7 Nov 2026
View all articles→
List Your Channel, Group or Bot/MiniGame

Discover

  • View all Telegram Channels
  • Categories
  • Best Telegram Channels
  • Crypto Channels 2026
  • Top Rated
  • Recently Added
  • Articles & Guides
TGDirectory

The most comprehensive Telegram channel directory. Discover the best channels, groups and bots in one place.

Contact: contact@telegramchannels.io

Explore
DirectoryCategoriesRankingsNew ChannelsInsightsTelegram Trading SignalsFree Crypto Signals Telegram ChannelsBitcoin Telegram ChannelsCrypto Exchange Telegram ChannelsCrypto News Telegram Channels
Company
AboutAdvertiseArticles & GuidesContact UsSubmit a ChannelDevelopers & APIFAQ
Legal
Privacy PolicyTerms of ServiceDisclaimer
© 2026 TGDirectory. All rights reserved.TGDirectory is an independent directory and is not affiliated with or endorsed by Telegram.
Report a problem→