Format Telegram messages with bold, italic, spoilers, quotes, monospace, code blocks and hidden links on every device, plus formatting rules for bots.
To format text on Telegram, select the words in the message box and pick a style from the menu that appears: bold, italic, underline, strikethrough, monospace, spoiler, quote or link. Many Telegram apps also accept quick symbols as you type, such as two asterisks on each side of a word for bold, and Telegram Desktop has keyboard shortcuts. Bots format messages by sending HTML or MarkdownV2 with their messages.
This guide covers every style, how to apply it on Android, iPhone, Desktop and Web, how links, mentions and hashtags work, how to use formatting well in channel posts, and the rules bot builders need. Because this page itself cannot show raw formatting symbols, they are described in words.
Telegram supports a fixed set of styles. Every official app can display them, even if the ways to apply them differ.
On top of these, Telegram turns certain text into active elements automatically: @mentions, #hashtags, bot commands that start with a slash, web addresses, email addresses and phone numbers.
The menu is the most reliable method because it does not depend on remembering symbols.
Select text in the message box. A small formatting bar usually appears above the selection with the main styles. If it does not, check that you are using an up-to-date web version.
You can combine styles: select text that is already bold and make it italic as well.
Many Telegram apps convert certain symbols into formatting when you send the message. This is quicker once you know them. Here they are, described in words:
Things to know about the symbol method:
In Telegram Desktop, shortcuts are the fastest way to format. Select text and press the shortcut. On Windows and Linux use Ctrl; on macOS use Cmd in place of Ctrl where shown. The usual set is:
Shortcuts can change between versions or conflict with other software. The right-click Formatting menu always lists the current ones, so check there if a shortcut does nothing.
A link with descriptive text looks cleaner and tells readers where they are going.
If you paste a web address on its own, Telegram turns it into a link automatically and may show a preview card below the message. You can usually remove the preview before sending by tapping the close button on it, or choose where the preview appears in newer versions.
Links to public channels, groups, bots and posts work the same way. A link to a specific post in a public channel opens that post directly in Telegram. This is a good way to point readers to an older post.
Hidden links are useful and are also how scammers disguise destinations. As a sender, make the link text honest about where it goes. As a reader, long-press or hover over a link to see the real address before opening it, especially if it promises prizes, crypto or account warnings. See how to spot Telegram scams.
Use mentions with care in large groups. Mentioning many people at once is often treated as spam.
Type the hash sign followed by a word, without spaces. Tapping a hashtag searches for it in the chat, and in some cases across your chats or public posts. Channels use hashtags to tag recurring series, such as a weekly roundup, so readers can tap to see every post in the series.
A word starting with a slash, such as a bot's start command, becomes tappable in chats with bots. Tapping it sends the command.
Spoilers hide text until the reader chooses to see it. Readers tap to reveal it.
Good uses:
When sending a photo or video, many apps let you hide it behind a spoiler effect as well. In the media preview, look for a spoiler option in the menu. The media appears blurred until tapped. This is useful in groups where one person's surprise is another's ruined ending.
A spoiler is a display effect, not protection. Anyone can tap it, notifications may show the hidden text in a preview, and forwarded copies keep the spoiler but not secrecy. Do not use spoilers to hide private information.
Select text in the message box and choose Quote from the formatting menu. The text appears as a quoted block in the sent message. Use it to quote a source, a customer review or a previous announcement.
Newer versions may also allow a long quote to be collapsed, so readers see a few lines and tap to expand. This keeps long quotes from dominating a post.
When replying, many versions let you select part of the original message and reply to just that part. The reply then shows the selected text as a quote. This makes conversations in busy groups much clearer, because readers can see exactly which sentence you are answering.
In Telegram's apps, tapping monospace text usually copies it. That makes monospace ideal for anything readers need to copy exactly: a promo code, a command, a file name, a crypto address. Readers tap once instead of fiddling with a selection.
A code block keeps spaces and line breaks exactly as written. Besides code, it is handy for simple aligned lists, timetables or ASCII diagrams, because fixed-width letters line up. Keep blocks narrow, as long lines scroll sideways on phones.
Some versions highlight code blocks by language when you name the language after the opening backticks. If highlighting does not appear, the code is still shown correctly in fixed width.
Formatting is where a channel's posts become easy or hard to read. A few principles:
Example only. Before: a single block of text announcing an event, with the date, address and registration link all inside one long paragraph and the link pasted as a raw address.
After:
The information is the same; the second version can be scanned in seconds.
For more ideas, see Telegram channel post ideas and pinned message examples.
You can edit a sent post or message to fix formatting. Select the text in the edit box and apply or remove styles, then save. Editing a channel post does not send a new notification to subscribers.
Photos, videos and files can have formatted captions too. Captions have a shorter maximum length than messages, so put long text in a separate message if needed. Our guide to Telegram character limits explains how lengths work.
Telegram has no bullet-list or heading style, so structure comes from line breaks and simple characters.
A blank line between paragraphs makes posts much easier to read on small screens.
Start each line with a simple marker: a dash, a number followed by a full stop, or one consistent emoji. Keep one item per line, and keep items short. A list of five short lines is easier to scan than the same information in one sentence full of commas.
For step-by-step instructions, numbers help readers keep their place and refer back ("I'm stuck at step 3").
In long posts, a bold line on its own works as a section heading. Some channels add one emoji at the start of each section heading so readers can find sections by shape as they scroll. Pick one style and use it every time; consistency is what makes it scannable.
Telegram Premium lets users add custom emoji, from emoji packs, inside message text. They behave like characters in the text, and recipients without Premium can see them in messages. Channels may also be able to use custom emoji in some places once they meet certain boost levels; check your channel's settings, as these options change.
Custom emoji are decoration, not formatting. Use them the same way as regular emoji: as markers and accents, not as a replacement for words. If you are weighing Premium as a channel owner, read is Telegram Premium worth it for channel owners.
Some of your readers use screen readers, enlarged text or translation. Formatting choices affect them more than most.
These habits also help everyone else: clear link text, fewer emoji and plain words make posts faster to read for all.
Groups are conversations, not channels, and heavy formatting reads differently there.
Bots cannot use the app's menu. They send formatting with each message, in one of three ways. The Bot API documentation is the authority on the details; this section explains the concepts and the traps.
Set the parse mode to HTML and wrap text in a small set of supported tags:
Only these tags are supported. Any other tag causes an error. The characters for less-than, greater-than and ampersand must be written as HTML entities when they appear as plain text, or the message fails to parse.
HTML is often the easiest choice for bots, because only those three characters need escaping.
MarkdownV2 uses symbols similar to the ones people type in the apps, with stricter rules. The trap is escaping. Many punctuation characters have a special meaning and must be preceded by a backslash when you want them as plain text. The list includes the underscore, asterisk, square brackets, round brackets, tilde, backtick, greater-than sign, hash, plus, minus, equals, vertical bar, curly braces, full stop and exclamation mark.
Forgetting to escape a full stop or a hyphen in user-supplied text is the most common reason a bot's message fails with a "can't parse entities" error. If your bot inserts text it did not write, such as a user's name, escape that text before inserting it, or use HTML instead.
An older Markdown mode still exists for compatibility. It supports fewer styles and has its own quirks. New bots should use HTML or MarkdownV2.
Instead of a parse mode, a bot can send plain text plus a list of entities, each with a type, an offset and a length. This avoids escaping entirely, because nothing in the text is interpreted. The catch is that offsets and lengths are counted in UTF-16 code units, which means some emoji and characters count as two. Calculate offsets with a function that counts UTF-16 units, or your formatting will drift.
Entities are also what you receive when your bot reads a formatted message, so understanding them helps when processing users' messages.
Example only. A community bot greets new members with "Welcome, NAME!" sent in MarkdownV2, with NAME replaced by each member's display name. It works for weeks, then fails for a member called "J. Smith - Design". The full stop and the hyphen in the name were not escaped, so Telegram could not parse the message, and the greeting was never sent. The exclamation mark in the template had been escaped by hand, which is why the problem only appeared with certain names.
Two fixes work:
The developer chooses HTML, adds a test with awkward names, and the greeting works for everyone.
If you are new to bots, start with how to create a Telegram bot with BotFather.
Your app version may not convert symbols, the symbols may not be touching the text, or there may be a space inside them. Use the formatting menu instead.
Text copied from another app often loses its formatting when pasted into Telegram, or brings formatting Telegram does not support. Paste as plain text and re-apply styles with the menu. Text copied from one Telegram message to another usually keeps its formatting.
They may be using a very old app or an unofficial client that does not support every style. Notification previews also show plain text. In the chat itself, an up-to-date official app shows all styles.
Check that the address is complete, including the beginning, and that there are no spaces in it. Links to private chats only work for people who are members.
Select the text and use "remove formatting" or the plain option in the formatting menu, or the clear-formatting shortcut on Desktop. In the worst case, delete the text and type it again.
Select the text and choose Bold from the formatting menu, or type two asterisks before and after the text in apps that support it, or press Ctrl and B on Telegram Desktop.
Select the text and choose Spoiler from the formatting menu, or type two vertical bars before and after it. For photos and videos, use the spoiler option in the media preview.
No. Telegram does not offer custom fonts or colours in messages. Monospace is the only alternative font, and colour comes from the app's theme, not the message.
All official apps display the same styles, but each draws them in its own design. Very old or unofficial apps may not support newer styles such as quotes or spoilers.
Descriptions and bios are plain text with limited automatic links, such as usernames and web addresses. Rich formatting is for messages and posts. Our guide on writing a channel description covers what works there.
HTML is usually easiest, because only three characters need escaping. MarkdownV2 is fine if you escape carefully. Entities avoid escaping but need correct UTF-16 offsets.
Select text and use the formatting menu on any device to apply bold, italic, underline, strikethrough, monospace, spoiler, quote or link. Speed it up with typed symbols in apps that support them and keyboard shortcuts in Telegram Desktop. Use monospace for anything readers should copy, spoilers for reveals, and descriptive link text that honestly names the destination. In channel posts, keep emphasis rare and paragraphs short. Bots should pick HTML, MarkdownV2 or entities, escape user text and count entity offsets in UTF-16 units.
Ownership confirmed through our claim process — not an endorsement of their content.
Founder of Telegram.
The official Telegram on Telegram. Much recursion. Very Telegram. Wow.
Telegram Premium – a subscription that unlocks dozens of exclusive features.
Binance Official English Group Binance Official Chinese Group Binance English Announcements Binance Chinese Announcements
is a modern crypto news and research platform covering the latest developments across digital assets, markets, regulation, and blockchain technology.
This channel focuses exclusively on what shapes global finance. Macroeconomics, markets, liquidity, central banks.
BlackBlock Markets exists to observe how capital moves before it becomes obvious.
Bitcoin is a global macro asset. This channel is dedicated to Bitcoin only.
Crypto Invest Next 100x. Admin