TL;DR
7 min readX documents a maximum of 280 characters for a post on its Counting Characters page, and X's Help Centre documents 25,000 characters for anyone subscribed to any paid tier of X Premium. The count is weighted rather than raw, since X's live twitter-text configuration file gives a weight of 1 to code points 0 through 4351 and a weight of 2 to everything else, so CJK characters and emoji each cost two. Every URL counts as 23 characters whatever its real length, attached media counts as zero, and X publishes no current figure at all for the length of a direct message.
What is the X character limit?
Free accounts get 280 characters per post, and that number is the X character limit stated on X's own Counting Characters documentation page, which opens with the line "Posts on X can contain up to 280 characters" (checked 9 September 2026). Anyone subscribed to any paid tier of X Premium can post up to 25,000 characters instead, a figure X states in its Help Centre article About X Premium: "Longer posts allow subscribers to post up to 25,000 characters." Both numbers cap the text of one post rather than a chain of them, so writing past whichever cap applies to you means posting a reply thread.
X lists longer posts under the features available to every Premium tier, including the cheapest one, so the 25,000 figure is not restricted to the higher tiers. The same Help Centre article adds that longer posts work in a quote or a reply, and that everyone can read a longer post while only subscribers can create one.
Does X still count some characters as two?
X counts characters by weight rather than one at a time, and the file that defines those weights is still published. X's Counting Characters page links to a configuration file in the open source twitter-text library, and that file, config/v3.json, sets maxWeightedTweetLength to 280, scale to 100 and defaultWeight to 200, then names four code point ranges that carry a weight of 100 instead: 0 to 4351, 8192 to 8205, 8208 to 8223, and 8242 to 8247 (checked 9 September 2026).
Divide those weights by the scale of 100 and the rule reads as one unit of budget for any character inside those four ranges and two units for every other character. Latin, Greek, Cyrillic, Hebrew and Arabic all sit inside 0 to 4351 and cost one each. Chinese, Japanese and Korean characters sit far above 4351 and cost two each, which is why X's own Counting Characters page puts the practical CJK maximum at 140 characters rather than 280. Emoji cost two each as well, and X's page states that a family sequence built from four emoji and three zero width joiners still counts as 2, not as its raw code unit length.
How does X count URLs, media and quote posts?
X swaps every URL in a post for a t.co link and charges it a flat 23 characters. The Counting Characters page states that all URLs "are wrapped with t.co shortener and count as 23 characters, regardless of the original length", and the twitter-text configuration file carries the same number as transformedURLLength: 23. A twelve character link and a two hundred character link therefore cost the same.
The same page states three more counting rules. Attached media posted through official clients counts as 0 characters. Hashtags count normally, meaning the hash symbol plus the tag text. The @mentions X auto populates at the start of a reply do not count, while any mention you type yourself does. X documents nothing about how the quoted post's link is counted inside a quote post, so treat any figure you see for that as unverified.
Which X length limits does X actually document?
X publishes hard numbers for post text, profile fields and media alt text, and publishes nothing for direct messages. The table separates what X states in its own material from what circulates without an X source, checked 9 September 2026.
| Field | Value | Source | X documented? |
|---|---|---|---|
| Post text, free account | 280 weighted characters | Counting Characters | Yes, developer docs |
| Post text, any X Premium tier | 25,000 characters | About X Premium | Yes, Help Centre |
| Any URL after t.co wrapping | 23 characters | Counting Characters and transformedURLLength in config/v3.json | Yes, both |
| Each emoji | 2 characters | Counting Characters | Yes, developer docs |
| CJK and most non-Latin code points | 2 characters each | defaultWeight: 200 in config/v3.json | Yes, developer docs |
| Attached media through official clients | 0 characters | Counting Characters | Yes, developer docs |
| Auto-populated @mentions at the start of a reply | 0 characters | Counting Characters | Yes, developer docs |
| Display name | 50 characters | Help with username registration | Yes, Help Centre |
| Handle, the @username | 15 characters | Help with username registration | Yes, Help Centre |
| Bio | 160 characters | How to customize your profile | Yes, Help Centre |
| Image alt text | 1,000 characters | maxLength on the alt text field in X's OpenAPI specification | Yes, developer docs |
| Direct message text | 10,000 characters is widely reported | No X source found in the Help Centre or the API specification | No |
| Quoted post link inside a quote post | reported as not counting | No X source found | No |
Both rows in the bottom half match what many people report from testing. Neither is a published specification, so do not put either in a client deliverable as one.

How do you work out what a post has left?
Add one unit for every light character, two for every heavy one, and 23 for every link. The formula X's own library implements is:
weighted length = (light characters x 1) + (heavy characters x 2) + (23 x number of URLs)
Take a post with 200 plain Latin characters, three emoji and one link. That gives 200 + (3 x 2) + 23 = 229 weighted characters, leaving 51 of the 280 for a free account. Now take a post written in Japanese with 140 characters and no link: 140 x 2 = 280, which lands exactly on the cap with no room for a URL at all. A Japanese post carrying a single link is capped at 128 characters, since 280 minus 23 leaves 257 units and 257 divided by 2 rounds down to 128.
- 200 Latin characters cost 200
- Three emoji cost 6
- One URL costs 23, whatever its length
- 229 used, 51 left
- Every character costs 2
- One URL still costs 23
- 257 units left for text after the link
- 128 characters is the ceiling
How long can a display name, handle and bio be on X?
X caps a display name at 50 characters, a handle at 15, and a bio at 160. The 50 and 15 figures come from the Help Centre article Help with username registration, which states that a username "cannot be longer than 15 characters" while "your name can be longer (50 characters)". The 160 figure comes from How to customize your profile, which lists the editable field as "Bio (maximum 160 characters)". The same username article adds that a handle accepts only letters, numbers and underscores, and that no handle may contain the words X or Admin unless it is an official X account.
What is the character limit for a direct message on X?
X does not publish a character limit for a direct message anywhere its Help Centre or its developer documentation states plainly. The Help Centre article About Direct Messages walks through sending, editing, pinning and reporting messages without naming a length, and Direct Message FAQs names an account limit of 500 direct messages sent per day rather than any per message character count. X's own OpenAPI specification sets no maxLength on the message text field, and it sets none on the post text field either, so the API contract is silent on both.
A figure of 10,000 characters circulates widely for direct messages. Cite it as commonly reported and unconfirmed rather than as a specification, because the number X actually publishes for DMs is the 500 per day sending cap. The one length figure that page does state is unrelated: it warns that a DM sent through SMS should stay under 160 characters, because a carrier splitting a longer text can push the remainder out as a public post.
RedReplier
Get Started
Reddit, X, Bluesky & HN
Real-time intent alerts
Unlimited AI replies
Ranked by buyer intent

