Twitter/X Character Limit: 280 (or 25,000)
X gives free accounts 280 characters and Premium subscribers up to 25,000. Learn how links (23 chars flat), emoji, and CJK text are weighted inside that limit.

Disclosure: Independent guide from Fuxux. We are not affiliated with X (formerly Twitter), or with any third-party tool mentioned here. Product names belong to their owners.
A free X account gets 280 characters per post. X Premium and Premium+ subscribers can write up to 25,000. Both numbers are real, and most confusion about the Twitter/X character limit comes from not knowing which one applies to you, or from a post landing shorter than expected because of what got charged against it before you noticed.
The 280-character count itself is not a simple letter tally either. Links, emoji, and certain scripts are weighted differently than plain Latin text, which is why a post that looks short can hit the limit and one that looks long can have room to spare.
Pair this with YouTube's title character limit if you are checking limits across platforms rather than just X, or how to cross post to multiple platforms for the full set of per-platform constraints worth knowing before you write once and publish everywhere.
Quick answer: free X accounts get 280 characters per post. X Premium and Premium+ subscribers can write Longer Posts up to 25,000 characters. Inside the 280 limit, most letters count as one character, links always count as exactly 23 no matter how long the real URL is, and every emoji counts as two.
The two limits: 280 free, 25,000 with Premium
Every free X account is capped at 280 characters per post, the same limit X has used since it doubled from 140 in 2017. There is no way to extend it without a subscription: no verified-account exception, no grandfathered accounts, no per-post purchase.
X Premium and Premium+ subscribers can turn on Longer Posts, which raises the ceiling to 25,000 characters. It is opt-in per post rather than a blanket replacement of the 280 limit — you choose to write a longer post, and everyone else on the platform still sees a normal 280-character composer unless they also subscribe.
One limitation worth knowing before you build a workflow around it: Longer Posts cannot currently be scheduled through X's native composer, and cannot be saved as a draft on web. If your Longer Post needs to go out at a specific time, you are posting it live rather than queuing it.
How X actually counts a character
X does not count characters one-for-one. It uses a weighted system, documented in its own Counting Characters reference and implemented in the open-source twitter-text library, so the count you see in the composer is not a plain string.length.
Most characters count as one
Latin letters, numbers, standard punctuation, and spaces each count as a single character toward the 280 (or 25,000) limit. This covers the large majority of everyday English-language posts, which is why the composer usually feels like it is counting letters directly.
CJK scripts count as two
Characters from Chinese, Japanese, and Korean scripts — CJK Unified Ideographs, Hiragana, Katakana, Hangul syllables, and fullwidth forms — are weighted at two characters each rather than one. X's reasoning is that these scripts pack more meaning per character than Latin text, so a flat character count would let CJK posts say disproportionately more in the same 280. The practical effect is that a post mixing English and Japanese, for example, spends its limit faster on the Japanese portion.
Every emoji counts as two
All emoji count as two characters, regardless of how visually complex they are. A combined sequence — a family emoji or one with a skin-tone modifier, joined internally with zero-width joiners — is still counted as the single emoji it displays as, at a weight of two, not per underlying code point. Character counting is done after Unicode Normalization Form C (NFC), which is also why a character built from combining marks can count differently than the same character typed as one precomposed code point.
Links, mentions, and attachments
Links always cost 23 characters
Every link you post is automatically wrapped by X's t.co shortener and counts as exactly 23 characters against your limit — regardless of how long or short the original URL actually is. A 12-character link and a 90-character link both cost you 23. This is a fixed cost, not a shortening discount, which surprises people who assume a short URL "saves" characters versus typing it out.
@mentions in the box count; the reply recipient doesn't
When you reply to a post, the person you are replying to is not automatically added as visible text at the start of your reply, so it does not consume any of your character limit. Any @mention you type yourself — in a fresh post, or added into the body of a reply — counts normally like any other text.
Photos, GIFs, and videos are free
Media attachments do not count toward the character limit at all. You can attach up to four photos, one GIF, or one video alongside a full 280 characters of text, and the attachment itself costs nothing from your count.
What Longer Posts change, and what they don't
Before Longer Posts existed, the standard workaround for saying more than 280 characters allowed was threading — posting a chain of connected replies to yourself, each capped at 280, read top to bottom as one piece. Threading still works exactly the same way and remains free for every account.
What Premium changes is that a Longer Post is one post, not several stitched together: one like count, one reply chain, one URL, up to 25,000 characters. It reads more like a short article than a chain of posts. The trade-off is the scheduling and drafting limitation above, and that non-Premium readers still see the same post; the character allowance is a writing permission, not a different experience for the audience.
Neither option changes the weighted counting rules above. A 25,000-character Longer Post still spends 23 characters per link and two per emoji — the ceiling moved, the meter underneath it didn't.
A workflow that keeps you inside the limit
- Write the point first, without links or hashtags. Get the actual sentence right before spending characters on anything else.
- Add your link last, and budget it at 23 characters flat. Whether it's a 15-character short link or a 120-character tracking URL, it costs the same 23.
- Count emoji as two, not one. A post with three emoji has already spent six characters before you've written a word.
- Check the composer's live counter, not a plain word-count tool. A generic character counter that doesn't apply X's weighting will read differently from what X actually enforces.
- If it doesn't fit, thread it before reaching for Premium. Threading is free and works for anyone reading the post, subscriber or not.
Common mistakes
- Assuming a short URL saves characters. Every link costs 23, full stop, regardless of the real URL's length.
- Undercounting emoji-heavy posts. Three or four emoji can quietly eat 6–8 characters that a plain word count would miss.
- Scheduling a Longer Post through automation. As of now, Longer Posts can't be scheduled or saved as a draft on web — plan around posting it live.
- Typing the reply recipient's @mention yourself. X already excludes the automatic reply recipient from your count; retyping it manually spends characters for nothing.
- Mixing scripts without expecting the cost difference. A post that switches into Japanese or Korean partway through will hit 280 sooner than the same sentence length suggests in English.
The short version
Free accounts get 280 characters. X Premium and Premium+ unlock Longer Posts up to 25,000. Inside either limit, links always cost 23 characters, every emoji costs two, CJK script costs two per character, and photos, GIFs, and video cost nothing. Budget for the weighting, not just the letter count, and the number in the composer will stop surprising you.
If you're publishing the same message to more than one network, see Threads' own posting rules for how a visually similar platform handles limits differently.
Frequently asked questions
What is the character limit on X (Twitter)?
280 characters for free accounts. X Premium and Premium+ subscribers can post Longer Posts up to 25,000 characters.
Do links count toward the X character limit?
Yes. Every link is shortened through X's t.co service and counts as exactly 23 characters, regardless of how long the original URL actually is.
Do emoji count as one character or two?
Two. Every emoji counts as two characters toward the limit, regardless of how visually complex it is.
Does @mentioning someone use up my characters?
Only if you type it yourself. When you reply to a post, the recipient's @username is not added as counted text automatically. Any @mention you type into the body of a post or reply counts as normal text.
Can I schedule a Longer Post (over 280 characters)?
Not currently through X's native composer — Longer Posts can't be scheduled, and can't be saved as a draft on web. Posts within the standard 280-character limit can still be scheduled normally.
Do photos or videos count toward the character limit?
No. Attached photos, GIFs, and videos don't use any of your character allowance, whether you're on the free 280-character limit or a Premium Longer Post.
Why does my post count differently than a plain character count?
X uses a weighted counting system, not a simple letter tally: links always count as 23 characters, emoji count as two each, and characters from Chinese, Japanese, and Korean scripts count as two each. A generic word processor's character count won't match X's composer for this reason.
Publishing to Twitter/X regularly? See how scheduling works for Twitter/X.
About the author

I build Fuxux, a scheduler that publishes to nine platforms from one queue. I write about the parts of posting that are actually fiddly — what each platform will and won't let you schedule natively, where the API limits bite, and how to keep a queue running without babysitting it.
Ready to post smarter?
Fuxux handles the scheduling, the formatting, and the AI captions — so you can focus on ideas.
Start free — no credit card