Telegram Text Formatting: Bold, Italic, Markdown and HTML
Telegram text formatting in the app and in bots: bold, italic, underline, strikethrough, spoiler, quote and code, with MarkdownV2 and HTML syntax.
Published October 20, 2026
Schedule your Telegram posts. Write once, pick the time, and SociaHive posts to Telegram and your other accounts from one calendar. Free plan: 30 posts a month, no card.
Pick one to see the plan
Telegram text formatting works two ways. In the app, select the words you typed and pick a style: bold, italic, underline, strikethrough, monospace, spoiler, quote or link. In a bot, send the text with MarkdownV2 or HTML and Telegram renders it. Both produce the same styles; only the way you ask for them differs.
This guide covers each style in the app, keyboard shortcuts on desktop, the Markdown and HTML syntax bots use, and how styled Unicode letters differ from real formatting.
How do I format text in Telegram?
On a phone, type your message, then select the part you want to style. A menu appears with the formatting options. Depending on your phone, they sit in that menu directly or behind a "Format" or three-dot entry. Pick a style and send.
Telegram has worked this way for years. When it added spoilers in December 2021, it described the steps as: "select any part of your text when typing and choose the new 'Spoiler' formatting" (Telegram blog). Quote formatting came in October 2023, along with a context menu that makes "formatting options easier to access" (Telegram blog).
The styles you can apply in the app:
| Style | What it does |
|---|---|
| Bold | Thicker letters for the words that matter |
| Italic | Slanted letters for emphasis or titles |
| Underline | A line under the text |
| Strikethrough | A line through the text, for crossed-out words |
| Monospace | Fixed-width letters, for codes, commands or numbers |
| Spoiler | Hides the text until someone taps it |
| Quote | Sets the text apart as a block quote |
| Link | Turns a word into a link to a web address |
Telegram formatting shortcuts on desktop
Telegram Desktop has keyboard shortcuts for every style. Select the text first, then press the keys. On a Mac, use Cmd where the table says Ctrl.
| Style | Shortcut |
|---|---|
| Bold | Ctrl+B |
| Italic | Ctrl+I |
| Underline | Ctrl+U |
| Strikethrough | Ctrl+Shift+X |
| Monospace | Ctrl+Shift+M |
| Spoiler | Ctrl+Shift+P |
| Quote | Ctrl+Shift+. |
| Link | Ctrl+K |
| Clear formatting | Ctrl+Shift+N |
These come from the source code of Telegram Desktop's text field (desktop-app/lib_ui on GitHub), read on October 20, 2026. You can also right-click selected text and choose a style from the Formatting menu.
How to cross out words on Telegram
Select the words and choose Strikethrough from the formatting menu, or press Ctrl+Shift+X on desktop. In a bot message, wrap the text in single tildes with MarkdownV2 (~like this~) or use the <s> tag with HTML.
The rich text editor (Telegram Premium)
In July 2026 Telegram added a rich text editor for longer messages. It handles blocks of formatted text, photos and videos in the middle of a message, and up to 32,768 characters in one message. Telegram says the editor "is currently available to Telegram Premium users only" (Telegram blog).
To open it, tap the expand icon that appears after you type more than three lines in the message box. The August 2026 update added documents, files and music inside the text (Telegram blog).
Without Premium, a normal message is limited to 4,096 characters.
Telegram markdown for bots (MarkdownV2)
A bot formats text by setting parse_mode to MarkdownV2 and writing the markers below. This is the syntax from the official Bot API formatting options.
| Style | MarkdownV2 |
|---|---|
| Bold | *bold* |
| Italic | _italic_ |
| Underline | __underline__ |
| Strikethrough | ~strikethrough~ |
| Spoiler | ||spoiler|| |
| Inline code | text between single backticks |
| Code block | three backticks on the lines before and after |
| Link | [text](https://example.com) |
| Quote | > at the start of each line |
Two rules trip people up:
- Escape reserved characters. Outside of code, these characters must have a backslash in front of them:
_ * [ ] ( ) ~ > # + - = | { } . !and the backtick. An unescaped period or hyphen makes Telegram reject the whole message. - Underline and italic can clash. Telegram reads
__as underline from left to right, so to combine them you separate the markers with an empty bold entity, as the Bot API documentation shows.
The older Markdown mode (without V2) still works, but Telegram calls it "a legacy mode, retained for backward compatibility". It supports bold, italic, links and code only.
Telegram HTML formatting for bots
With parse_mode set to HTML, a bot uses tags. HTML is easier to escape: only <, > and & need replacing when they are not part of a tag.
| Style | HTML |
|---|---|
| Bold | <b>bold</b> or <strong> |
| Italic | <i>italic</i> or <em> |
| Underline | <u>underline</u> or <ins> |
| Strikethrough | <s>text</s>, <strike> or <del> |
| Spoiler | <tg-spoiler>spoiler</tg-spoiler> |
| Inline code | <code>code</code> |
| Code block | <pre>code</pre> |
| Link | <a href="https://example.com">text</a> |
| Quote | <blockquote>text</blockquote> |
| Expandable quote | <blockquote expandable>text</blockquote> |
Telegram supports only the tags in its list. A tag it does not know, such as a div, makes the request fail.
Since June 2026, bots can also send much richer messages, with tables, headings, checklists and inline images, up to 32,768 characters (Telegram blog).
Telegram formatting on mobile vs desktop
| Task | Phone | Desktop |
|---|---|---|
| Apply a style | Select text, pick from the menu | Select text, use a shortcut or right-click |
| Add a link | Select text, choose Link | Ctrl+K |
| Spoiler | Select text, choose Spoiler | Ctrl+Shift+P |
| Quote | Select text, choose Quote | Ctrl+Shift+. |
| Rich text editor | Premium, tap the expand icon | Premium, where your app version has it |
Styled fonts vs real formatting
Generators such as the Telegram bold text generator and the Telegram font generator do something different: they swap your letters for look-alike Unicode characters, like 𝗯𝗼𝗹𝗱 or 𝘪𝘵𝘢𝘭𝘪𝘤.
| Real formatting | Unicode styled letters | |
|---|---|---|
| Where it works | Messages | Messages, bios, names, channel titles |
| Search | Words stay searchable | Usually not found by search |
| Screen readers | Read normally | May be read letter by letter or skipped |
| Copy and paste | Formatting may be lost | Style travels with the text |
Use real formatting in messages. Use styled letters only where Telegram offers no formatting, such as a bio or a channel name, and only for a word or two. For bio ideas that fit the 70-character limit, see Telegram bio ideas.
Formatting in scheduled channel posts
SociaHive can schedule posts to a Telegram channel through your own bot. It sends your text exactly as you typed it: formatting characters are escaped, so an asterisk shows as an asterisk instead of turning text bold. If you want a bold word in a scheduled post, use Unicode styled letters from the generator, and keep the post within 4,096 characters, or 1,024 with a photo or video.
Frequently Asked Questions
What is the Telegram format for bold text?
In the app, select the text and choose Bold, or press Ctrl+B on desktop. In a bot message, use *bold* with MarkdownV2 or <b>bold</b> with HTML.
Does Telegram support markdown?
Bots do: they can send text with MarkdownV2, the legacy Markdown mode or HTML. In the app, you format text by selecting it and choosing a style, or with keyboard shortcuts on desktop.
How do I hide text in a Telegram message?
Use spoiler formatting. Select the text and choose Spoiler, or press Ctrl+Shift+P on desktop. The text stays hidden in the chat, the chat list and notifications until someone taps it.
How do I make a code block in Telegram?
Select the text and choose Monospace in the app. In a bot message, put three backticks on the line before and after the code with MarkdownV2, or use the <pre> tag with HTML.
How do I send one message to many people on Telegram?
Create a channel and post there: everyone who joins gets the post. You can schedule channel posts with Telegram's own Schedule Message option or with a scheduler. Sending the same private message to many people one by one is a different thing, and bulk unsolicited messages can get an account limited.
Sources
- Telegram, Bot API: Formatting options, read October 20, 2026
- Telegram, Reactions, Spoilers, Translation and QR Codes, December 30, 2021
- Telegram, Replies 2.0, Adjustable Link Previews, Name Colors and More, October 28, 2023
- Telegram, Rich Text Editor, Communities, Ephemeral Messages in Groups, July 14, 2026
- Telegram, Welcome Messages, Buttons in Messages, Inline Documents, August 25, 2026
- Telegram, Smartwatch Apps, Rich Text for Bots, AI Guardians for Groups, June 11, 2026
- Telegram Desktop, lib_ui source code (input field shortcuts), read October 20, 2026
Free tools for this
No signup needed for most — try them right now.
Telegram Bold Text Generator
Use Telegram's own bold formatting in messages, and bold letters for your name, bio and channel title.
Open toolTelegram Font Generator
Style your Telegram name, bio and channel posts beyond the built-in formatting.
Open toolTelegram Post Generator
Write Telegram channel posts that make sense in a notification and read well in the channel.
Open toolKeep reading

Schedule your Telegram posts
Write once, pick the time, and SociaHive posts to Telegram and your other accounts from one calendar. Free plan: 30 posts a month, no card.