Tools
Free tool / no signup

Caption Emoji Counter

Count the emoji in a caption, list each with its name, see what it costs on X, TikTok, Bluesky, Mastodon and Instagram, and hear how a screen reader reads it.
0
Emoji
in total
0
Different
unique
0
Density
per 100 characters
0
Characters
as you see them

Your emoji

No emoji found yet. A bare text heart or copyright sign without the emoji selector is not counted.

What each network charges

  • X0 / 280weighted characters

    Emoji use 0 of those. Cost per emoji: 2 for every emoji, however complex.

    Every emoji weighs 2, including flags, families and skin tones, per X's counting documentation. Other text weighs 1 or 2 by character range. Links are not special-cased here.

  • TikTok0 / 2,200UTF-16 units

    Emoji use 0 of those. Cost per emoji: 2 for most emoji, 4 for a flag, 7 to 11 for a family.

    TikTok's Content Posting API measures the caption in UTF-16 runes, so an emoji outside the basic plane costs 2 and joined sequences cost more.

  • Bluesky0 / 300graphemes

    Also capped at 3,000 UTF-8 bytes: 0 used, emoji take 0.

    Emoji use 0 of those. Cost per emoji: 1 for every emoji.

    The post schema caps text at 300 graphemes, so any emoji you can see as one picture costs 1. The same schema also caps text at 3000 UTF-8 bytes, and a family emoji alone is 25 bytes, so emoji-heavy posts can hit the byte cap first.

  • Mastodon0 / 500graphemes

    Emoji use 0 of those. Cost per emoji: 1 for every emoji.

    The default limit is 500 and each server may change it. The server counts grapheme clusters, so one picture costs 1.

  • Instagram0 / 2,200characters (unverified)

    Emoji use 0 of those. Cost per emoji: unverified, shown as 1.

    The caption maximum is 2200 characters, but Instagram does not publish how it counts an emoji. This is an estimate that counts each emoji picture as 1. Unverified.

To see where a post is cut on Threads, Bluesky and Mastodon, use the character limit checker. This page is about the emoji themselves.

Screen reader read-out

An approximation: each emoji is replaced by its Unicode name. Real screen readers vary.

Your caption, as spoken, appears here.

How to use the Caption Emoji Counter

  1. Paste your caption. Type or paste any text. Flags, families, skin tones and keycaps are all recognised. Nothing leaves your browser.
  2. Read the tally. See the total emoji, how many are different, and how many appear per 100 characters.
  3. Check the network costs. Compare how X, TikTok, Bluesky, Mastodon and Instagram count the same text and how much of the limit the emoji use.
  4. Preview the read-out. The screen reader line replaces each emoji with its name so you can hear whether the sentence still makes sense.
  5. Strip if needed. Use the strip button to copy the caption with all emoji removed and the leftover spaces tidied.

How emoji are counted and read

What the tool checks

Each emoji is found as a whole cluster, so a family is not split into four people and a flag is not split into two letters. The list shows each different emoji once with its count, its name when it is in the built-in table of roughly 390 common emoji, and otherwise its Unicode code points. Density is emoji per 100 characters, where a character is one grapheme.

The screen reader line is a preview. Each emoji is replaced by its Unicode name, such as grinning face, and read in the flow of the sentence. Real screen readers differ in wording and settings, so use it to spot sentences that fall apart when the emoji are spoken, for example several in a row.

The network rules, with sources

X: every emoji weighs 2 against a limit of 280, per docs.x.com on counting characters, checked October 2026. TikTok: the video caption maximum is 2200 UTF-16 runes in the Content Posting API direct post reference, checked October 2026. Bluesky: 300 graphemes and 3000 UTF-8 bytes in the post schema. Mastodon: a default of 500, set per server, with grapheme counting by the server. Instagram: 2200 characters in the Graph API media reference, with the way emoji are counted not published, so it is marked unverified.

Limitations

New emoji appear every year and your device or browser may draw some as boxes, which does not change the count. Links, mentions and hashtags are not given special weights here, so use the character limit checker or the character counter for those rules. The name table is compact, so rarer emoji show code points instead.

Frequently asked questions

How does the tool decide what counts as one emoji?

It splits your text into the characters a reader sees (grapheme clusters) using the browser's Intl.Segmenter, then counts each cluster that is drawn as an emoji. A family with several people joined together, a flag made of two letters, a thumbs up with a skin tone and a number in a keycap box are each one emoji. If the browser lacks Intl.Segmenter the tool uses its own splitter for the same cases.

Why is a plain heart sometimes not counted?

Some symbols exist as both a text character and an emoji. The heart is drawn as a colour emoji only when followed by the emoji variation selector, which most keyboards add. A bare text heart, a copyright sign or an arrow without it is not counted, because most apps draw it as plain text.

How many characters does an emoji cost on X?

X's counting documentation says every emoji counts as 2 characters, whatever its complexity, against the 280 limit. That includes a family, a flag and a skin tone emoji. Other characters weigh 1 or 2 depending on their range.

Why does TikTok count the same emoji as 2 or more?

TikTok's Content Posting API measures the caption in UTF-16 units against a limit of 2200. An emoji outside the basic plane takes 2 units, a flag takes 4 and a family of four takes 11. Bluesky and Mastodon count graphemes, so the same emoji costs 1 there.

Is the Instagram figure exact?

No. Instagram documents a 2200 character caption maximum but does not say how it counts an emoji, so the tool labels the rule unverified and counts each emoji picture as one. Leave a small margin if you are close to the limit.

How is this different from the character limit checker?

The Threads, Bluesky and Mastodon character limit checker is about limits: where each network cuts your text and how graphemes, code points and bytes differ. This tool is about the emoji themselves: which ones you used, how many, their names, the density and how a screen reader speaks them. Use that one to fit a limit and this one to audit the emoji.