API guide

The Telegram API in 2026.A bot, made admin of your channel.

To post to a Telegram channel from code, you use the Bot API: create a bot with @BotFather, make it an admin of the channel with the right to post, and call sendMessage or sendPhoto with the channel's @username. It's free, with no review. The other API, MTProto, logs in as a person, and Telegram watches accounts that use unofficial clients.

Checked October 6, 2026. Breakreach is our product.
# The bot must be an admin of the channel, with "Post messages"curl -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendPhoto" \  -F chat_id=@northbeamcoffee \  -F photo="https://cdn.northbeam.coffee/launch.jpg" \  -F caption="Morning Light is out tomorrow: honey, orange and cocoa notes. Subscribers get it first." \  -F parse_mode=HTML
POST /bot{token}/sendPhotoSending
Published · now

Northbeam Coffee

channel

Morning Light is out tomorrow: honey, orange and cocoa notes. Subscribers get it first.

The Telegram API at a glanceWhat it takes before the first post.

Price
Free. Paid broadcasts lift the 30-a-second ceiling, at 0.1 Stars per extra message
Access
A bot from @BotFather, added as an admin of the channel with Post messages. No review
Posting
sendMessage, sendPhoto, sendVideo or sendMediaGroup, with chat_id @channelusername
Rate limit
About 1 message a second per chat, 20 a minute in a group, 30 a second across chats
Text
4,096 characters per message, 1,024 per caption
Files
By URL: photos 5 MB, other files 20 MB. Uploaded: photos 10 MB, files 50 MB
Tokens
A bot token doesn't expire; /token in @BotFather replaces it
Scheduling
None in the Bot API

Checked on October 6, 2026, from Telegram's developer documentation and terms.

Our recommendation

To post to Telegram from your product, use Breakreach's API.We built it, so here's the case.

See the request
  • No bot to create or host: add @BreakreachBot as an admin of the channel and connect it once
  • Scheduling the Bot API doesn't have, with retries when Telegram answers 429
  • The same request posts to your other networks, and your users connect their channels on a hosted page

When to use Telegram's API directly. Breakreach sends one photo or one video per message, without albums, documents or formatting, and only reports the member count. For albums, rich messages or a bot that answers people, use the Bot API directly: it's free.

How to get access to the Telegram APIFrom a developer account to your first real post.

  1. 1Create a botIn @BotFather, send /newbot, then pick a name and a username ending in bot. It answers with the token.
  2. 2Make it an admin of the channelWith the Post messages right, can_post_messages in the API.
  3. 3Find the chat idA public channel is its @username. A private one needs its numeric id, which arrives with a channel_post update.
  4. 4Keep the token secretAnyone holding it controls the bot. /token in @BotFather generates a new one.

No registration and no review. The MTProto API, with an api_id and api_hash from my.telegram.org, is for user accounts: Telegram puts accounts that log in through unofficial clients under observation, and bans flooding or spam for good.

How to post with the Telegram APIThe requests in the demo above, one by one.

  1. 1Send the messagesendPhoto with chat_id, the photo (a URL, an upload or a file_id) and a caption. sendMessage for text, sendVideo for a video, sendMediaGroup for an album of 2 to 10.
  2. 2Read the answer{"ok": true, "result": Message} on success. On failure, ok is false, with error_code, description and, on a 429, parameters.retry_after.

Formatting is parse_mode HTML or MarkdownV2; MarkdownV2 needs characters like _ * [ ] ( ) ~ > # + - = | { } . ! escaped. In large channels, a message with a video can be held by the server until the video is re-encoded.

Common Telegram API errorsWhat they mean and how to fix them.

ErrorWhat it meansFix
400 Bad Request: chat not foundA wrong @username, a private channel addressed by @username, or a bot that was never added.Use the exact @username or the numeric id, and add the bot.
403 Forbidden: bot is not a member of the channel chatThe bot isn't in the channel, or was removed.Add it as an admin with Post messages.
429 Too Many Requests: retry after NOver a per-chat, group or broadcast limit.Wait retry_after seconds, and keep to 1 message a second per chat.
400 Bad Request: failed to get HTTP URL contentTelegram couldn't fetch the URL, or the file is over 5 MB (photo) or 20 MB (other).Upload the file instead of a URL.
400 can't parse entitiesUnescaped MarkdownV2 characters.Escape them, or switch to HTML.

