Skip to main content

Writing within the limits on X

Twitter Character Limit: What Counts and Premium Limits

Updated

The Twitter character limit is 280 for a standard post. On X Premium, longer posts can run to 25,000 characters, including on Basic. The awkward part is that the number in your writing app may not be the number X counts.

A short URL can use more of your allowance than the text you pasted. A family emoji can contain several joined symbols and still count as two. And a reply can show someone's handle without deducting it from the space available for your answer.

Those details matter most when a draft is nearly finished. Before cutting the useful sentence, check what is actually using the space.

The current Twitter character limit, by post type

X's posting guide sets the standard limit at 280. Its Premium feature list puts longer posts of up to 25,000 characters under features available to every Premium tier, and explicitly includes replies and quote posts.

What you're writingPublished limit
Standard post on a free account280 weighted characters
Reply or quote commentary on a free account280 weighted characters
Longer post, reply or quote on Basic, Premium or Premium+Up to 25,000 characters
A threadEach component post has its own allowance

The limit is about characters, not words. There is no reliable conversion from “50 words” to a valid post: word length, punctuation, links and the writing system all affect the result.

You may still find 4,000 quoted as the Premium limit, including in some of X's own longer-post instructions. That conflicts with the 25,000 stated on its Premium feature page. This guide uses the published Premium feature limit; if a particular composer stops you earlier, check that publishing surface rather than assuming the two pages agree.

You don't need Premium+ just for longer posts. Nor do readers need a Premium subscription to read an ordinary longer post. X distinguishes the ability to publish that format from access to read it.

What counts toward 280 characters

X uses a weighted count. Its character-counting documentation and the published twitter-text configuration explain the difference between the text you see and the allowance it uses.

ContentHow it counts in a standard post
Ordinary Latin letters, numbers, spaces and common punctuationUsually 1 each
A line break in the draft1 for a single newline; a blank line normally uses two
A recognized emoji, including a joined sequence2
Chinese, Japanese and Korean charactersGenerally 2 each
A recognized URL23, regardless of its visible length
A hashtag or manually typed @mentionThe actual text, including # or @
Automatically populated reply recipientsExcluded from the reply's text budget
Media attached through an official X client0 for the attachment itself

The weights explain why counting visible symbols or using a document's word count can mislead you. For exact drafts, use the X composer or a counter that implements X's rules. A generic character counter is useful for rough editing, but it isn't a substitute near the boundary.

X wraps links with its t.co service. The published counting configuration assigns a recognized URL 23 characters. That applies whether the pasted address is shorter or much longer than 23.

We checked this example with the official twitter-text library:

Release notes: https://example.com/releases 🚀

It uses 41 characters: 15 for “Release notes: ” including the space, 23 for the URL, another space and 2 for the rocket. Replacing that address with a shorter recognized URL wouldn't change the total.

For planning, a link preceded by one ordinary space uses 24 characters. That leaves 256 for the preceding text in a standard post. Two links with one separating space use 47 before you add any explanation.

This also means that shortening a tracking URL solely to rescue an overlong draft is wasted effort. Edit the surrounding sentence, or remove a second link if readers don't need it. Keep useful tracking parameters when they serve your measurement, rather than stripping them to solve a counting problem they aren't causing.

The qualification is “recognized URL.” A broken address or punctuation pasted into the wrong place can change what a parser detects. If the count behaves strangely around a link, check the address and separate it clearly from the surrounding text.

Emojis and copied text can fool an ordinary counter

An emoji that looks like one picture isn't necessarily stored as one character. Skin tones and joined emoji sequences make raw text length particularly unhelpful. The official parser recognizes emoji sequences and normalizes text before calculating its weighted length.

Here are results from twitter-text 3.1.0, using its standard-post configuration:

Draft textWeighted count
Hi 👨‍👩‍👧‍👦5: two letters, a space and one emoji sequence worth 2
Café4, including when the accent is supplied as a combining mark
東京4 for the two Japanese characters
hello5
hello10 for the five full-width letters
Line one
Line two
17 with one newline between the lines

The full-width example is a good reason to be cautious with text copied from decorative font generators. What looks like a styling choice may actually replace ordinary letters with different Unicode characters.

