Social media character counter
Type once and watch every platform’s limit at the same time — counted the way each network really counts, links, emoji and mentions included.
Encoding detail: 0 code points · 0 UTF-16 units · 0 UTF-8 bytes. Characters above are counted as graphemes — what a reader sees — so an emoji counts once, even though it is several code points.
A counter for each platform
Each page states that platform’s limit, how it counts, what happens when you go over it, and the document the number comes from.
Writing for four platforms at once?
MicroPoster cross-posts from X and handles each platform’s limit automatically. Post once where you like, and it splits long text into native threads, fixes links and mentions, and publishes to X, Threads, Bluesky and Mastodon on its own.
7-day free trial · No credit card
Every platform counts differently
A post that fits on Bluesky can be over the limit on X, and a 280-character draft full of links may still fit. These are the rules this counter applies.
Links cost 23 on X and Mastodon
Both platforms rewrite links before counting: a 200-character tracking URL and a 12-character short link cost exactly the same, and on X a bare domain counts as a link too. Everywhere else the whole URL counts.
Emoji and CJK cost double on X
X weighs each character. A post of 280 Japanese, Chinese or Korean characters is 560 on X's own scale — half a post over the limit, which is why so many counters get it wrong.
Bluesky counts what you see
Bluesky counts graphemes, so a family emoji or a flag is one character, not the eleven UTF-16 units your keyboard produced. TikTok charges all eleven.
Threads charges emoji by the byte
Meta's own documentation says an emoji on Threads counts as its number of UTF-8 bytes, so a single 😀 spends four of your 500 characters.
Social media character limits
Every limit below was read from the platform’s own documentation. Facebook is the exception, and its row says so.
| Platform | Limit | Paid tier | How it counts | Source |
|---|---|---|---|---|
| X (Twitter) | 280 | 25,000Premium | Links cost 23 · emoji and CJK cost 2 | X developer docs — Counting characters ↗ |
| Bluesky | 3003,000 bytes | — | Counts graphemes — an emoji is 1 | AT Protocol lexicon — app.bsky.feed.post ↗ |
| Threads | 500 | — | 500 characters · an emoji costs its UTF-8 bytes | Meta developer docs — Threads posts ↗ |
| Mastodon | 500default, per server | — | Links cost 23 · mentions drop the domain | Mastodon docs — Posting ↗ |
| 3,000 | — | Plain characters · the feed folds at ~210 | LinkedIn Help — Post and share updates ↗ | |
| Instagram caption | 2,200 | — | 2,200 characters · 30 hashtags · 20 @ tags | Meta developer docs — IG User Media (caption) ↗ |
| Facebook post | 63,206 | — | 63,206 characters · folds at ~477 | Meta developer docs — Pages API Posts (no limit published) ↗ |
| TikTok caption | 2,200 | — | 2,200 UTF-16 units — an emoji costs 2 | TikTok for Developers — Content Posting API ↗ |
Last verified: September 8, 2026 · each row links to the document the number comes from.
The limits in one line each
- X (Twitter): 280 characters, or 25,000 characters on Premium. Links cost 23 · emoji and CJK cost 2.
- Bluesky: 300 characters. Counts graphemes — an emoji is 1.
- Threads: 500 characters. 500 characters · an emoji costs its UTF-8 bytes.
- Mastodon: 500 characters, unless your server raises it. Links cost 23 · mentions drop the domain.
- LinkedIn: 3,000 characters. Plain characters · the feed folds at ~210.
- Instagram caption: 2,200 characters. 2,200 characters · 30 hashtags · 20 @ tags.
- Facebook post: 63,206 characters. 63,206 characters · folds at ~477.
- TikTok caption: 2,200 characters. 2,200 UTF-16 units — an emoji costs 2.
Character counting, explained
What is the character limit on each social media platform?
X allows 280 characters on a free account and 25,000 on Premium. Bluesky allows 300. Threads and Mastodon allow 500, though a Mastodon server can raise its own limit. Instagram captions and TikTok video captions allow 2,200. LinkedIn posts allow 3,000. A Facebook post can run to 63,206.
How does X count characters?
X gives every character a weight. Latin, Cyrillic, Greek, Hebrew and Arabic characters weigh 1; emoji, CJK, Hangul, Japanese and most symbols weigh 2. Every link is replaced with a t.co address and always costs exactly 23 characters — even a domain typed without https://. So a 280-character post of English text fits, but 280 Japanese characters is double the limit.
Why do other counters give me a different number for emoji?
Most counters use JavaScript's string length, which counts UTF-16 code units: a single 👨👩👧👦 comes out as 11. Bluesky counts graphemes, so it is 1. X counts it as one emoji weighing 2. Threads charges its UTF-8 bytes, and TikTok charges all 11. We apply each platform's own rule rather than one number for all of them.
What is the character limit on Bluesky?
300 graphemes per post. The AT Protocol record enforces a second cap of 3,000 UTF-8 bytes, which only heavy emoji or non-Latin scripts reach before 300 graphemes. Links count in full, so a long URL eats into the budget.
What is the character limit on Mastodon?
500 characters by default, but each server sets its own — some allow 5,000 or more. Mastodon counts links as 23 characters, and for a remote mention only the username counts, so @user@example.social costs the same as @user. Set your server's limit in the Mastodon row to count against the right number.
How many characters can an X Premium post have?
25,000 characters for long posts on a Premium subscription, against 280 on a free account. Toggle “X Premium” in the X row to count against the higher limit.
Is this character counter free?
Yes. No sign-up, no limits, nothing stored — the counting runs entirely in your browser, so your draft never leaves your device. You can share a draft with the copy-link button, which puts the text in the URL.
Need the long version? How long can a tweet be? · Auto-crosspost to every platform