Free Social Media Character Counter
Type or paste a post and see, as you write, whether it fits on X, LinkedIn, Instagram, Threads, TikTok, YouTube and Bluesky. Each platform is counted the way its own documentation says, so emoji, links and non-Latin text come out right.
At a glance
- The same post counts differently on each platform. X weighs emoji and links; Threads counts emoji bytes; Bluesky counts what you see.
- Limits: X 280, Threads 500, Bluesky 300, LinkedIn 3,000, Instagram and TikTok 2,200, YouTube titles 100.
- Instagram also caps hashtags (30) and @ tags (20); Threads caps links at 5.
- Lead with the point: feeds hide most of a long post behind "more".
Social media character limits at a glance
Every limit below comes from the platform's own help or developer documentation, checked on 23 October 2026. Many lists online repeat outdated numbers, so we went to the source for each one.
| Platform | Field | Limit | How it's counted | Source |
|---|---|---|---|---|
| X | Post | 280 | Weighted: emoji and CJK = 2, links = 23 | X docs |
| Post | 3,000 | Characters | LinkedIn Help | |
| Caption | 2,200; 30 hashtags; 20 @ tags | Characters | Meta docs | |
| Threads | Post | 500; 5 links | Characters; emoji = UTF-8 bytes | Meta docs |
| TikTok | Caption (via API) | 2,200 | UTF-16 units | TikTok docs |
| YouTube | Title / description | 100 / 5,000 | Characters / bytes | YouTube API |
| Bluesky | Post | 300 (and 3,000 bytes) | Graphemes: characters as you see them | Bluesky schema |
Why one post gets different counts
Because "a character" means different things to different software. What you see as one character can be several pieces underneath. A flag emoji is two code points; a family emoji can be seven joined together. The Unicode standard calls the visible unit a grapheme cluster (UAX #29), and browsers can split text that way with Intl.Segmenter, which is what this counter uses.
| What you type | X | Threads | TikTok | Bluesky |
|---|---|---|---|---|
| A letter, digit or space | 1 | 1 | 1 | 1 |
| 🚀 (one emoji) | 2 | 4 (its UTF-8 bytes) | 2 | 1 |
| 日 (a Chinese character) | 2 | 1 | 1 | 1 |
| A 90-character link | 23 | 90 | 90 | 90 |
X's rules are public in its counting configuration: code points in four ranges, covering Latin, Greek, Cyrillic and common punctuation, weigh 1, and everything else weighs 2, against a 280 limit. Threads' documentation says emoji count as their UTF-8 bytes. TikTok's API measures in UTF-16 "runes". Bluesky's post schema caps both graphemes (300) and bytes (3,000).
Worked example: one launch post, four platforms
We counted this post with the tool:
| Platform | Count | Limit | Why |
|---|---|---|---|
| X | 80 | 280 | The 77-character link counts as 23; the rocket counts as 2 |
| Threads | 136 | 500 | The full link counts; the rocket counts as its 4 bytes |
| Bluesky | 133 | 300 | Characters as you see them: the rocket is 1 |
| 133 | 3,000 | Plain characters, link at full length |
It fits everywhere, but notice the gap: on X the long link costs 23 characters, on Bluesky and Threads it costs its full length. For platforms that count links in full, a shorter URL buys room for words. Tag it with the UTM Builder first so you can still see which post brought the visit.
Writing to each limit
X: 280
Write the idea in one sentence, then cut. Links are cheap on X (23 characters each), but emoji cost two. For longer ideas, a short thread of posts that each stand alone works better than cramming.
LinkedIn: 3,000
Room for a full story, but only the first lines show before "see more". Our guide to formatting LinkedIn posts covers hooks and line breaks.
Instagram: 2,200
The caption supports the visual. Put the key line first, keep hashtags under the cap of 30, and avoid tagging more than 20 accounts in one caption.
Threads: 500
Short and conversational. Watch emoji: five of them can cost 20 or more characters. At most five links per post.
TikTok: 2,200
The caption is read after the video starts, so the video carries the hook. Use the caption for context and searchable words.
YouTube: title 100, description 5,000 bytes
Front-load the title with the words people search; long titles get cut in results. In the description, the first two lines matter most.
Bluesky: 300
Counted as you'd count by eye, so emoji are cheap, but links count in full and aren't shortened.
One message, every platform: a quick workflow
- Write the long version first, for LinkedIn, and paste it here.
- Cut to 500 for Threads, then to 300 for Bluesky and 280 for X, watching each row turn green.
- Check the opening line in the preview: it must make sense on its own.
- Swap long links for tagged short ones where links count in full.
- Schedule them across the week rather than all at once; our Social Media Calendar Template spreads them evenly.
- Check the link preview with the Open Graph Checker before posting.
Bold "fonts", accents and other languages
The "bold" and "italic" letters you can paste into posts aren't fonts; they're maths symbols, and they cost double on X. Generators that turn text into 𝗯𝗼𝗹𝗱 or 𝘪𝘵𝘢𝘭𝘪𝘤 swap each letter for a character from Unicode's mathematical alphanumeric block. They sit outside X's weight-1 ranges, so each one counts as 2 there, they take 4 bytes each toward YouTube's and Bluesky's byte limits, and search features and screen readers may not read them as the words they look like. Use them for a word or two, never a whole post.
Accented letters such as é, ü or ñ count as one character on every platform here. Text in Chinese, Japanese or Korean counts as 2 per character on X, which is why a full X post in those languages holds about 140 characters. Arabic, Hebrew, Cyrillic and Greek letters fall inside X's weight-1 ranges and count as 1. If you post in several languages, paste each version here rather than assuming the English count carries over.
Opening lines that survive the cut
Whatever the limit, readers decide in the first line. A few patterns that make the opening carry the post:
| Pattern | Example | Works best on |
|---|---|---|
| A number and a result | We cut our page load time from 4.1 s to 1.3 s. Here's the one change that did it. | LinkedIn, X |
| A direct answer | Yes, you can use the same caption on Instagram and TikTok. Change the first line. | Threads, Bluesky |
| A mistake you made | I posted every day for a month and gained 12 followers. What changed after that: | |
| The question your customers ask | How long should a product video be? Shorter than you think. | TikTok, Instagram |
Each of these makes sense alone, which matters because the feed may show nothing else. Write the opening last: once the post is done, pick its most specific sentence and move it to the top.
Common character-count mistakes
- Trusting your word processor's count: it counts letters, not platform rules, so emoji-heavy or multilingual posts come out wrong.
- Forgetting hashtags and mentions count: they're part of the text everywhere.
- Pasting a long tracking link into Threads or Bluesky: it can use a third of the limit.
- Burying the point: anything after the first line or two is hidden until someone taps "more".
- Using old limits: limits change, so check against the source when a post is close to the line.
What the character counter can't check
- Paid tiers: some platforms allow longer posts for subscribers; the counter uses the standard limits.
- In-app differences: TikTok's app may accept longer captions than its API's 2,200. When in doubt, the app's composer has the final word.
- Where the feed cuts off: platforms don't publish it and it varies by device, so the preview shows your opening line rather than a guessed cut-off.
- Link detection: the counter recognises full links and common domain endings; unusual endings may be counted as plain text.
Social media character limits on one map
Your next step
Paste your next post before you schedule it, cut it until every platform you use shows green, and make sure the opening line works on its own. Then plan the week's posts so each platform gets a version written for it.
Get posts written to every platform's limit
X Owl researches your topic on the live web and writes a six-part X thread with a word limit for every single part, all checked before you see it.
Frequently asked questions
How many characters can a post on X have?
280 for a standard post. X counts most Latin letters and punctuation as one, but emoji and Chinese, Japanese or Korean characters as two, and every link as 23 however long it is. This counter applies the same weights.
What is the LinkedIn post character limit?
3,000 characters, according to LinkedIn Help. Only the opening lines show before "see more" in the feed, so put the point of the post first.
How long can an Instagram caption be?
2,200 characters, with at most 30 hashtags and 20 @ tags, per Meta's Instagram developer documentation. The counter warns you if you go over either cap.
What is the Threads character limit?
500 characters per post. Meta's Threads documentation says emoji count as their size in UTF-8 bytes, so one emoji can use four or more characters of the limit, and a post can contain at most 5 links.
How long can a TikTok caption be?
2,200 characters when a video is posted through TikTok's Content Posting API, which scheduling tools use. The app itself may allow longer captions; check the composer if you post directly.
What are the YouTube title and description limits?
100 characters for a title and 5,000 bytes for a description, per the YouTube Data API. Bytes matter for non-Latin text and emoji, which take two to four bytes each.
How many characters can a Bluesky post have?
300 graphemes, meaning characters as you see them, and no more than 3,000 bytes in total, per Bluesky's post schema.
Do emoji count as one character?
It depends on the platform. An emoji is one visible character but several code units: X counts it as 2, Threads counts its UTF-8 bytes (often 4), TikTok counts UTF-16 units (often 2) and Bluesky counts it as 1. That's why the same post can fit on one platform and not another.
Do links count toward character limits?
On X every link counts as 23 characters. On the other platforms a link counts as its full length, so shorten long tracking links or put them in a comment or bio.
Is my text saved?
No. The counter runs in your browser and nothing is sent anywhere.
Sources
- Counting characters, X Developer Platform, 2026
- twitter-text configuration v3 (character weights), X / GitHub, 2026
- Post and share updates, LinkedIn Help, 2026
- IG User Media: caption limits, Meta for Developers, 2026
- Threads API: posts, Meta for Developers, 2026
- Content Posting API: direct post reference, TikTok for Developers, 2026
- YouTube Data API: videos resource, Google for Developers, 2026
- app.bsky.feed.post lexicon, Bluesky / GitHub, 2026
- Unicode Text Segmentation (UAX #29), Unicode Consortium, 2025
- Intl.Segmenter, MDN Web Docs, 2026
Agents that do this for you
Open source on GitHub