If a draft suddenly becomes too long after pasting, compare a plain-text version and look for duplicated spaces, extra line breaks or decorative characters. Don't indiscriminately remove invisible characters: some are part of a legitimate emoji or writing system. Retyping the suspicious word is often clearer than trying to clean an entire draft blindly.

The examples above are reproducible library checks, not tests of every current X client. An older third-party counter can also disagree over newer emoji. Let the intended publishing composer settle the final draft.

Reply recipients, mentions and attachments are different things

The automatically populated recipient in a reply is handled differently from an @handle you type into the message. X's counting rules exempt the former; a new mention in the body uses space. Pasting a list of names into a reply doesn't make that list free.

The same practical distinction applies to media. An attached image doesn't consume text characters, while a URL typed into the body is still a link. Check the finished composition, especially when moving a draft between a publishing tool and X.

A screenshot of a long paragraph can fit as an image, but consider the reading experience before using one to bypass the limit. Small text is awkward on a phone, and readers should not have to rely on seeing the image to understand it. X supports image descriptions of up to 1,000 characters. Use that space to make the image accessible, not as a hidden continuation unrelated to it.

Cut the introduction before you cut the point

When a post runs long, the easiest words to remove are often the ones explaining that you're about to say something. “One of the things that we have found” spends a lot of space before reaching the finding.

Consider this hypothetical draft, which uses 320 characters:

We have recently been looking into the reasons why customers abandon the signup process, and one of the things that we have found is that asking people to import their own data before they have seen what the product can actually do may be causing unnecessary friction. A sample project could help them evaluate it first.

A more direct version uses 151 characters:

Asking new users to import data before they see the product may slow signup. Try a sample project first, then measure whether more people finish setup.

The edit keeps the problem, the proposed change and the uncertainty. It also makes the next step testable. There is now room for a supporting link without turning every word into an abbreviation.

That's the order to work in: remove the announcement of the thought, cut repeated context, then decide whether a second idea belongs in another post. Preserve the details that make the advice true. Removing “may” or “for new users” can save a few characters while making the claim much worse.

A final count should include the actual link, mention, hashtag or thread number you intend to publish. Getting the prose to exactly 280 and adding those afterward simply creates another editing pass.

When the idea needs more than 280 characters

A thread connects multiple posts, so a free account can explain a longer idea across several parts without making any individual post longer. A Premium longer post keeps the explanation in one item. Choose based on how the argument reads.

Use a short post for one observation that stands on its own. A thread suits a sequence of examples, stages or annotated screenshots when each part adds something distinct. A longer post is useful when the reader needs several paragraphs of context together to understand the conclusion.

Don't split a sentence at the character boundary just because it fits. End a thread segment at a meaningful stopping point. Someone encountering a later part should have enough context to understand what it contributes, even if they need to open the rest for the full argument.

X Articles are a separate publishing format with headings and richer formatting. Their eligibility and editor are separate from the ordinary longer-post feature, so an Article limit shouldn't be used to answer how much fits in a tweet.

More room doesn't establish better performance. Compare formats on the response you wanted: useful questions, clicks to the full work or relevant people following the discussion. The Twitter analytics guide explains how to keep those measures distinct. A maximum character count is a technical ceiling, not a writing target.

If your composer is enforcing a different limit

Separate a counting mismatch from a feature mismatch. If a draft with links and emoji gets different totals in two tools, investigate their counting rules. If an ordinary paragraph fits on X but a scheduler refuses anything above 280, investigate that tool's support for longer posts and the account connected to it.

For a Premium account, check that the subscription belongs to the account composing the post. Then compare the same draft in X's web composer and the client you're using. You can inspect the draft without publishing it. Keep the exact error or disabled-button state; “over the limit” and a different publishing failure need different fixes.

Don't assume a blue checkmark review is the reason longer posts aren't available. X lists longer posts separately from the checkmark and includes them in Basic. If the account and subscription are correct but the native composer still rejects a draft below the advertised limit, report the specific client and draft length to support.

For most everyday posts, the useful habit is simpler: write the complete thought, edit it for the reader, then count the exact version you're sending. If the necessary context still won't fit, give it another post or a longer format.

Platform documentation checked October 7, 2026. Sources are linked beside the relevant claims. Worked text counts were checked locally with X's open-source twitter-text library, version 3.1.0, using its default 280-character configuration. That check does not validate Premium eligibility or guarantee publication.