X (Twitter) character limit in 2026
xVirals · Updated
A post on X can be 280 characters, but that number hides a lot: every link counts as 23, every emoji as 2, and bios, names, polls and lists each have a limit of their own. Below is every limit we could confirm in X's own documentation, how the counting actually works, and what X does not say.
All X character limits at a glance
Each number below comes from X's Help Center or X's developer documentation, checked in October 2026. Where X does not publish a number, the table says so instead of guessing.
| What you write | Limit | Source |
|---|---|---|
| Post (standard account) | 280 (weighted) | X developer docs |
| Post (X Premium) | 25,000 | X Help Center |
| Username (@handle) | 15 — letters, numbers, underscore | X Help Center |
| Display name | 50 | X Help Center |
| Bio | 160 | X Help Center |
| Poll option | 25 per option, up to 4 options | X Help Center |
| Image description (alt text) | 1,000 | X API docs |
| List name | 25 | X API docs |
| List description | 100 | X API docs |
| Location | Not stated by X | — |
| Direct message | No maximum in X's current docs | — |
| Posts in a thread | Not stated by X | — |
How X counts the 280 characters
X does not count letters one by one. It counts a weighted length, and the open-source twitter-text library that X points developers to defines the weights. Every Unicode code point from U+0000 to U+10FF counts as 1. That block covers Latin with all its accented letters (so Turkish ğ, ş and ı are 1 each), plus Greek, Cyrillic, Armenian, Hebrew, Arabic, Devanagari and other Indic scripts, Thai and Georgian. A few punctuation ranges also count as 1: the special spaces from U+2000 to U+200D, dashes and curly quotes (U+2010–U+201F), and prime marks (U+2032–U+2037).
Everything else counts as 2. In practice that means Chinese, Japanese and Korean characters, emoji, and a handful of symbols people do not expect. The ellipsis character (…) and the bullet (•) fall outside the weight-1 ranges, so each costs 2. Typing three periods costs 3. The "bold" and "italic" Unicode letters that font generators produce are mathematical symbols far above U+10FF, so a word written in them costs twice as much as the same word in plain text.
Spaces and line breaks count as 1 each. Before counting, X normalizes text to Unicode Normalization Form C, so "café" counts as 4 whether the é was typed as one character or as an e plus a combining accent.
The limit is 280 weighted units. A post written only in a weight-1 script fits 280 characters, one written only in CJK fits 140, and a post that mixes them lands somewhere in between. The easiest way to see the real number is to paste the text into our Twitter character counter, which uses the same twitter-text rules.
Links always count as 23 characters
X wraps every link in its t.co shortener, so every valid URL in a post counts as exactly 23 characters, however long or short the original address is. A 120-character tracking link and a bare domain such as example.com cost the same 23. This is why a post with two links has only 234 characters left for text.
Emoji always count as 2
X's documentation is direct about this: all emoji count as 2 characters regardless of complexity. A skin-tone thumbs-up, a flag and a family emoji are each built from several code points, but X counts the whole sequence as one emoji of weight 2. The zero-width joiners that glue those sequences together add nothing. X's own example: "Hello, world! 👋" has a weighted length of 16 — 14 for the text and space, 2 for the wave.
What does not count toward the limit
- Photos, videos, GIFs and polls attached through X's apps count as 0.
- The @usernames X adds automatically at the start of a reply do not count. Mentions you type into the text yourself do.
- Hashtags are not free: the # and the tag text count like any other characters.
Longer posts with X Premium: 25,000 characters
X Premium subscribers can write posts of up to 25,000 characters, according to X's Premium help page. Anyone can read a long post; only subscribers can create one. Long posts also work as replies and quote posts, and Premium adds bold and italic formatting inside them.
Two caveats. Some older X help pages, such as the step-by-step posting guide, still mention 4,000 characters; the current Premium page says 25,000. And in the timeline, a long post shows only its opening followed by a "Show more" link. X does not document exactly where that cut happens, so write the first few lines as if they were the whole post. Turn on the Premium option in the character counter to check a long draft against 25,000.
Profile limits: username, display name and bio
Your username (the @handle) can be at most 15 characters and may contain only letters A–Z, numbers 0–9 and underscores — no spaces, hyphens or other symbols. Your display name, the name shown above the handle, can be up to 50 characters. Your bio can be up to 160 characters.
X's profile help page lists location and website as editable fields but does not publish a length limit for them, so we don't give one here.
Polls, alt text, lists and direct messages
A poll can have up to four options, each up to 25 characters, and it can run from 5 minutes to 7 days. The question itself is the text of the post, so it shares the 280-character limit.
Image descriptions (alt text) can be up to 1,000 characters, per X's API schema. That is enough to describe a chart or a screenshot properly; use it.
A List name can be 1 to 25 characters and its description up to 100, again per X's API schema.
Direct messages are the one place where we could not confirm a current number. Twitter raised the DM limit from 140 to 10,000 characters in 2015, but X's current API documentation for sending a DM sets no maximum, and the Help Center does not state one. If you depend on a hard limit, test it in your own account.
Threads: 280 per post
A thread is a series of connected posts, and each post in it has its own 280-character limit (or 25,000 with Premium). X's help page on threads does not state a maximum number of posts per thread. If you have a long text and a standard account, the thread generator splits it into numbered posts that each fit 280, breaking at paragraphs and sentences.
Check a post before you publish
X's compose box already shows a progress ring, but it only tells you once you are writing in X. If you draft elsewhere — a notes app, a doc, an AI tool — paste the text into the Twitter character counter first. It shows the weighted count, flags links and emoji, and runs entirely in your browser, so nothing you paste is sent anywhere.
Frequently asked questions
What is the character limit on X (Twitter) in 2026?
A standard post can be up to 280 weighted characters. X Premium subscribers can write posts of up to 25,000 characters.
Why does X say my post is too long when I count fewer than 280 characters?
X counts a weighted length. Links always count as 23, emoji count as 2, and Chinese, Japanese and Korean characters, the ellipsis (…) and Unicode "bold" letters count as 2 each.
How many characters can a Twitter bio have?
Up to 160 characters. The display name can be up to 50 characters and the username up to 15.
Do Turkish or accented letters count as 2?
No. Latin letters with accents, including Turkish ğ, ş, ı, ö, ü and ç, count as 1 each. So do Greek, Cyrillic, Arabic and Hebrew letters.
Do images and videos count toward the character limit?
No. Media attached through X's apps counts as 0. The @usernames added automatically at the start of a reply don't count either.
What is the character limit for DMs on X?
Twitter set it to 10,000 characters in 2015. X's current documentation does not state a maximum, so we can't confirm today's number.
Sources
- X Developer Platform — Counting characters
- twitter-text — character weight configuration (v3)
- X Help Center — About X Premium
- X Help Center — X Premium how-to (longer posts)
- X Help Center — Help with username registration
- X Help Center — How to customize your profile
- X Help Center — About X Polls
- X API — Create media metadata (alt text)
- X API — Create List