Why do these limits matter outside the composer?
A 280 character network and a 25,000 character network produce different signals for the same buying intent, which changes how you read what you monitor. RedReplier's X monitoring watches X alongside Reddit, Bluesky, Facebook and Hacker News, ranks the mentions it finds by buying intent, and explains with AI why each one was flagged. The wider practice is covered in X social listening, and the query syntax for narrowing a search before you monitor it is covered in advanced search operators on X.
The neighbouring platforms all draw the line somewhere different: the Bluesky character limit is 300 graphemes, the LinkedIn post character limit is 3,000 characters, and the Reddit post character limit is different again. Knowing which cap a platform enforces tells you whether a mention you surface is a full argument or a one line aside.
Frequently Asked Questions
Is the X character limit still 280?
X's Counting Characters documentation states that posts on X can contain up to 280 characters, checked 9 September 2026. That 280 is a weighted count rather than a raw one, so a post of 280 emoji or 280 Chinese characters will not fit. X Premium subscribers on any paid tier get 25,000 characters instead, per X's Help Centre.
Do CJK characters really count as two?
Yes, and X's live configuration file is the reason. The twitter-text config/v3.json file sets a default weight of 200 against a scale of 100, and grants the reduced weight of 100 only to code points 0 through 4351 plus three small punctuation ranges. Chinese, Japanese and Korean characters sit above 4351, so each costs two units, and X's own page puts the CJK maximum at 140 characters.
How many characters does a link use on X?
Every URL counts as exactly 23 characters after X wraps it in a t.co link, whatever its original length. X states this on its Counting Characters page and repeats the number as transformedURLLength in the twitter-text configuration file. Shortening a URL yourself before posting saves nothing.
Do photos and videos count against the X character limit?
No. X's Counting Characters page states that media attached through official clients counts as 0 characters. Attaching an image, a video or a GIF therefore leaves the full text budget intact.
How long can an X bio be?
X's Help Centre article on customizing your profile lists the bio field as a maximum of 160 characters. The same set of Help Centre articles caps a display name at 50 characters and a handle at 15. Those three figures are among the few length limits X states in plain language for members rather than for developers.
What is the X direct message character limit?
X publishes no current character limit for a direct message. Its Help Centre articles on direct messages describe sending, editing and reporting without naming a length, and X's OpenAPI specification sets no maximum on the message text field. The 10,000 character figure that circulates has no X source behind it, so cite it as commonly reported rather than documented.
What happens if a post runs over the X character limit?
Both the 280 character cap for free accounts and the 25,000 character cap for X Premium apply to a single post, not to a chain of them. Writing past whichever limit applies to your account means splitting the text into a reply thread instead. X offers no way to post more text in one block once you hit the cap for your tier.
Why doesn't shortening a URL yourself save space on X?
X replaces every link with a t.co wrapper and charges a flat 23 characters, no matter how long the original URL was. A short link and a long link end up costing the same 23 units. Shortening the URL yourself before you post saves nothing.
Can non-subscribers read an X Premium post longer than 280 characters?
Anyone can read a post longer than 280 characters, but only X Premium subscribers can write one, according to X's Help Centre article About X Premium. The same article notes that longer posts also work inside a quote or a reply. The 280 character cap only limits who can compose the longer text, not who can see it.
Is the 25,000 character limit only for the top X Premium tier?
No, X lists longer posts among the features available on every Premium tier, including the cheapest one. The 25,000 character limit is not reserved for higher-priced tiers. Any paid subscription level unlocks the same post length.
See us more often in Google
One click marks RedReplier as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
RedReplier
Catch every buyer asking for what you sell
RedReplier watches Reddit, X, Bluesky and Hacker News in real time, ranks every thread by buyer intent, and drafts your reply, so you get there first.
Reddit, X, Bluesky & HN
Real-time intent alerts
Unlimited AI replies
Ranked by buyer intent
Related Articles


Jakob Nielsen Published the 90-9-1 Rule in 2006, and the Evidence Since Is Thin
Jakob Nielsen published the 90-9-1 rule in 2006: 90% of an online community lurks, 9% contributes sometimes, 1% writes almost everything. How well it holds up.


Why Algospeak Hides Real Conversations From Keyword Monitoring
How algospeak, the practice of swapping coded words for terms users expect moderation to suppress, hides conversations from exact-match keyword monitoring.


Straight From the HTML: Are Reddit Links Nofollow?
Checked in live HTML: are Reddit links nofollow, what rel="noopener nofollow ugc" means, and why Google calls those attributes hints instead of directives.

