Word Count & Character Limits on Every Social Platform (2025 Cheat Sheet)
Platform character limits change. They get relaxed, expanded, hidden behind paid tiers, or quietly tightened. Most "cheat sheets" floating around are out of date the month after they're published, and many cite the wrong number for at least one platform.
This is the reference I keep updated. Every number here is verified against each platform's official developer documentation or help center as of January 2025. Where limits differ between free and paid tiers, mobile and web, or by region, I've noted it. Where the platform's enforcement is fuzzy (Discord, Reddit), I've explained how.
Use it as a desk reference. If you're building a content tool that previews posts on multiple platforms, these are the limits to validate against.
The Master Reference Table
| Platform | Field | Character limit | Notes |
|---|---|---|---|
| X (Twitter) | Standard post | 280 chars | Free tier |
| X | Premium / Verified post | 25,000 chars | X Premium / Premium+ |
| X | Reply | Same as post | 280 / 25,000 |
| X | Direct message | 10,000 chars | Both sender and receiver |
| X | Display name | 50 chars | |
| X | Bio | 160 chars | |
| X | Handle (username) | 15 chars | Alphanumeric + underscore |
| Threads | Post | 500 chars | Text; 10 carousel items max |
| Threads | Bio | 150 chars | |
| Bluesky | Post | 300 chars | Grapheme-based (not bytes) |
| Bluesky | Display name | 640 chars | |
| Bluesky | Bio | 256 chars | |
| Mastodon | Post (default) | 500 chars | Server-configurable; some allow up to 99,999 |
| Instagram | Caption | 2,200 chars | Truncates at 125 with "more" |
| Instagram | Bio | 150 chars | |
| Instagram | Username | 30 chars | |
| Instagram | Hashtag limit | 30 per post | Captions + comments combined |
| Instagram | DM (text) | 1,000 chars | |
| Instagram | Reels caption | 2,200 chars | Same as feed caption |
| Instagram | Story text element | ~1,000 chars | Practical limit, not enforced |
| TikTok | Caption | 2,200 chars | Increased from 300 in 2023 |
| TikTok | Username | 24 chars | |
| TikTok | Bio | 80 chars | |
| TikTok | DM | 1,000 chars | |
| TikTok | Video title (advertising) | 100 chars | |
| Facebook | Status update | 63,206 chars | Rarely recommended; effective limit ~477 chars |
| Facebook | Page post | 63,206 chars | Same as personal |
| Facebook | Comment | 8,000 chars | |
| Facebook | Page name | 75 chars | |
| Facebook | Page username | 50 chars | |
| Facebook | Page description (About) | 255 chars | Short description field |
| Facebook | Event name | 75 chars | |
| Facebook | Event description | 5,000 chars | |
| LinkedIn | Post | 3,000 chars | Includes spaces |
| LinkedIn | Article (publishing) | ~125,000 chars | No formal cap; very long posts allowed |
| LinkedIn | Headline | 220 chars | Below name |
| LinkedIn | About section | 2,600 chars | |
| LinkedIn | Summary (legacy field) | 2,000 chars | |
| LinkedIn | Experience position title | 100 chars | |
| LinkedIn | Experience description | 2,000 chars | Per position |
| LinkedIn | Comment | 1,250 chars | |
| LinkedIn | DM | 8,000 chars | |
| LinkedIn | Company page tagline | 120 chars | |
| LinkedIn | Company page description | 2,000 chars | |
| YouTube | Video title | 100 chars | Truncates at ~70 in search |
| YouTube | Video description | 5,000 chars | First 125 chars in preview |
| YouTube | Comment | 10,000 chars | |
| YouTube | Channel name | 100 chars | |
| YouTube | Channel description | 1,000 chars | |
| YouTube | Playlist title | 150 chars | |
| YouTube | Playlist description | 5,000 chars | |
| YouTube | Community post (text) | 500 chars | |
| YouTube Shorts | Title | 100 chars | Same as video |
| YouTube Shorts | Description | 5,000 chars | Effectively invisible; ~100 visible |
| Pinterest | Pin title | 100 chars | |
| Pinterest | Pin description | 500 chars | |
| Pinterest | Board name | 180 chars | |
| Pinterest | Board description | 500 chars | |
| Pinterest | Profile name | 30 chars | |
| Pinterest | Bio | 160 chars | |
| Reddit | Post title | 300 chars | Most subreddits enforce ~250 |
| Reddit | Self-post body | 40,000 chars | Most subreddits cap lower |
| Reddit | Comment | 10,000 chars | |
| Reddit | Subreddit name | 20 chars | |
| Reddit | Subreddit description | 500 chars | Sidebar |
| Discord | Message | 2,000 chars | Free; 4,000 for boosted/nitro |
| Discord | Server name | 100 chars | |
| Discord | Channel name | 100 chars | |
| Discord | Channel topic | 1,024 chars | |
| Discord | Role name | 100 chars | |
| Discord | Username (display) | 32 chars | |
| Discord | Username (handle) | 32 chars | Old discriminator system removed 2024 |
| Discord | Bio | 190 chars | |
| Discord | Embed title | 256 chars | Bot-driven embeds |
| Discord | Embed description | 4,096 chars | |
| Discord | Embed field name | 256 chars | Up to 25 fields per embed |
| Discord | Embed field value | 1,024 chars | |
| Snapchat | Caption | 250 chars | On snaps |
| Snapchat | Display name | 30 chars | |
| Snapchat | Bio | 80 chars | |
| WhatsApp | Status | 700 chars | 24-hour text status |
| WhatsApp | Display name | 25 chars | |
| WhatsApp | Group name | 100 chars | |
| WhatsApp | Group description | 512 chars | |
| WhatsApp | Message | 65,536 chars | Practical limit; long messages render oddly |
| Telegram | Message | 4,096 chars | Includes media captions |
| Telegram | Channel name | 255 chars | |
| Telegram | Bio | 70 chars | Personal accounts |
| Telegram | Username | 32 chars | Alphanumeric + underscore |
| Twitch | Channel title | 140 chars | |
| Twitch | Display name | 25 chars | |
| Twitch | Bio | 300 chars | |
| Quora | Question | 250 chars | Title field |
| Quora | Question details | 1,000 chars | Older field, deprecated but functional |
| Quora | Answer | No fixed limit | Practical limit ~50,000 chars |
| Quora | Bio | 1,000 chars | |
| Substack | Newsletter post | No limit | Sent as email; email clients may truncate previews |
| Substack | Post title | 240 chars | |
| Substack | Subtitle | 240 chars | |
| Substack | Publication description | 240 chars | |
The Limits That Actually Affect Engagement
Knowing the maximum is one thing. Knowing where the practical limits live is another. Most platforms truncate, fold, or hide content well before you hit the hard ceiling. Here's what actually happens to your post at different lengths.
X (Twitter): The 280-character game
The 280-character limit (doubled from 140 in November 2017) was the result of internal Twitter analysis showing that 9% of tweets in Japanese hit the limit, while 9% of English tweets did. The Japanese had headroom; the English didn't. Doubling the limit evened the field.
X's own data, published at the time of the change, showed that tweets between 100 and 280 characters got more engagement (likes, replies, retweets) than very short or very long tweets. The sweet spot is around 240 characters — enough to develop a thought, not so much that you exhaust the reader's attention.
For Premium subscribers, the 25,000-character limit turns a tweet into a blog post. In practice, the engagement pattern inverts: very long X posts get far less interaction than short ones, with most engagement coming from the first 100–150 characters visible before the "show more" expansion. If you're using long tweets, treat them like blog posts — the click-through to expand is the real metric.
Instagram: The 125-character truncation point
Instagram captions can run to 2,200 characters, but the feed truncates them at 125 characters with a "more" button. The user has to actively expand to read past that point. According to internal Instagram data cited by Hootsuite and Sprout Social, captions between 138 and 150 characters get the highest engagement.
The practical pattern: front-load the hook in the first 125 characters. The first sentence should be self-sufficient — it's the only sentence most viewers will read.
The 30-hashtag limit per post (combining caption and first comment) is a hard ceiling. Instagram's algorithm officially ignores hashtags past 30 — the post won't publish. Use of all 30 is no longer rewarded; the platform's algorithm now responds best to 3–5 highly relevant hashtags per post, based on Instagram's own 2021 creator guidance.
TikTok: The 2,200-character caption, in practice
TikTok expanded its caption limit from 300 to 2,200 characters in early 2023, mirroring Instagram. But the visible caption in-feed truncates at roughly 150 characters before the "more" expansion. Most successful TikToks use captions under 100 characters, because the video itself is the content — the caption is supplementary.
The platform's algorithm rewards watch time and completion. Long captions don't help with either. The expanded caption limit is most useful for SEO-style captions that surface in TikTok search, where users are actively searching for terms like "easy chicken recipe."
Facebook: The 477-character wall
Facebook's hard limit is technically 63,206 characters — a limit originally chosen because it's the maximum number of characters a single Unicode string can encode in some legacy systems. But the platform truncates posts in the feed at roughly 477 characters before showing a "See More" button.
Facebook's own published research (from 2016, still cited) found that posts under 50 characters had the highest engagement. Engagement drops steadily as posts get longer. The 63,206-character ceiling is, in practice, irrelevant for organic posting — if you're writing 5,000-character Facebook posts, you're using the wrong platform.
LinkedIn: The 3,000-character post
LinkedIn posts are capped at 3,000 characters (including spaces). The platform truncates posts at roughly 210 characters in the feed before the "see more" expansion. LinkedIn Articles (separate from posts, published through the LinkedIn publishing tool) have no practical character limit.
LinkedIn's own analytics show that posts in the 1,200–2,000 character range get the highest engagement, with a noticeable drop-off past 2,500 characters. The pattern is consistent with the platform's professional audience: enough length to make a substantive point, not so much that it becomes an essay.
YouTube: The 5,000-character description
YouTube descriptions can run to 5,000 characters. The first 125 characters are visible in search results and the first 157 characters in the video watch-page preview. The full description is folded behind "Show more."
YouTube's search algorithm reads the full description, so longer descriptions with relevant keywords help with discoverability. But the viewer-facing experience is dominated by the first 125 characters. The pattern that works: a punchy first sentence with the main keyword, followed by timestamps, links, and supporting text for the algorithm.
The Hashtag Limits (Often Forgotten)
Each platform handles hashtags differently, and the limits aren't always just about how many you can fit:
| Platform | Hashtag limit | Recommended |
|---|---|---|
| Instagram | 30 per post (caption + comments) | 3–5 |
| TikTok | No hard limit; ~4,000 chars in caption | 3–5 |
| Facebook | No hard limit | 1–2 (algorithm penalizes more) |
| LinkedIn | No hard limit | 3–5 |
| X (Twitter) | Limited by 280-char ceiling | 1–2 |
| Pinterest | 20 per pin | 3–5 |
| YouTube | No hard limit; affects description | 3–5 in description |
| Threads | No hard limit | 1–3 (algorithm underweights) |
| Bluesky | No hashtag-specific limit | 1–3 |
The pattern across platforms: more hashtags don't help. They often hurt. The 2010s-era strategy of stuffing 30 hashtags on every Instagram post is dead. Modern algorithms reward relevance, not volume.
Username, Handle, and Display Name Limits
Often-missed constraints for profile setup:
| Platform | Username (handle) | Display name |
|---|---|---|
| X | 15 chars | 50 chars |
| Instagram | 30 chars | 30 chars (uses same field) |
| TikTok | 24 chars | 30 chars |
| Facebook | 50 chars (page) | Personal name; no limit |
| LinkedIn | 5–30 chars (URL part) | 20–40 chars (first/last name fields) |
| YouTube | 100 chars | 100 chars |
| Pinterest | 3–30 chars | 30 chars |
| Reddit | 3–20 chars | Not used (username only) |
| Discord | 2–32 chars | 32 chars |
| Telegram | 5–32 chars | Not enforced; uses first/last name |
| Snapchat | 3–15 chars | 30 chars |
| WhatsApp | N/A (phone-based) | 25 chars |
| Twitch | 4–25 chars | 25 chars |
| Bluesky | 3–32 chars (handle) | 640 chars (display) |
These limits matter when you're trying to keep usernames consistent across platforms — most brands settle on a 15-character-or-less username so it fits on X (the most restrictive of the major platforms).
A Note on Character Counting: Bytes vs. Code Points
If you're building a tool that counts characters for these platforms, you need to know about the bytes-vs-code-points distinction. Many platforms enforce limits in UTF-16 code units (the JavaScript default), not Unicode code points or graphemes. This matters for:
- Emoji. A single emoji like 🎉 is one code point but two UTF-16 code units. On X, it counts as 2 characters.
- Skin-tone modifiers. 👋🏽 is one grapheme but 4 UTF-16 code units. On X, it counts as 4 characters.
- Flag emoji. 🇺🇸 is one grapheme but 8 UTF-16 code units. On X, it counts as 8 characters.
- Zalgo / combining characters. Stacking combining marks can blow through limits in a single visible character.
- CJK characters. Most CJK characters are 1 code point = 1 UTF-16 unit, but the Chinese, Japanese, and Korean text often takes more visual width than Latin text. X historically gave CJK text a 2x weight in the 140-character era (so a CJK tweet effectively got 70 characters), but that was removed when the limit doubled.
If your tool reports "280 characters remaining" but X rejects the post, you're probably counting graphemes or code points while X is counting UTF-16 units. Switch to counting UTF-16 length (in JavaScript, [...str].length is wrong; str.length is right for UTF-16).
The Unicode consortium maintains a reference on text segmentation that explains grapheme clusters — useful background if you're building character-counting tools.
Practical Patterns by Platform
A quick guide to the lengths that actually work, beyond the hard limits:
| Platform | Effective post length (engagement-optimal) |
|---|---|
| X (Twitter) | 71–100 characters |
| Threads | 100–300 characters |
| Instagram caption | 138–150 characters (hook in first 125) |
| TikTok caption | Under 100 characters (search terms OK at length) |
| Facebook post | 40–80 characters |
| LinkedIn post | 1,200–2,000 characters |
| YouTube description | 250–500 characters effective; full 5,000 for SEO |
| Pinterest pin description | 200–300 characters |
| Reddit post title | 60–80 characters |
| Discord message | 200–500 characters per message (split longer) |
How to Use This Cheat Sheet
The hard limits are the rules. The effective lengths are the strategy. Most successful social media managers use the hard limits as ceilings to avoid and the effective lengths as targets to aim for. When in doubt, write the post you want to write, then trim it by 20%. The shorter version almost always performs better.
Our character counter is built with these limits in mind — it shows your live count against each platform's ceiling so you can see at a glance where you're tight. Our social media bio generators and caption tools also pre-validate against these limits so you don't accidentally publish a bio that gets cut off.
The limits above are accurate as of January 2025. They will change. If you spot one that's out of date, the easiest way to verify is to open the platform's developer documentation or help center — most publish their limits in the API docs or the help articles under "what are the limits."