There is no Telegram Business API. Telegram ships one developer interface, the Bot API, and since version 7.2 on 31 March 2024 that interface can drive a Telegram Business account: the owner connects your bot, Telegram delivers business_message updates, and your bot answers by passing business_connection_id to sendMessage (Bot API changelog, accessed 4 August 2026). Same token. Same host. Four extra update types.
The conflation costs real time. A team budgets a quarter for onboarding to a product that does not exist, then finds out the entire feature is four update types and one extra parameter. Telegram Business is a mode on an ordinary user account: opening hours, location, quick replies, automated messages, custom start pages, chatbot support (Telegram API docs, accessed 4 August 2026). The bot half of that is the part you can write code against.
Telegram Business API versus the Bot API
Two API layers exist and only one of them is yours. Telegram client applications speak MTProto and call the business methods documented under core.telegram.org/api/business. Every other kind of software, meaning any service you write that is not itself a Telegram client, speaks to the Bot API over HTTPS at https://api.telegram.org/bot<token>/METHOD_NAME (Bot API reference, accessed 4 August 2026). Business-account support lives in the second layer.
Telegram calls the bot half of this Secretary Mode. The bot features guide puts it directly: "Bots can enable Secretary Mode, allowing users to connect them to their account and allow it to process incoming messages and even respond on their behalf" (Telegram bot features, accessed 4 August 2026). One name in the changelog, a different name in the guide, one mechanism underneath.
The distance between a plain bot and a business-connected bot is wide. A plain bot lives in its own chats and answers on its own behalf. A business-connected bot reads and writes inside chats that belong to a human being, which is why Telegram gates every write behind a per-connection permission object called BusinessBotRights. The table maps the two against each other, with the Bot API version that introduced each row.
| Capability | Plain bot | Bot on a business connection | Telegram source |
|---|---|---|---|
| Inbound update type | message | business_message | Bot API 7.2 |
| Whose chats it sees | Chats opened with the bot | The owner's chats, picked by the owner | Bot features guide |
| Sending as a human | Not possible | business_connection_id on the send methods | Bot API 7.2 |
| Write permission gate | None beyond the token | rights (was can_reply before 9.0) | Bot API 9.0 |
| Mark a message read for the owner | Not possible | readBusinessMessage | Bot API 9.0 |
| Change the account name, bio, username | Not possible | setBusinessAccountName, setBusinessAccountBio, setBusinessAccountUsername | Bot API 9.0 |
| Post a story as the account | Not possible | postStory, editStory, deleteStory | Bot API 9.0 |
| Move Telegram Stars off the account | Not possible | transferBusinessAccountStars | Bot API 9.0 |
Row four deserves a second read. Bot API 9.0 replaced the can_reply field with rights, of the new type BusinessBotRights (changelog, 11 April 2025). Telegram's own features guide, as of 4 August 2026, still instructs you to check write permissions via can_reply on the latest BusinessConnection update. Two Telegram pages, two field names. Log one real update and read what actually arrives before you commit your parser to either.
Ask a vendor which `business_connection_id` your bot receives. If they cannot answer, they are reselling the Bot API with a markup.
What a Telegram business account can do through the API
Bot API 7.2 gave a connected bot four things: an update when the connection is created, edited, or ended, updates for new, edited, and deleted messages inside the account, the method getBusinessConnection, and the business_connection_id parameter on sendMessage, sendPhoto, and the rest of the send family. Messages carry the marker back to you as well. The Message object gained both business_connection_id and sender_business_bot in that same release.
Bot API 9.0, on 11 April 2025, turned that connection into delegated account administration. The list reads less like a messaging API and more like an admin panel handed to a third party, which is the half of the story most write-ups skip.
readBusinessMessageanddeleteBusinessMessageslet a bot mark incoming messages as read and delete messages on behalf of the account.setBusinessAccountName,setBusinessAccountUsername,setBusinessAccountBio,setBusinessAccountProfilePhoto, andremoveBusinessAccountProfilePhotoedit the human's profile.getBusinessAccountStarBalancereads the account's Telegram Star balance, andtransferBusinessAccountStarsmoves Stars from that balance to the bot's own balance for withdrawal.getBusinessAccountGifts,convertGiftToStars,upgradeGift, andtransferGifthandle gifts the account received, plussetBusinessAccountGiftSettingsfor the incoming-gift privacy settings.postStory,editStory, anddeleteStorypublish and manage stories as the account. Bot API 9.3 (31 December 2025) addedrepostStoryfor reposting across managed business accounts.
Look at what a bot holding full rights can do to somebody's account. Rename them, replace their profile photo, and move their Star balance to its own for withdrawal, all of it documented by Telegram in plain language (changelog, 11 April 2025). Telegram points bot developers at Section 5.4 of the Bot Developer Terms of Service for precisely this reason. Request the narrowest rights your feature needs and nothing beyond them.
That surface has been still for a while. Bot API 10.2 shipped on 14 July 2026, and the most recent business-account addition in the changelog is still repostStory, from 9.3 on 31 December 2025. If you were waiting for the business API to settle down before building on it, it settled down last December.
Three things this post will not guess
Three answers this post wanted and did not get from a Telegram page. First, the full field list of BusinessConnection and BusinessBotRights: the Bot API reference is one enormous HTML page and most tooling truncates well above those tables, anchors included. Second, whether a connected bot pauses while the owner is active in a chat. Third, a rate limit specific to business messages, which does not appear on any page cited at the bottom of this post.
So none of the three is stated here. If you need the exact payload shape, connect a test bot to a throwaway business account and dump the first business_connection update straight to a log. Ten minutes, zero guessing. That is also the fastest way to settle the can_reply versus rights question for whatever Bot API version Telegram is serving you this week.
Connecting a Telegram business account
The connection is made by the account owner, not by you. Your side of it is a toggle. Telegram's quick start: enable Secretary Mode for your bot in @BotFather, then handle the BusinessConnection update that signals a user has established, edited, or ended a connection (bot features guide, accessed 4 August 2026).
The owner controls scope, and the control is genuine. In Telegram's words, "The account owner can specify which chats your bot can access", and inside those chats the bot receives every update the Bot API normally supports, except messages sent by itself and by other bots. On the MTProto side the same setting is an InputBusinessBotRecipients object with flags for existing chats, new chats, contacts, and non-contacts, plus an exclusion list (connected business bots, accessed 4 August 2026).
One more detail worth wiring on day one. Users who connect your bot see a Manage Bot action at the top of every managed chat, and tapping it deep-links into your bot with the payload /start bizChat<user_chat_id> (bot features guide, accessed 4 August 2026). Parse it. It maps a managed chat back to the owner who granted you access, and it costs one regex.
Telegram Business features are free for Premium subscribers, and connected bots are available to non-Premium users as well (Telegram API docs, accessed 4 August 2026). Read that second clause carefully before you gate anything on a Premium check. Your user may have connected a bot without ever paying Telegram a cent.
Reading and replying to Telegram DMs programmatically
Two shapes exist and they are not interchangeable. A plain bot reads the DMs people send to the bot itself. A business-connected bot reads the DMs people send to a human, arriving as business_message rather than message, and replies with business_connection_id set on the call. Identical sendMessage method in both cases.
# Plain bot: reply in a chat the user opened with your bot
curl -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d '{ "chat_id": 123456789, "text": "Thanks, checking now." }'
# Business connection: the same method, sent as the account owner.
# business_connection_id was added to the send methods in Bot API 7.2.
curl -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"business_connection_id": "'"$BIZ_CONNECTION_ID"'",
"chat_id": 123456789,
"text": "Thanks, checking now."
}'The plain-bot path is what most products actually need, and it is the path SocialAPI.ai's Telegram connector covers. You connect a bot with a static token from @BotFather, shaped <bot_id>:<secret>, passed as metadata.bot_token. No OAuth. No app review, no business verification, no developer account. Connecting is one POST and the token does not expire until you revoke it in @BotFather.
# 1. Connect the bot (static token, no OAuth)
curl -X POST https://api.social-api.ai/v1/accounts/connect \
-H "Authorization: Bearer $SOCAPI_KEY" \
-H "Content-Type: application/json" \
-d '{ "platform": "telegram", "metadata": { "bot_token": "<token from @BotFather>" } }'
# 2. List the bot's conversations
curl "https://api.social-api.ai/v1/inbox/conversations?account_id=acc_01HZ9..." \
-H "Authorization: Bearer $SOCAPI_KEY"
# 3. Reply with text, or a photo / document by URL
curl -X POST https://api.social-api.ai/v1/inbox/conversations/sapi_dm_dGVsZWdy.../messages \
-H "Authorization: Bearer $SOCAPI_KEY" \
-H "Content-Type: application/json" \
-d '{ "text": "Shipped this morning.", "attachment_url": "https://cdn.example.com/label.pdf" }'Inbound messages arrive in real time over a Telegram webhook that SocialAPI.ai registers when you connect, and reach your endpoint as the dm.received event in the inbox webhook family. A delivery that fails is retried 5 times: immediately, then at roughly 30 seconds, 5 minutes, 30 minutes, and 3 hours. Deduplicate on the message id. Delivery is at-least-once by design, so an idempotent consumer is not optional.
A customer messages your bot, Telegram posts the update to the webhook SocialAPI.ai registered, your app receives dm.received, and the reply goes back out through sendMessage under the same bot token.
Three limits are worth knowing before you commit. A bot cannot open a conversation, so the user has to message it first. There is no history backfill, because the Bot API has no list-messages endpoint, so the inbox starts empty on the day you connect and fills from webhooks alone. A revoked token comes back as 401 platform.telegram.auth, and Telegram throttling surfaces as a plain 429.
The same conversation model covers the rest of the roster. Telegram is one of 9 platforms in SocialAPI.ai, and the direct messaging API guide walks the cross-platform mechanics: Instagram and Messenger 24-hour windows, WhatsApp per-message pricing, LinkedIn partner gating. This post stays on Telegram. For the wider build-or-buy arithmetic, read social media API integration.
To be exact about what ships today: the connector reads and replies to a bot's own direct messages, with text, a photo by URL, or a document by URL. It does not implement Telegram business connections. It carries no comments, mentions, reviews, or publishing either, because Telegram bots have no post-comment model. The free Hobby tier includes 2 brands and 50 interactions a month, enough to test the whole path end to end.
Questions developers ask about the Telegram Business API
- Is there a separate Telegram Business API?
- No. Telegram publishes one developer interface, the Bot API, plus MTProto for people writing Telegram client applications. Bot API 7.2, released 31 March 2024, added business-account support to the Bot API itself: the business_connection update, the business_message, edited_business_message and deleted_business_messages updates, the getBusinessConnection method, and the business_connection_id parameter on the send methods. Anything marketed as a distinct Telegram Business API product is a wrapper around those additions.
- How does a bot get connected to a Telegram Business account?
- The account owner does it, not the developer. You enable Secretary Mode for your bot in @BotFather. The owner then connects the bot from their Telegram Business settings and chooses which chats it can access. Your bot receives a BusinessConnection update when a user establishes, edits, or ends the connection, and business_message updates for the traffic inside the chats the owner granted.
- What is business_connection_id used for?
- It identifies which business connection a message belongs to. Telegram's Bot API reference describes the field on the Message object as the unique identifier of the business connection from which the message was received. You pass the same value back on sendMessage, sendChatAction, and the other send methods so the reply goes out as the account owner rather than as your bot. Without it, the send is an ordinary bot message.
- Can a bot reply to a business chat older than 24 hours?
- Telegram's bot features guide states that depending on the connection settings, a bot may be able to send messages and do other actions on behalf of the account owner in chats that were active in the last 24h. Treat 24 hours as the practical write horizon and drive outbound work off the last inbound timestamp in each chat. No rate limit specific to business messages appears on any of the Telegram pages cited in this post, so plan capacity against the live API rather than a number from a third-party blog.
- Does Telegram Business require Premium?
- Telegram's API documentation states that all Telegram Business features are available for free to Premium subscribers, and that connected bots are also available to non-Premium users. So a user can connect a bot to their account without a Premium subscription. Do not gate your onboarding on a Premium check.
- Does SocialAPI.ai support Telegram business connections?
- Not today. The SocialAPI.ai Telegram connector wraps a plain bot: you supply a static token from @BotFather as metadata.bot_token, and the API reads and replies to the direct messages that bot receives, with text, a photo by URL, or a document by URL. Business connections, comments, mentions, reviews, and publishing are outside the connector. Telegram DMs land in the same /v1/inbox/conversations model as Instagram, Messenger, LinkedIn, and X.
If a plain bot inbox is what you need, connecting one takes a token and a single POST. Sign up free, or read the Telegram connector docs first. If we have a Telegram fact wrong on this page, tell us and it gets corrected.
Every Telegram claim above traces to a Telegram-operated page, each accessed 4 August 2026. Where Telegram does not document something, this post says so instead of substituting a third-party estimate. Telegram Bot API reference · Telegram Bot API changelog (7.2, 9.0, 9.3, 10.2) · Telegram bot features guide (Secretary Bots) · Telegram Business (API documentation) · Connected business bots (MTProto) · Telegram Business announcement, 31 March 2024 · Telegram Bot Developer Terms of Service · SocialAPI.ai Telegram connector docs
