Bluesky character counter
Counted in graphemes, the way the AT Protocol record counts it — so the emoji that other counters charge you eleven times for costs exactly one here.
Counts graphemes — an emoji is 1
300 left
0 of 3,000 UTF-8 bytes
- Words
- 0
- Sentences
- 0
- Graphemes
- 0
- UTF-8 bytes
- 0
The Bluesky character limit
A Bluesky post is limited to 300 characters, counted as graphemes — the characters a reader actually sees.
- The app.bsky.feed.post record sets maxGraphemes to 300, so an emoji, a flag or a family emoji counts as 1 and not as the 2 to 11 UTF-16 units your keyboard produced.
- The same record sets a second cap of 3,000 UTF-8 bytes (maxLength). Only heavy emoji or non-Latin scripts reach it before 300 graphemes.
- Links count in full — there is no link shortener — but they can be attached as facets, so the visible text stays short while the link still works.
- Handles in a mention count in full, including the domain: @alice.bsky.social is 18 characters.
Tiers and upgrades
Every account
300 graphemes
Bluesky sells no higher limit. There is no subscription, no verification tier and no server setting that buys more room — Bluesky+ subscribers get the same 300.
Source ↗What happens if you go over the limit on Bluesky
In the app
The counter turns red and the post button is disabled. Nothing is cut; the post simply cannot be sent until it fits.
Through the API
The record fails lexicon validation on your PDS and is never written — the error names the field that broke the 300-grapheme or 3,000-byte cap.
Character limits on every platform
The same post is a different length on every network. This is the full comparison, with the document each number comes from.
| 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 — this page | 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 · AT Protocol lexicon — app.bsky.feed.post ↗
Writing this for more than one platform? MicroPoster cross-posts from X to Bluesky and handles each platform's limit automatically — anything too long is split into a native thread rather than rejected.
7-day free trial · No credit card
Bluesky questions
What is the character limit on Bluesky?
300 characters per post. Bluesky counts graphemes — the characters a reader perceives — so an emoji, a flag or a skin-tone variant counts as one, not as the several UTF-16 units it is built from.
What is the 3,000-byte limit on Bluesky?
The app.bsky.feed.post record enforces two caps: 300 graphemes and 3,000 UTF-8 bytes. Latin text never reaches the byte cap first, but heavy emoji or non-Latin scripts can — 300 family emoji are far past 3,000 bytes, and the post is rejected even though the grapheme count fits.
Do links count towards the 300 characters on Bluesky?
Yes, in full — there is no link shortener. A long URL eats the budget character for character, which is why clients attach links as facets: the visible text stays short while the link still works.
Can I pay for a longer post on Bluesky?
No. Bluesky sells no higher limit, and a subscription does not change post length. Longer pieces are posted as a thread, each post with its own 300 characters.
Counters for the platforms next to this one
Or start from the character counter hub, which counts your draft against all eight platforms at once.