Telegram API limitsRate limits, text and media.

  • Rate limitsAvoid more than 1 message a second in a chat, 20 a minute in a group, and about 30 a second across chats. Paid broadcasts go up to 1,000 a second.
  • Text4,096 characters per message, 1,024 per caption, counted after entities are parsed.
  • PhotosUp to 10 MB; width plus height up to 10,000, and a ratio of at most 20.
  • FilesBy URL: 5 MB for photos, 20 MB for other files. Uploaded: 10 MB for photos, 50 MB for other files. A local Bot API server raises uploads to 2,000 MB.
  • Albums2 to 10 photos, videos, documents or audio files; documents and audio only group with their own kind.

Is the Telegram API free?

Yes. Telegram says bots can message their users at no cost, and the MTProto API is free of charge too.

The one paid option is paid broadcasts: up to 1,000 messages a second, at 0.1 Stars for each message over the free 30 a second, for bots holding at least 100,000 Stars with at least 100,000 monthly active users.

Through Breakreach, a Telegram channel counts like any other connected account: the first 2 are free, then $5 a month each up to 20.

Ways to post to Telegram from code

What you set upPricePosts to Telegram
BreakreachAn API key. Accounts connect through Breakreach's reviewed apps, or your users connect theirs on a hosted pageFirst 2 accounts free, then $5 a month per account (less from 21)Yes, Channels
Telegram's own APIA bot from @BotFather, admin of the channelFreeYes
Upload-PostAn API keyFree for 2 profiles and 10 uploads a month; Basic $24 a month for 5 profilesYes
ZernioAn API keyFirst 2 accounts free, then $6 per account up to 10, $3 up to 100, $1 afterYes
AyrshareAn API keyFrom $149 a month for 1 profile, no free planYes
OutstandAn API key$19 a month for 3,000 posts, then per postNo
Checked on October 6, 2026, from Telegram's developer documentation and each company's pricing page. Breakreach is our product.

What the Telegram API can't do

  • Schedule messages
  • Post as a person: that's MTProto, with its risks
  • Send files over 50 MB without a local Bot API server
  • See messages from other bots
  • Post to a channel without admin rights

Post to Telegram with Breakreach's APIOne request, scheduled, with retries.

POST /v1/posts
curl https://api.breakreach.com/v1/posts \  -H "Authorization: Bearer $BREAKREACH_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "content": "Morning Light is out tomorrow: honey, orange and cocoa notes. Subscribers get it first.",    "accountIds": ["6701a2f4c9e84b0012a3b4cf"],    "media": ["https://cdn.northbeam.coffee/launch.jpg"],    "scheduledAt": "2026-10-07T09:00:00"  }'

What it posts on Telegram

  • Text messagesUp to 4,096 characters, sent to your channel.
  • A photo or a videoOne of them, with a caption of up to 1,024 characters. With both, the video goes out.
  • SchedulingscheduledAt in your workspace's timezone, the next free slot, or publishNow.
  • Member countThe channel's member count; views per message aren't returned.

Not yet

  • Albums
  • Documents
  • Bold, italics and links in the text

The full reference, webhooks and the price per connected account are on the developers page, and the OpenAPI spec is at api.breakreach.com/v1/openapi.json.

FAQ

Questions, answered.

Short answers about the Telegram API.

Yes. Telegram says bots message their users at no cost, and MTProto is free of charge. The only paid option is paid broadcasts, for bots that need more than 30 messages a second.

Create the bot with @BotFather, add it to the channel as an admin with Post messages, then call sendMessage or sendPhoto with chat_id set to the channel's @username.

For a public channel, its @username works. For a private one, use the numeric id, which comes with a channel_post update once the bot is an admin.

Avoid more than 1 message a second in a chat, 20 a minute in a group, and about 30 a second overall. Going over returns 429 with a retry_after.

To post to a channel, the Bot API: a bot token and admin rights. MTProto logs in as a person, with an api_id and api_hash, and Telegram watches accounts that use unofficial clients.

Not through the Bot API: sendMessage has no schedule field. Scheduling means your own job, or an API like Breakreach that holds the post until scheduledAt.

The first 2 connected accounts are free; from the third it's $5 a month per account up to 20, $3 up to 100, then $2. You pay per connected account, never per post or per request.

Instagram
TikTok
LinkedIn
YouTube
X
Facebook
Threads

Put your socials on autopilot.Live in two minutes.

Plans from $29 a month. Cancel anytime.