Reference
Telegram limits and restrictions
This page collects the main Telegram limits and restrictions: message and caption length, file sizes, how many channels and groups you can be in, bot and Bot API limits, stories, stars, and more. Use the tables below for quick lookup. Figures may change as Telegram clients and the Bot API evolve.
Typical Telegram limits and restrictions for users and bot developers are gathered here in one place. Where there are two columns, the first reflects limits for a free account, the second — typical values with Telegram Premium or separately noted cases. Exact numbers may change with client updates.
Under some rows, a gray block shows the original error text (as returned by the server): for bots this is usually the
Under some rows, a gray block shows the original error text (as returned by the server): for bots this is usually the
description field in Bot API JSON; for accounts — rpc_error (MTProto) and the English wording from Telegram’s published API error reference. The server substitutes %d or a number like 35. In the app UI the text may be translated.
Accounts
| Limit | Free account | Premium / note |
|---|---|---|
| Username (@name)Original (MTProto, types)400 USERNAME_INVALID — invalid format; 400 USERNAME_OCCUPIED — name already taken (client wording: see Telegram’s API error reference) | 5 to 32 characters | from 4 characters for NFT usernames |
| Bio | up to 70 characters | up to 140 characters |
| First name lengthOriginal (MTProto)400 FIRSTNAME_INVALID: The first name is invalid | 1 to 64 characters | |
| Last name lengthOriginal (MTProto)400 LASTNAME_INVALID: The last name is invalid | 0 to 64 characters | |
| Account self-destruct after inactivity | 1, 3, 6, 12, 18, 24 months (default 18) | |
| Spam ban | 1 day to permanent | 1 second to permanent |
| Channels and supergroups (total, including ones you created)Original (MTProto)400 CHANNELS_TOO_MUCH — in typical clients/wrappers, wording like “The user has joined too many channels/supergroups” | maximum 500 | maximum 1,000 |
| Saved GIFs | up to 200 | up to 400 |
| Video avatar duration | 1 to 10 seconds | |
| Creating groups and channels | up to 50 per day | |
| Accounts in official clients | up to 3 | up to 4–6 (depends on app) |
| Visible messages (private chats, bots, basic groups) | unlimited before 2018 — up to 1 million | |
| Sticker packs | up to 200 | |
| Emoji packs | up to 200 | |
| Min. username ownership for auction | 14 days | |
| Contact note | up to 128 characters | |
| Passkeys per account | up to 5 keys | |
| Session duration | 1 week, 1, 3, 6, or 12 months | |
| Notification sound (custom file) | 1 to 5 seconds | |
| Saved ringtones | up to 100 | |
| Empty-chat card title | up to 32 characters | |
| Empty-chat card text | up to 70 characters | |
| Business links with preset message text | up to 100 links | |
Chats and groups
| Limit | Free account | Premium / note |
|---|---|---|
| Group membersOriginal (MTProto)400 USERS_TOO_MUCH: The maximum number of users has been exceeded (often when creating a chat or bulk adding) | up to 200,000; broadcast groups — no limit | |
| Administrators | up to 50 | |
| Bots in a groupOriginal (MTProto)400 BOTS_TOO_MUCH — when the per-chat bot limit is exceeded | up to 20 | |
| Pinned chats in the main list | up to 5 chats/channels + 5 secret | up to 10 chats/channels |
| Group name and description | up to 255 characters | |
| Editing messages | 48 h after send; unlimited in Saved Messages and for admins with pin permission | |
| Self-destructing photo/video | 1 to 60 seconds | |
| Recent admins log | last 2 days | |
| Mentions in one message | up to 50; notifications only for the first 5 | |
| Visible messages in a group | last 1,000,000 | |
| Pinned messages | no cap on count | |
| Statistics (access) | from 500 members | |
| @username hold after change | about 15–30 minutes for the former owner | |
| Group stickers | from 100 members in the group | |
| Admin/member tag length | up to 16 characters | |
| Supergroup → broadcast group | at 199,000+ members | |
| Read receipts, availability window | up to 7 days after send | |
| Read receipts, list | in chats up to 100 people; only the sender sees the list | |
| Visible member list in large chats | up to 10,000 users | |
| Boosts for level (boost) | use a channel boost calculator for exact counts | |
| “Hide members” | at least 100 members in the chat | |
| Manual “Selected only” reactions | up to 100 reactions | |
| Active antispam filter | at least 200 members | |
| Slow mode (interval between member messages)Original (MTProto)420 SLOWMODE_WAIT_%d — Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat. | 30 seconds to 1 hour (set by admin) | |
Forum
| Limit | Value | |
|---|---|---|
| Forum topics | up to 1,000,000 | |
| Topic title length | up to 128 characters | |
| Pinned topics | up to 5 | |
Voice and video chats
| Limit | Free account | Premium / note |
|---|---|---|
| Voice chat listeners | no limit | |
| Video broadcast (camera, screen) | up to 1,000 broadcasters at once | |
| Video broadcast viewers | officially unlimited; in practice unstable around ~2,000 viewers | |
| Voice chat title | up to 40 characters | |
| Scheduled chats | up to 7 days ahead | |
| Comment in voice/video chat | up to 128 characters | |
| Unpinned comment lifetime | 10 seconds | |
| Group calls by link (E2E) | up to 200 participants | |
| Paid message to stream | up to 10,000 stars | |
| Pinned stream message (by stars) | from 10★ 1 min to 10,000★ 1 hour (full table on tginfo) | |
| Stream comment length | depends on payment: free 30 chars — up to 400 at 10,000★ | |
| Emojis in stream comment | free — none; up to 20 at 10,000★ | |
Channels
| Limit | Free account | Premium / note |
|---|---|---|
| Public @usernames per account (+groups)Original (MTProto)400 CHANNELS_ADMIN_PUBLIC_TOO_MUCH — too many public channels/groups where you are admin; client wording in English | up to 10 | up to 20 |
| @username length | 5 to 32 characters | |
| Channel name and description | up to 255 characters | |
| Channel admins (incl. bots) | up to 50 | |
| Editing posts | no limit with a linked group, posts older than 2 weeks may not refresh in the chat | |
| Subscribers | no limit | |
| Visible members for admin | 200 people | |
| Deleting a channel (>1K subscribers) | only from “old” sessions and with a long-set cloud password | |
| Viewing a private channel without joining (>200 subscribers) | up to 5 minutes per day | |
| Inviting users | up to 200 | |
| Channel statistics | from 50 subscribers | |
| Story statistics | from 1 subscriber | |
| @username hold after change | about 15–30 minutes | |
| “Similar channels” block | usually from ~300 subscribers; depends on content | |
Messages
| Limit | Free account | Premium / note |
|---|---|---|
| Single message lengthOriginal (Bot API)Bad Request: message is too long | up to 4,096 characters | |
| Media captionOriginal (Bot API)Bad Request: message caption is too long | up to 1,024 characters | up to 4,096 characters |
| Outgoing file size | up to 2 GB | up to 4 GB |
| File name length | up to 60 characters (extra is truncated) | |
| Video message duration | up to 1 minute | |
| Video message file size | up to 12 MB | |
| Video message diameter | 384 px | |
| Photos and videos in an album | up to 10 | |
| Scheduled messages (per chat) | up to 100 | |
| Send scheduling | up to 365 days | |
| Custom emoji in a message | Saved Messages only; >100 replaced with standard | up to 100 per message |
| Message links | up to 100 links | |
| Unique reaction types per message | up to 11 | |
| Voice/video transcription | 2 free per week | no limit |
| Transcription duration | up to 5 minutes | no limit |
| Quoted text length | up to 1,024 characters | |
| Quick replies (templates) | up to 100 | |
| Messages in one quick reply | up to 10 | |
| Poll question | 1 to 255 characters (references also mention up to 200 — depends on type/client) | |
| Poll optionsOriginal (Bot API, typical)Bad Request: poll must have at least 2 option(s) / poll can't have more than 12 options (wording may vary slightly by server version) | 2 to 12 | |
| Poll option lengthOriginal (Bot API, typical)Bad Request: poll options must be non-empty and option length errors | 1 to 100 characters | |
Folders
| Limit | Free account | Premium |
|---|---|---|
| Folder name length | up to 12 characters | |
| Number of folders | up to 10 | up to 30 |
| Chats per folder (excluding default bundles) | up to 100 | up to 200 |
| Pinned chats in a folder | up to 100 | up to 200 |
| Shared folders (count) | up to 2 | up to 20 |
| Items in a shared folder | up to 100 | up to 200 |
| Links to one public folder | up to 3 | up to 10 |
Bots
| Limit | Free account | Premium / note |
|---|---|---|
| Bots via @BotFather | up to 20 | up to 40 |
| Bot @username length | 5 to 32 characters | |
| /setabouttext | up to 120 characters | |
| Bot description | up to 512 characters | |
| Outgoing files without local Bot APIOriginal (Bot API, typical)Bad Request: request entity too large or Bad Request: file is too big (depends on method and upload stage) | up to 50 MB | |
| Upload with local Bot API | up to 2,000 MiB | |
Incoming without local Bot APIOriginal (Bot API)Bad Request: file is too big (on getFile / download if file exceeds cloud Bot API limit) | up to 20 MB | |
| Upload with local Bot API | up to 2,000 MB | |
| Buttons | up to 100 | |
| Message markup (inline, etc.)Original (Bot API, typical)Bad Request: BUTTON_DATA_INVALID / reply markup is too long (if button data or markup exceeds limits) | up to 10 KB | |
| Formatted entitiesOriginal (Bot API, typical)Bad Request: entity too long or parse errors like Can't parse entities: ... (exact string depends on method and markup) | up to 100 entities | |
| Send rate per chatOriginal (Bot API)429 Too Many Requests, body: "description": "Too Many Requests: retry after N" and "parameters": { "retry_after": N } | ~1 msg/sec except short bursts | |
| In group chatsOriginal (Bot API) often the same 429 / Too Many Requests: retry after N | up to 20 messages/min per chat | |
| Bulk send to inactive chatsOriginal (Bot API)429 Too Many Requests with the same Too Many Requests: retry after N | up to 30 messages/sec, one limit across all chats | |
| API requestsOriginal (Bot API) under global overload — again 429 / Too Many Requests: retry after N | ~30 per second | |
| Commands in BotFather | 0 to 100 | |
| Command length | 1 to 32 characters | |
| Command description | up to 256 characters; via API — non-empty | |
| /start metadata (deep linking) | up to 64 bytes | |
| Bot warning text | up to 200 characters | |
| Inline results | up to 50 per page | |
| Search query after @bot | bot receives up to 256 characters | |
| Transferring bots between accounts | up to 5 per day | |
| Custom verification icon text | 1 to 70 characters | |
Also: official Bot API
Below — additional limits from the official Bot API specification (for developers; may update more often than the table above).
| Parameter | Value | Comment |
|---|---|---|
| Storing unprocessed updates | on the server no longer than 24 hours (getUpdates or webhook) | |
getUpdates, limit parameter | 1 to 100 updates per request (default 100) | |
Webhook, max_connections | concurrent HTTPS connections for delivering updates: 1–100 (default 40) | |
| Webhook ports | 443, 80, 88, 8443 | |
| Paid broadcast (Paid Broadcast, BotFather) | up to 1000 messages per second when enabled, 0.1 Telegram Star per message (allow_paid_broadcast on send methods) | |
| Forward / copy in bulk | one request — list of 1–100 message IDs (strictly ascending) | |
Send photo (sendPhoto)Original (MTProto / Bot API)400 PHOTO_INVALID_DIMENSIONS: The photo dimensions are invalid (and related PHOTO_* when limits are violated) | file up to 10 MB; width + height sum at most 10,000 px; aspect ratio at most 20:1 | |
| Live location “nearby” alert radius | in Bot API when set: 1 to 100,000 meters | |
Plain text (sendMessage, editMessageText, sendMessageDraft)Original (Bot API)Bad Request: message is too long; Bad Request: message text is empty (if text shorter than 1 char); Bad Request: Can't parse entities: … | 1–4,096 characters after entities parsing (docs: “after entities parsing” for all such fields) | |
Media caption (sendPhoto, sendVideo, sendDocument, sendAudio, sendAnimation, sendVoice, sendPaidMedia, InputMedia*, editMessageCaption, caption in copyMessage)Original (Bot API)Bad Request: message caption is too long; same Can't parse entities as for text if parse_mode is wrong | 0–1,024 characters after entities parsing | |
Quoted text in reply (reply_parameters.quote)Original (Bot API)Bad Request: … (send fails if quote is not an exact substring of the target message) | 0–1,024 characters after entities parsing; must match the original message exactly (including entities) | |
Callback answer text (answerCallbackQuery) | 0–200 characters (notification above chat) | |
How long a message can be edited (editMessageText, editMessageCaption, editMessageMedia, editMessageReplyMarkup) | Per Bot API: business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent. The same “Updating messages” section also states you may edit only messages that have no reply_markup or use an inline keyboard (not custom reply keyboards). | |
Send audio (sendAudio)Original (Bot API, typical)Bad Request: wrong file identifier/HTTP URL; Bad Request: failed to get HTTP URL content; size / MIME errors | .MP3 or .M4A; up to 50 MB (limit may change; see docs) | |
Send document (sendDocument)Original (Bot API, typical) same as audio for URL/file errors; by URL — currently only .pdf and .zip | any type up to 50 MB | |
Send video (sendVideo)Original (Bot API, typical) wrong file / HTTP / too large | MPEG4 in clients; other formats usually as document; up to 50 MB | |
Send animation (sendAnimation)Original (Bot API, typical) same file/URL errors | GIF or H.264/MPEG-4 AVC without sound; up to 50 MB | |
Send voice (sendVoice)Original (Bot API, typical) wrong type / size | .OGG with OPUS, or .MP3 / .M4A; up to 50 MB. Per “Sending files”: for sendVoice, OGG must be at most 1 MB to show as voice; larger OGG 1–20 MB may be sent as an ordinary file. | |
Send video note (sendVideoNote)Original (Bot API, typical) unsupported URL / invalid file | rounded square MPEG4, up to 1 minute; upload only — sending by HTTP URL is not supported | |
Send media group (sendMediaGroup)Original (Bot API, typical)Bad Request: group send failed (if one item fails or mix breaks album rules) | 2–10 items per request; photos/videos/documents/audios — documents and audios only with messages of the same type in one album | |
Send sticker (sendSticker)Original (Bot API, typical)Bad Request: STICKERSET_INVALID / wrong file / sticker type | static .WEBP, animated .TGS, video .WEBM; video and animated stickers cannot be sent via HTTP URL (.WEBP from URL allowed per docs) | |
Send poll (sendPoll)Original (Bot API, typical)poll must have at least 2 option(s); poll can't have more than 12 options; invalid question/option length; quiz without correct options | question 1–300 chars; 2–12 options; each option 1–100 chars; description 0–1,024; quiz explanation 0–200 chars with at most 2 line feeds; open_period 5–2,628,000 s or close_date between 5 and 2,628,000 s ahead (mutually exclusive) | |
Send contact (sendContact) | optional vcard: 0–2,048 bytes | |
Send paid media (sendPaidMedia) | star_count 1–25,000; up to 10 media items; optional payload 0–128 bytes | |
Thumbnails on upload (e.g. sendDocument, sendVideo)Original (Bot API, typical) invalid thumbnail size/format | JPEG, under 200 KB; width and height at most 320 px (multipart upload; ignored if server generates thumbnail) | |
Custom emoji lookup (getCustomEmojiStickers) | at most 200 custom_emoji_id values per request | |
Custom / Premium emoji in the bot’s UI (custom_emoji in entities, HTML tg-emoji, MarkdownV2; icon_custom_emoji_id on buttons) | If the bot owner has an active Telegram Premium subscription, the bot may use Premium (custom) emoji in the text and captions of messages it sends directly to private chats, groups, and supergroups. Under the same rule you can show Premium emoji on reply and inline keyboard buttons using icon_custom_emoji_id on KeyboardButton and InlineKeyboardButton. (The Bot API also describes using custom emoji for bots that purchased additional usernames on Fragment.) | |
Files by HTTP URL (“Sending files”)Original (Bot API, typical)Bad Request: failed to get HTTP URL content; wrong type of the web page content (MIME must match method, e.g. audio/mpeg for sendAudio) | photos max 10 MB; other types max 50 MB when Telegram fetches the URL | |
| Chat / rights / blocked user (any send method)Original (Bot API, typical)Forbidden: bot was blocked by the user; Forbidden: bot can't initiate conversation with a user; Forbidden: CHAT_WRITE_FORBIDDEN; Forbidden: not enough rights; Bad Request: chat not found | no numeric limit — depends on chat type, admin rights, block, and whether the user started the bot | |
Wrong file_id or expired file (resend by id)Original (Bot API, typical)Bad Request: wrong remote file identifier specified: can't access file (wording may vary) | use a fresh file_id from a recent message; bot must be allowed to access that file | |
Stories
| Limit | Free account | Premium |
|---|---|---|
| Non-Premium stories ever on the account | up to 3 (including deleted) | not applied with active Premium |
| Story lifetime | 24 hours | 6 / 12 / 24 / 48 hours |
| Story duration | up to 60 seconds | |
| Viewer list visibility | 24 hours | no limit |
| Daily limit | 1 story | up to 100 |
| Weekly limit | up to 3 | up to 700 |
| Monthly limit | up to 10 | up to 3,000 |
| Text in a story | up to 200 characters | up to 2,048 |
| Incognito mode (hide view) | unavailable | once per 3 hours, 30 minutes |
| Story albums on profile | 100 | |
| Stories in an album | up to 100 | |
| Interactive links | unavailable | up to 3 stickers |
| Sticker reactions | 1 reaction | up to 5 |
| Reset of daily/weekly/monthly story quotas | quotas return to max 24 hours after publishing the first story in the cycle (Stories) | |
Free daily story limits and regional differences may vary by country and product rules.
Search
| Limit | Free account | Premium |
|---|---|---|
| Min. global search length | from 4 characters | |
| Username search (bots+users) | up to 200 per day | |
| Hashtag results | ~5,000 latest messages | |
| Min. subscribers for public channel search | from 100 | |
| Recommended “Similar channels” | up to 10 | up to 100 |
Stickers
| Limit | Free account | Premium |
|---|---|---|
| Added sticker packs | up to 200 | |
| Favorite stickers | up to 5 | up to 10 |
| Stickers in a set | up to 120 static, up to 50 animated | |
| Sticker size | side 512 px, other ≤512; animated strictly 512×512 | |
| Animation duration | up to 3 seconds | |
| File size | up to 512 KB static, up to 64 KB animated | |
| FPS | 30 or 60 | |
| Pack name length | up to 64 characters | |
| /addstickers address | up to 62 characters | |
| Emoji in a set | up to 200 | |
Telegraph
| Limit | Value | |
|---|---|---|
| Accounts in @telegraph | up to 5 | |
| Article text size (with images) | up to 64 KiB | |
| Media in articles | external links only; upload disabled | |
Miscellaneous
| Limit | Value | |
|---|---|---|
| Video avatar | 800×800 px, up to 2 MB | |
| Photo sent with compression (SD) | long side up to 1280 px | |
| HD photo with compression | long side up to 2560 px | |
| Parallel uploads for files <20 MB | ~5 files | |
| Parallel uploads for files >20 MB | ~2 files | |
| Items in a checklist | 1 to 30 | |
| Checklist title | 1 to 255 characters | |
| Checklist item caption | 1 to 100 characters | |
| Voice messages, max. duration | no single hard limit in docs; very long recordings hit file size and client limits (some Telegram Web users report cutoffs around 20 minutes — empirical, not official) | |
| Frequent requests to servers (account, not bot)Original (MTProto)420 FLOOD_WAIT_%d — Please wait %d seconds before repeating the action. For some actions with Premium: 420 FLOOD_PREMIUM_WAIT_%d — A wait of %d seconds is required; the user may also purchase a Telegram Premium subscription to remove this limitation. (wording per Telegram’s published API error reference) | when spamming actions, responses like FLOOD_WAIT / temporary lock for the given seconds (antispam; exact thresholds are not published) | |
| Changing @username in a row | no fixed “N per day”; too frequent changes may hit a temporary rate limit (community guidance — not more than ~2 per hour; hold on old name — see above, 15–30 min) | |
| Channel giveaway: winners in the result list | up to 100 winners in the list (Giveaway type in Bot API) | |
Gifts and stars
| Limit | Value | |
|---|---|---|
| Min. gift upgrade price | 25 stars | |
| Pinned gifts | up to 6 | |
| Wait to exchange a gift for stars | 7 days | |
| After which exchange is impossible | 21 days | |
| Min. stars withdrawal | 1,000 stars | |
| Gift collections on profile | up to 10 | |
| Gifts in a collection | up to 500 | |
| Exchange received gift for stars | within 7 days | |
| Withdraw stars from chat/bot balance | 1,000 to 25,000,000 stars | |
| Paid media in a post | 1 to 25,000 stars | |
| Transfer via paid reactions | 1 to 10,000 stars | |
| Message with a gift | up to 128 characters | |
| Partner revenue share | 0.1% to 80% | |
| Personal paid message | 1 to 10,000 stars | |
| Reselling collectible gifts for stars | 125 to 100,000 stars | |
| Resale in TON | 7 to 100,000 TON | |
| Suggested message to channel | free or 5 to 100,000 stars | |
| Guaranteed no-delete window for paid post | 24 hours | |
| Scheduling paid posts | 5 minutes to 31 days | |
| Paid post in TON | 0.01 to 10,000 TON | |
Boosts and levels
| Limit | Value | |
|---|---|---|
| Boosts when buying Premium for yourself | 4 boosts | |
| Premium received as a gift | 1 boost | |
| Premium won in a giveaway | 0 boosts | |
| Gifting Premium to someone else | +3 boosts to what you have | |
| Moving a boost to another channel | 24-hour wait | |
| Revoking a boost | cannot remove — only move | |
| Max. boosts on account | up to ~103 (not fully confirmed) | |
| Channels in a giveaway | up to 10 | |
| Countries in a giveaway | up to 10 | |
| Giveaway duration | up to 31 days | |
| Channel levels | 1 to 100 | |
| Channel color | from level 5 | |
| Message accent and emoji | from level 4 | |
| Profile color and channel emoji | from level 7 | |
| Channel emoji status | from level 8 | |
| Channel chat theme | from level 9 | |
| Channel chat background | from level 10 | |
| Transcription without Premium for members | from channel level 6 | |
| Group emoji | from level 4 | |
| Group profile color | from level 5 | |
| Group emoji status | from level 8 | |
| Group chat theme | from level 9 | |
| Group chat background | from level 10 | |
| Disabling ads in channel | from level 50 | |
| Auto-translate for users without Premium | from channel level 3 | |