X (Twitter) character counter

Counts with the same twitter-text library X publishes, so a link, an emoji or a Japanese sentence costs exactly what it will cost in the composer.

Runs in your browser.

Text and files stay on your device.

Maintained by the bundle.social team, last updated . How we check the numbers

Counting

Post (Free and Basic): 280 characters

Weighted characters…
Remaining…Limit 280
Hashtags0
Mentions0
Limit used…
Nothing to check yet

Platform limit: 280 X weighted characters (twitter-text). Source: X Developer Platform: Counting characters, read 1 November 2026.

Limit read from the platform's documentation

Weighted count: every URL is 23, emoji and CJK are 2 each, other Latin characters are 1.

bundle.social API limit: 280 characters. bundle.social checks X text in UTF-16 units (280 without Premium, 25,000 with it), so links count at full length there and CJK counts 1 per character. The UTF-16 figure under More figures is the one it checks.

Words0
Lines0
More figures
Graphemes0Characters as you see them
Code points0
UTF-16 units0
UTF-8 bytes0
Paragraphs0

How to use

  1. 01

    Pick the account type

    Free and Basic accounts get 280 weighted characters. Premium accounts can write longer posts; choose that field if you are posting from a subscribed account.
  2. 02

    Paste the post

    The weighted count loads the counting library on first use, then updates on every keystroke. Links collapse to 23 regardless of their length.
  3. 03

    Watch emoji and non-Latin text

    Every emoji, including flags and family sequences, costs 2. Chinese, Japanese, Korean and most other non-Latin scripts cost 2 per character.
  4. 04

    Trim and copy

    When Remaining goes negative the status tells you by how much. Shorten the text, copy it and paste it into X or your scheduler.

How does X count characters?

X does not count code points. Characters in a few Unicode ranges (basic Latin, Latin-1, general punctuation and a handful of others) weigh 1; everything else weighs 2, and every emoji weighs 2 even when it is a sequence of several code points joined with zero-width joiners. Every URL X recognises is replaced with a t.co link and counted as 23. Before counting, X normalises the text to NFC, so an accented letter typed as a base letter plus a combining accent is still one character.

Limitations

  • The count mirrors twitter-text 3.1.0. X can change its configuration (for example which ranges weigh 2) before the library catches up.
  • Replies: the @mentions X fills in at the start of a reply do not count, but the tool cannot tell which mentions X will fill in, so it counts every mention you type.
  • Media, polls and quote posts attached in the client count as 0 characters; this tool only counts the text.
  • bundle.social's API checks X text by UTF-16 length, not by this weighted count: links count at full length there. The UTF-16 figure under More figures shows that number.
  • The Premium long-post figure could not be re-read on the X Help Center on the check date and is marked not verified. It matches the limit bundle.social applies to Premium accounts.

bundle.social is not affiliated with, endorsed by, or sponsored by Instagram, Facebook, Meta, X, TikTok, LinkedIn, YouTube, Threads, Bluesky, Pinterest or any other platform named here. Platform names and logos belong to their owners and are used only to describe compatibility.

FAQ

What is the X (Twitter) character limit?

An X post can be 280 characters on Free and Basic accounts, counted with X's weighting: every link counts 23 and every emoji or CJK character counts 2. Source: X Developer Platform, Counting characters, read 1 November 2026. Premium accounts can post up to 25,000, a figure that could not be re-read on the X Help Center on the check date and is marked not verified. bundle.social checks the plain UTF-16 length instead, so links count at full length there.

Why does my 300-character post with a link fit in 280?

X counts every link as 23, whatever its length, so a 60-character URL takes 37 fewer characters than a plain count would give it.

Do hashtags and cashtags count?

Yes, normally. The # or $ and the tag text each weigh 1 like any other Latin character.

Does a family emoji with four people count as 8?

No. Since X changed its emoji rule in twitter-text, every emoji counts as 2, including skin-tone and zero-width-joiner sequences. The tool reflects that.

What is the Premium limit and why is it marked not verified?

Premium subscribers can post up to 25,000 weighted characters, which is the figure bundle.social enforces for Premium accounts. On the check date the X Help Center page refused automated access, so the number could not be re-read on an official page. The counter labels it not verified.

Is this the same count bundle.social uses when publishing to X?

No. bundle.social checks the raw text length in UTF-16 units against 280 for accounts without Premium and 25,000 for Premium accounts, so a link counts at its full length there and a CJK character counts 1. X applies its own weighted rule when the post is created. A post can pass one check and fail the other, so compare the weighted figure here with the UTF-16 figure under More figures.

Related tools and guides

Publish what you prepared

bundle.social schedules and publishes posts to 15 networks from one dashboard or one API. The free plan needs no card.