Social media character counter — all 9 platforms in one paste
Paste once and see counts for X, Instagram, LinkedIn, TikTok, Threads, Bluesky, YouTube, Facebook and Pinterest — with platform-accurate rules for URLs, emojis, and feed-truncation cuts. No signup, no upload.
Platform-specific character counters
Each platform has its own counting quirks. Open the dedicated page for the one you are writing for.
What this counter is for
Character counting isn't just "will this fit". These are the real jobs a cross-platform counter does.
Cross-posting one draft to multiple platforms
Writing once and publishing everywhere is the dream, but every platform has different rules. Paste a single draft, and see at a glance which platforms it fits, which need trimming, and where the truncation point clips your hook on each one.
Auditing bios, headlines, and profile fields
Profile fields are where most character-limit fights happen in practice — the 150-char Instagram bio, the 160-char X bio, the 220-char LinkedIn headline. Paste a bio draft and the counter shows fit across every platform's identity surface.
Writing without tripping the truncation line
Hard limits are easy. Truncation lines are the harder game — they're where the hook disappears behind a "…more" tap. Each platform page flags its visible-feed window so you can land the first thought cleanly above the cut.
Why this counter is different
Six decisions that separate this tool from the generic character counters at the top of Google.
All 9 platforms at a glance
Paste once and see live counts for X, Instagram, LinkedIn, TikTok, Threads, Bluesky, YouTube, Facebook, and Pinterest — side by side, with color-coded status pills showing what fits and what overruns.
Grapheme-aware counting
Emoji, flags, and skin-tone modifiers count as one character — the way the platforms actually count them. No more "my tweet shows 280 but posts as 285" surprises caused by naive length checks.
Platform-accurate URL rules
X wraps URLs as 23 characters, Bluesky as 22, Threads lets them be free, Instagram counts them at full length. The counter applies the right rule for each platform automatically.
Truncation-line preview
Instagram truncates at 125, LinkedIn at 140, Pinterest at 40. We flag the cut point so you can land the hook inside the visible window, not buried under a "…more" tap.
100% in your browser
Zero network round-trips. Your draft never leaves the page. Works offline once loaded — useful for drafting on flights or in countries that block half the APIs.
Free forever, no signup
No account wall, no rate limit, no watermark on anything. We built this because SocialCal users needed it — sharing it with everyone else costs us nothing extra.
Every platform's limits at a glance
All nine platforms, all the numbers you need, including the truncation points that matter more than the hard caps.
| Platform | Post / content | Profile / bio | Visible in feed | URL rule |
|---|---|---|---|---|
| X / Twitter | 280 free · 25,000 Premium | 160 | ~140 in feed | 23 chars per URL |
| 2,200 caption | 150 | ~125 before "…more" | Actual length | |
| 3,000 post · 110,000 article | 220 headline · 2,600 about | ~140 mobile / ~210 desktop | Actual length | |
| TikTok | 4,000 caption | 80 | ~55 in feed | Actual length (not clickable) |
| Threads | 500 post · 10,000 attachment | 150 | ~180 preview | URLs do not count |
| Bluesky | 300 graphemes | 256 | Full post visible | 22 chars per URL |
| YouTube | 100 title · 5,000 description | 1,000 channel About | ~60 title · ~125 description | Actual length |
| 63,206 post | 155 Page / 101 profile | ~477 desktop / ~240 mobile | Actual length | |
| 100 title · 500 description | 160 | ~40 title / ~60 desc | Actual length |
Platform quirks most counters miss
Generic character counters treat every platform the same. These are the seven rules that actually differ — and each one changes what fits.
Weighted character counting
X / Twitter onlyX counts non-BMP Unicode (most modern emoji) as 2 characters. All other platforms count by grapheme.
Fixed-length URL wrapping
X (23), Bluesky (22)X rewrites every URL to a 23-character t.co link. Bluesky counts every URL as 22 regardless of length.
Links free of charge
ThreadsThreads doesn't count URLs against the 500-character post limit at all — unusual among social platforms.
Strict grapheme enforcement
BlueskyBluesky enforces the 300-grapheme cap at the AT Protocol layer, so a post that passes a naive counter can still be rejected on post.
Text attachment for long-form
ThreadsThreads supports attaching up to 10,000 characters of long-form text to any 500-char post — a hidden blog-length canvas.
Stricter visible-feed truncation than raw limit
All except BlueskyNearly every platform trims the visible caption in the feed far below the hard character limit. The hook has to live inside that window.
Shared hashtag budget with caption
InstagramInstagram shares its 30-hashtag cap between the caption and the first comment — combined, not per-field.
Character counter FAQ
Does this counter count the same way each platform does?+
Yes. We use per-platform counting rules, not a single universal algorithm. X uses weighted character counting plus 23-character URL wrapping. Bluesky uses strict grapheme segmentation with 22-character URLs. Threads ignores URLs entirely. Instagram, LinkedIn, TikTok, YouTube, Facebook, and Pinterest all use grapheme counting with URLs at their actual length. If the counter says your post fits, the platform's compose box will agree.
Why does my post count differently on X than on Bluesky?+
Three reasons. First, X uses weighted length — non-BMP emoji (most modern ones) count as 2 instead of 1. Bluesky counts every emoji as 1 grapheme. Second, X has a 280-char cap (free tier) while Bluesky has 300. Third, X rewrites every URL to 23 characters and Bluesky to 22 — so a tweet at 280 with two URLs often fits comfortably on Bluesky at 298 graphemes. This counter handles all three differences automatically.
What is a grapheme, and why does it matter?+
A grapheme is what a reader sees as one character — a letter, a number, a full emoji. Internally, an emoji like 🧑🏽💻 is built from several Unicode code points and 4+ UTF-16 units, but it displays as one symbol. Counting by code point or UTF-16 unit would wildly over-count. Bluesky explicitly measures posts in graphemes. Instagram, TikTok, LinkedIn and most other platforms also count by displayed character, which is grapheme in practice.
Does the counter work offline?+
Yes — everything runs in your browser. The only network calls are initial page load and loading fonts. Once the page is open, you can disconnect the internet and the counter still works. No data is sent to our servers. You can verify in the browser network tab.
Will this counter match the number on the platform's own compose box?+
On X, Bluesky, Threads, Instagram, LinkedIn, TikTok, YouTube, Facebook and Pinterest — yes, it matches for essentially all real content. The one edge case is extremely unusual Unicode combinations (rare ZWJ sequences some platforms haven't updated emoji rendering for). For standard text, emoji, URLs, hashtags, and mentions, the numbers line up.
Is this counter really free?+
Yes, forever. No signup, no rate limit, no watermark on anything. SocialCal built this counter for our own composer — sharing it as a standalone free tool costs us nothing extra. If you eventually want to schedule across 10 platforms from a single calendar with the same counter built in, that is SocialCal's paid product.
Can I use this for languages other than English?+
Yes. Grapheme segmentation (via the browser's Intl.Segmenter API) handles any language correctly — Chinese/Japanese/Korean characters, Arabic joined text, Hindi matras, Thai clusters. The count reflects what a native reader of that language sees.
Does SocialCal have its own character counter?+
Yes — this exact counter is the one baked into SocialCal's cross-platform composer. When you write a post in SocialCal targeting X and Instagram and Threads simultaneously, each platform shows its own live count using the same logic this page uses. If you find yourself hitting the counter often, scheduling through SocialCal saves the copy-paste-check-post loop.
More Free Tools
Explore our full suite of free social media tools — no signup required.
Schedule across every platform with this counter built in
SocialCal's composer uses the same counter you just used — with per-platform drafts, auto-thread splitting when you go over, and one-click scheduling across X, Instagram, LinkedIn, TikTok, Threads, Bluesky, YouTube, Facebook, and Pinterest.
Start free trial