Composer & AI

How each network counts characters

Every network's limit in one place — plus why the counter disagrees with a plain character count on Bluesky, Mastodon and X.

Updated · 4 min read

The composer's counter is not counting the letters in your post. It counts the way the network you are posting to counts, which is different on almost every network and is the reason a post can look fine in one editor and be rejected by the API.

The limits

  • Bluesky — 300 characters
  • X — 280 characters
  • Mastodon — 500 characters by default, but each server sets its own and many raise it
  • Threads — 500 characters
  • Pinterest — 800 characters
  • Instagram — 2,200 characters
  • TikTok — 2,200 characters
  • LinkedIn — 3,000 characters
  • YouTube — 5,000 bytes in the description (fewer characters with emoji or non-Latin text)
  • Facebook — 63,206 characters

Mastodon counts every link as 23 characters no matter how long the URL is, and ignores the domain part of a mention entirely — so @someone@a-very-long-instance.example costs the same as @someone. A post full of links has far more room than a plain character count suggests. Both figures are per-server settings: check your Mastodon server's actual limit to see what yours allows.

X does something similar but not identical: links count as a fixed weight, and characters from scripts such as Chinese, Japanese and Korean count double.

Why emoji can cost more than one character

Bluesky counts grapheme clusters — what a human sees as one character. A family emoji is a single character to Bluesky even though it is built from several code points joined together. Naive editors count the underlying units and tell you a post is far longer than it is.

Bluesky also enforces a separate byte ceiling underneath the 300-character limit. For a long post with many emoji, that byte limit is usually what you hit first.

When a post is too long anyway

  • Write a thread. On Bluesky, Mastodon, X and Threads you can split a post into explicit segments, each with its own media, published as a real reply chain.
  • Give one channel its own text. Write a short version for Bluesky and a long one for LinkedIn in the same post rather than compromising on both.
Still stuck?
We usually reply within one business day.
Contact support

Guides and tools