calmposts

Threads character counter

Threads gives a text post 500 characters, but an emoji is not one of them: it counts as many as it takes bytes. A thumbs-up is 4, a red heart 6, a family 18. Paste a post to see its length the way Threads sees it.

0 / 500 500 left

Characters as you see them
0
Links
0
Goes out as
0 posts

Schedule this post in calmposts

Free trial. After you sign up or sign in, the text opens in the composer as a new post, and nothing is saved or published until you say so.

Threads is coming to calmposts soon. Until then, your post can wait as a draft.

A worked example

A post with a few emoji, a numbered list and a link. Look at the Threads row: the emoji make the difference.

Three things we learned shipping a scheduler 🧵👇 1. People read a thread to the end when its first line is clear. 2. Nobody misses the numbering. 3. A ❤️ costs more characters than you think. More: calmposts.com/blog

NetworkCountsGoes out as
X224 / 2801 post
Bluesky216 / 3001 post
Threads227 / 5001 post
LinkedIn216 / 3,0001 post

Threads counts emoji in bytes

Meta's documentation for the Threads API is short on this: text posts are limited to 500 characters, and emoji are counted by the number of their UTF-8 bytes. Letters, digits, spaces and punctuation count 1 each. A single emoji usually counts 3 or 4, and one built from several pieces counts a good deal more.

So 👍 counts 4, because it takes 4 bytes. 👍🏽, a thumbs-up with a skin tone, is two symbols in one and counts 8. ❤️, the red heart most keyboards insert, is a heart followed by an invisible variation selector, 6 in all. A flag is two regional letters of 4 bytes each, so 8, and a family of three joined by zero-width joiners counts 18.

Everything that is not an emoji counts the way you see it, as on Bluesky: a Chinese or Japanese character counts 1, a Cyrillic letter 1, and an accented letter 1, whether it was typed as one character or as a letter and a combining accent. calmposts normalises the text to NFC before it counts.

Why a post full of emoji runs out early

A post that is mostly words barely notices the rule. A post that leans on emoji does: ten emoji with skin tones take 80 of the 500, and five flags at the end of a travel post take 40.

The counter shows the Threads count with the characters as you see them under it. The gap between the two numbers is what your emoji cost. If a post is a little over, the emoji are usually the cheapest place to cut.

The same post on Threads and elsewhere

Take a post of 400 letters with twelve thumbs-up emoji in skin tones. Bluesky counts it 412, since each emoji is one character there. X counts 424, since each emoji weighs 2, and that is over X's 280 anyway. Threads counts 496, since each of those emoji takes 8 bytes: it still fits, with four characters to spare.

Without emoji the order changes: Threads' 500 is the most room of the three networks that have threads, and a text that fits it is often two posts on X and Bluesky. calmposts counts each channel against its own network as you write, so you see the difference before you save.

Links count in full, five at most

A link counts every character it has; Threads does not shorten links in the count the way X does. A bare domain such as calmposts.com counts 13, a long address with tracking parameters as much as it is long.

Threads also refuses a post with more than five different links. calmposts checks that before it sends anything to Meta, and the counter warns you as soon as the text holds a sixth.

Spaces, line breaks and mentions

A space counts 1 and a line break 1, so a blank line between two paragraphs costs 2. @mentions and hashtags count as written, like any other text.

Numbered lists cost what they look like: «1. » is three characters, digit, full stop and space. Emoji used as bullets cost their bytes, so a list of five points marked with ✅ spends 15 characters on the marks alone.

Threads on Threads

On Threads a thread is what the name says: a post, then replies to it from the same account. calmposts sends a long text that way, each part a reply to the one before, up to 25 parts, and each part has its own 500.

Meta lets one profile publish 250 posts in 24 hours through the API, and every part of a thread is one of them. A ten-part thread a day is far inside that.

The counter is the calmposts composer's own code, built for this page, so the count you see is the count the composer shows and the server checks.

What counts how much on Threads

Each figure is computed by calmposts' counting code for Threads.

TextWhat it isCounts
HelloLatin letters5
你好Chinese: 1 each2
👍An emoji: 4 bytes, counts 44
👍🏽With a skin tone: 88
❤️A red heart with its variation selector6
🇩🇪A flag: two regional letters8
👨‍👩‍👧A family: three people, two joiners18
🧵👇Two emoji8
https://example.com/a/very/long/path?with=queryA long link, in full47
calmposts.comA bare domain, in full13
…An ellipsis: not an emoji, 11
one twoA line break counts 17

Post limits side by side

What one post takes on each network calmposts posts to, and how it is counted there.

NetworkOne postHow characters countLinksThreads
X280 characters; 25,000 with X PremiumBy weight: most letters 1, emoji and CJK characters 223 each, whatever their lengthA chain of replies, up to 25 posts in calmposts
Bluesky300 characters and 3,000 bytesGraphemes: each character you see counts 1As written, every characterA chain of replies, up to 25 posts in calmposts
Threads500 charactersGraphemes, but an emoji counts its UTF-8 bytesAs written; at most 5 different linksA chain of replies, up to 25 posts in calmposts
LinkedIn3,000 charactersGraphemes: each character you see counts 1As written, every characterNone: a thread goes out as one post

Common mistakes

Counting emoji as one character

Most counters do, and Threads does not. A post a generic counter calls 495 can be well over 500 on Threads.

Decorating with flags and hearts

Each flag costs 8 and each ❤️ 6. Use them where they say something, not in a row at the end.

Pasting more than five links

Threads refuses a post with more than five different links. Move the rest into a reply, or into the next part of the thread.

Assuming X's rules

On X a link counts 23 and an emoji 2. On Threads a link counts in full and an emoji by its bytes, so the same text has a different length on each.

Writing one long block

500 is the limit, not the goal. A long block of text is hard to read on a phone; a thread of three posts that each make one point often reads better.

What happens when a post is over 500

Threads refuses a text post over 500 characters, and calmposts never sends one.

When a text is longer than one Threads post, calmposts sends it as a thread. The composer cuts it at the strongest break that fits within 500 — a blank line, then a line break, then the end of a sentence, then a space — and publishes each part as a reply to the one before. Nothing is added to the parts.

You see every part with its count before you save. The thread splitter shows the same text cut for X and Bluesky next to Threads, so you can see where they differ.

Thread splitter

How to count a post for Threads

  1. Paste your post. Type or paste the text; the count updates as you type.
  2. Compare the two numbers. The big number is the Threads count; under it are the characters as you see them. The difference is what your emoji cost.
  3. Check the links. The counter shows how many links it found and warns past five different ones.
  4. Schedule it. Press «Schedule this post in calmposts» to continue in the composer.

Questions about counting on Threads

What is the character limit on Threads?

500 characters for a text post. Letters, digits, spaces and punctuation count 1 each; an emoji counts as many characters as it has UTF-8 bytes.

How many characters does an emoji take on Threads?

Its size in UTF-8: 👍 is 4, ❤️ 6, 👍🏽 8, a flag 8, a family of three 18.

Do links count on Threads?

Yes, in full. A post can also hold at most five different links.

Do hashtags and mentions count?

Yes, as written, like any other text.

Can I post a thread to Threads with calmposts?

Yes. A long text goes out as a chain of replies, up to 25 parts of 500 characters each. Meta allows 250 posts per profile in 24 hours through the API, and each part counts as one.

Is this the count calmposts uses?

Yes, it is the composer's own code. calmposts checks every Threads post with the same rule when it is saved and before it is sent.

More from calmposts

Write once, post everywhere

calmposts counts your post for every network as you type, turns a long text into a thread where a network has threads, and sends each part on time through the networks' official APIs.

See the plans