Character Counter for Mastodon Posts
Paste a post and content warning to estimate the character budget. Enter your instance’s own limits when they differ.
Use this local tool with JavaScript enabled. Your inputs stay in your browser.
How it works
Mastodon’s validator counts grapheme clusters after replacing recognized body URLs with a fixed reservation and remote mentions with their local @username. Content-warning text is prepended without an added separator and counts literally, including any URLs inside it. The documented default settings are 500 characters and 23 per URL; use your instance configuration when different. Remaining = maximum − counted length; negative means over. Counts are integers, with no rounding.
This local estimator recognizes ordinary HTTP(S) URLs and ASCII remote mentions. Its entity parser is not Mastodon’s complete server extractor: unusual domains, parentheses, punctuation and mention syntax can differ. Bare domains, embedded URL candidates without a valid start boundary, and remote-mention domains longer than 253 characters are counted literally. Whitespace-only bodies count as empty; content warnings still count literally. Confirm the final budget in your instance composer. Input is limited to 100,000 combined UTF-8 bytes.
Worked examples
URL reservation
Hello https://example.com counts as 6 text characters plus 23 for the URL: 29 used and 471 remaining at the default limit.
Warning and remote mention
Body @alice@example.org hi and warning CW count as 9 body characters plus 2 warning characters: 11 used and 489 remaining.
Frequently asked questions
Is every instance limited to 500?
Does a content warning count?
How do remote mentions count?
Does an emoji count as one character?
Why does my server disagree?
Sources
- Mastodon — entity extraction and domain limit (checked 2026-11-14)
- Mastodon — validator regression fixtures (checked 2026-11-14)
- Rails — blank string semantics (checked 2026-11-14)
- Mastodon — instance configuration (checked 2026-11-14)
- Mastodon — status length validator source (checked 2026-11-14)
- ECMA-402 — Intl.Segmenter (checked 2026-11-14)
Last reviewed 2026-11-14; next review due by 2027-02-12. The method is written out above so you can check our math.