Social media character limits: X (Twitter), Bluesky, Mastodon
See how many characters X (Twitter), Bluesky, Mastodon, Misskey and Telegram allow, how each counts links and emoji, and how to fit one post into all of them.
A standard X (Twitter) post holds 280 characters, a Bluesky post 300 and a Mastodon post 500, unless your server sets another limit. Misskey’s limit depends on the server. A Telegram text message can have 4,096 characters, but a photo or GIF caption only 1,024. Each network also counts links, emoji and some scripts differently, so one draft can fit one and fail the next.
This guide covers post text, not bios or image descriptions. Figures for X (Twitter) and Telegram assume an unpaid account.
The character limit on each network
| Network | Limit per post | Each link counts as |
|---|---|---|
| X (Twitter) | 280 weighted characters | 23 |
| Bluesky | 300 visible characters | Its full length, or less in the Bluesky app |
| Mastodon | 500 by default | 23 by default |
| Misskey | Depends on the server | Its full length |
| Telegram | 4,096 per message, 1,024 per photo or GIF caption | Its full length |
The Telegram scheduling guide links Telegram’s documentation of both limits.
How each network counts links, emoji and other scripts
X (Twitter) publishes its counting rules and weights. Latin, Greek, Cyrillic, Hebrew, Arabic, Devanagari and Thai characters count 1. Chinese, Japanese and Korean characters count 2, as does every emoji, skin tone included. Every link counts 23. So “自転車修理カフェ” (“bike repair café” in Japanese, eight characters) uses 16 of your 280. Typed mentions count; names added at the start of a reply don’t.
In Mastodon’s posting guide, every link counts as 23 and a mention counts only its username, so @ana@example.social counts as @ana. Other characters count once, emoji included. A content warning counts too.
Bluesky’s post format counts each visible character once, in any script, emoji included. Links count as they appear in the post, and the Bluesky app shortens long ones first. Posted in full, three 80-character links take 240, against 69 on X (Twitter) and Mastodon.
Find the limit on your own Mastodon or Misskey server
Mastodon’s 500 is a default, and some servers allow thousands. Your server’s web compose counter shows the limit before you type. For the limit and link length, open https://your.server/api/v2/instance and find max_characters and characters_reserved_per_url.
On Misskey, open https://your.server/nodeinfo/2.1 and find maxNoteTextLength.
Across several servers, write for the smallest limit and recheck when one changes.
Fit one post into every network
A made-up bike repair café announces its Saturday session with one photo and a registration link. The 339-character draft has a 58-character link and two emoji:
🚲 The Elm Street Bike Repair Café is back this Saturday, 10:00 to 13:00, at the Elm Street community hall. Bring a bike that squeaks, wobbles or won’t shift, and our volunteer mechanics will help you fix it yourself. Tools and tea are free. Places are limited, so register first 🔧 https://example.org/bike-repair-cafe/saturday-registration
| Network | Count | Result |
|---|---|---|
| X (Twitter): link 23, emoji 2 | 306 of 280 | 26 over |
| Bluesky: full link, emoji 1 | 339 of 300 | 39 over (8 in the Bluesky app) |
| Mastodon: link 23, emoji 1 | 304 of 500 | Fits |
| Telegram photo caption | About 340 of 1,024 | Fits |
Cut repeated context first, then any second link, then extra hashtags (see the hashtag guide). Keep the day, time, place and link. Here the street name appears twice:
🚲 Bike Repair Café this Saturday, 10:00 to 13:00, Elm Street community hall. Bring a bike that squeaks, wobbles or won’t shift, and our volunteers will help you fix it. Tools and tea are free. Places are limited, so register first 🔧 https://example.org/bike-repair-cafe/saturday-registration
That counts 258 on X (Twitter) and 291 on Bluesky. When only some networks are over, write a shorter version for them instead of trimming everywhere. The cross-posting guide covers adapting each version.
When to split into a thread or send the text separately
Split when cutting would remove something readers need. Give each part a job: for the café, the first holds the day, time, hall and link, and the second says what to bring. The thread guide covers keeping replies in order.
On Telegram, keep photo and GIF captions under 1,024 characters, or give the photo a short caption and send the full text separately.
Check the count before you schedule
Paste the draft into the X (Twitter), Bluesky and Mastodon compose boxes without posting: each counts by its own rules. Then check:
- Strictest network: the lowest limit you post to.
- Links: 23 each on X (Twitter) and Mastodon, as posted on Bluesky.
- Emoji and Chinese, Japanese or Korean text: 2 each on X (Twitter).
- Mentions: typed ones count on X (Twitter), usernames only on Mastodon.
- Telegram: under 1,024 characters with a photo or GIF.
- Versions: check each against its own network.
Studio applies the X (Twitter) weights and your Mastodon or Misskey server’s limit, and its counter follows the strictest network you’ve selected. “Custom text” for one network is checked against its limit. Emoji can make its count slightly stricter than a network’s. It holds Telegram to 4,096, so keep picture posts under 1,024 yourself. Studio isn’t available yet, but you can join the waitlist.
