Count your tweet exactly the way X does. Every link costs 23 characters and every emoji costs 2. Paste your text below to check it against the 280-character limit.
Sign up free or continue with
Join 10,000+ creators growing on X
X doesn't just count letters. It uses weighted counting, where links, emoji, and non-Latin text cost more than a single character. Most counters ignore this and quietly let you go over. This one applies X's real rules, so the number you see is the number X will enforce.
Standard Latin characters, spaces, and punctuation each count as a single character toward the 280 (or 25,000 for Premium) limit. No surprises here.
X wraps every link in a t.co redirect and counts it as 23 characters, no matter how long or short the real URL is. A 90-character link and a 12-character link both cost the same 23.
Every emoji costs 2 characters, regardless of how complex it looks. A single ๐พ and a combined family emoji made of four people and three joiners (๐จโ๐ฉโ๐งโ๐ฆ) both count as 2.
CJK characters and some other wide Unicode symbols are weighted at 2 characters each, so an all-Japanese tweet maxes out at around 140 characters. This is the rule most naive counters get wrong.
Every field on X that has a character limit, at a glance. Check your Post or bio against the live counter above; the rest are here for reference.
Post (free account)
Weighted: links and emoji count more
Post (X Premium)
Long-post limit for subscribers
Bio
Plain character count
Display name
Plain character count
Username (@handle)
Letters, numbers, underscores only
Direct message
Plain character count
An accurate count tells you where you stand. These tips help you close the gap without gutting the post.
A short, scannable post is easier to read and reshare than one that runs right up to the limit. Optimal length varies by account, so test it against your own audience rather than treating the full 280 as a target.
Every link costs a flat 23 characters no matter its length, so shortening a URL yourself saves nothing. What actually helps: including only one link, and placing it at the end so it doesn't interrupt the sentence.
If your text is a thread, break at the end of a complete idea, not wherever the character count runs out. The auto-split above keeps sentences and paragraphs intact. Use it as a starting point, then adjust the breaks by hand.
When you're a few characters over, the first things to remove are usually "just", "really", "very", and other qualifiers, not the specific detail, number, or example that makes the post worth reading.
280 characters on a free account. X Premium and Premium+ subscribers can post much longer, up to 25,000 characters, which show in the timeline as a short preview with a "Show more" link. Toggle Premium in the tool above to check against either limit.
Because X doesn't count raw characters. Links always count as 23 characters regardless of length, and emoji plus CJK (Chinese, Japanese, Korean) characters count as 2 each. This tool applies those exact weighting rules, so the number you see here matches what X will actually enforce.
Yes. X wraps every link in a t.co redirect for click tracking, and that wrapped link always counts as 23 characters, whether the original URL was 15 characters or 150.
Two, always. A single emoji counts as 2 characters, and so does a combined emoji built from several joined characters, like a family emoji made of four people. The visual complexity doesn't change the count.
X weights CJK and certain other wide Unicode characters at 2 characters each. This is the rule most free character counters get wrong. It's why a post that looks short in Japanese can still hit the limit faster than you'd expect.
Bio: 160 characters (switch to the Bio tab above to check yours live). Direct messages: 10,000 characters. Display name: 50 characters. Username: 15 characters. These fields use a plain character count, not the Post's link/emoji weighting.
Yes. When your text goes over the limit, the preview automatically splits it into a numbered thread, breaking at paragraph and sentence boundaries so no post gets cut off mid-thought. You can copy each post individually or copy the whole thread at once.
No. Attached media doesn't use any of your character budget, no matter how many files you attach.
Yes, both count as normal text: a mention's @ and username, or a hashtag's # and text, all count character-by-character (with the same emoji/CJK weighting rules if they contain those characters).
No. This counter is completely free and works without an account, login, or installation. Paste your text and see the count instantly.
This tool is for checking your real character count and drafting before you post. The Fake Tweet Generator is for creating realistic mockup tweet images with fake engagement numbers, useful for examples and social proof graphics, not for counting characters in a post you're about to publish.
Not directly on this page. Once your post fits the limit, use "Open in Typefully" to carry your exact text into a new Typefully draft, where you can schedule it, add it to a thread, or queue it alongside the rest of your content.
It's accurate. This tool runs on the same weighted-counting library Typefully's own composer uses when you schedule a real post, not a simplified approximation, so what you see here is what X will actually count.
Join 10,000+ customers