Social Media Character Limits in 2026: Every Platform, One Table
You do not need to memorize any of this. Bookmark the table, or better, stop checking it manually altogether. Here is every limit that matters in 2026, in one place.
The master table
| Platform | Character limit | Visible before truncation | |---|---|---| | X (free) | 280 chars, links count as 23 | Full post shown, just capped at 280 | | X (Premium) | 25,000 chars [hedge: tier and rollout details shift] | Feed view still truncates long posts behind "Show more" | | Instagram caption | 2,200 chars | ~125 chars before "more" | | Instagram bio | 150 chars | Full 150, no truncation | | TikTok (API) | 2,200 UTF-16 units | Full caption if under the cap | | TikTok (app) | up to 4,000 chars | App and API caps differ, see below | | LinkedIn | 3,000 chars | ~210 chars mobile, ~700 desktop before "see more" | | Facebook | 63,206 chars | ~477 chars before "See more" | | Threads | 500 chars (plus a 10,000-char text attachment) | Full 500 shown | | Bluesky | 300 graphemes, links count as 22 | Full post, hard cap at 300 | | Mastodon | 500 chars default, instance-configurable to 11,000+ | Depends on the instance | | Pinterest description | 500 chars | Full 500 shown | | YouTube title | 100 chars | Truncates in search results well before 100 | | YouTube description | 5,000 chars | Only the first couple lines show above the fold | | Google Business Profile | 1,500 chars | ~250 to 300 chars before truncation in search | | Telegram | 4,096 chars | Full message, no truncation | | Discord | 2,000 chars (4,000 with Nitro) | Full message, no truncation | | Reddit title | 300 chars | Full title, but long titles wrap awkwardly | | Reddit selftext | 40,000 chars | Only the top of the post shows before "read more" | | Tumblr | 4,096 chars per text block | Depends on theme, often truncates on dashboard view |
That table alone answers 90% of the "will this post fit" questions I get asked. The other 10% is in what "character" actually means, which is where people get burned.
Where limits lie: graphemes, bytes, and links
Not every platform counts a character the same way, and that gap is where posts silently break.
X counts by its own weighted rule where most characters count as one, but it treats every URL as exactly 23 characters no matter how long the real link is. Bluesky counts differently again: its 300-char limit is actually 300 graphemes, and it separately enforces a 3,000 UTF-8 byte ceiling. That matters because emoji, accented characters, and non-Latin scripts can take up multiple bytes per grapheme, so a post that reads as "short" to you can still hit the byte wall before the grapheme wall. Bluesky links count as 22 characters regardless of the actual URL length, one shorter than X's convention.
TikTok is the platform most likely to trip you up because it has two different limits depending on which door you walked through. The public API enforces 2,200 UTF-16 code units on captions. The TikTok app itself reportedly allows captions up to roughly 4,000 characters [hedge: this is not officially documented and appears to vary by account and app version]. If you draft a caption in the app and then try to push the same text through the API, expect a rejection you did not see coming.
The practical rule: never count characters with a plain .length call and assume you are safe. Count graphemes for Bluesky, UTF-16 units for TikTok, and remember that links get a fixed character cost on X and Bluesky regardless of how long the underlying URL is.
See how TimeToPost can help you implement these strategies.
X and the Premium question
X's free tier caps posts at 280 characters, unchanged for years and unlikely to move. X Premium subscribers reportedly get up to 25,000 characters per post [hedge: exact figure and which paid tiers include it have shifted before and may again]. The catch is that a 25,000-character post does not display as 25,000 characters in anyone's feed. The timeline view truncates long posts behind a "Show more" link, so anything past the first few hundred characters is invisible until someone taps through. If your goal is reach rather than technically fitting under the cap, write for the fold, not for the limit.
The truncation points that actually matter
The character limit is the wall you cannot cross. The truncation point is the wall almost nobody sees you cross, and it is usually the more important number.
Facebook allows 63,206 characters, a limit essentially nobody hits. But Facebook truncates the visible post at around 477 characters before showing "See more." Write your hook, your point, and your call to action inside that window, and treat everything after it as a bonus for people who click through.
LinkedIn's cap is 3,000 characters, generous by most standards. Its truncation point is the one that varies by device: roughly 210 characters on mobile and around 700 on desktop before "see more" appears. A post that reads as a complete thought on desktop can get chopped mid-sentence on a phone.
Google Business Profile allows 1,500 characters but only shows roughly 250 to 300 in search results before truncating [hedge: exact figure varies by device and result type]. For a platform where most people never click through, that first sentence is close to the entire post.
Instagram's 2,200-character caption cap almost never matters because the app only shows about 125 characters before folding the rest behind "more." Your first line does the actual work.
Platform notes
Threads caps a normal post at 500 characters, but lets you attach up to 10,000 characters of additional text as a separate block, which most readers will not open unless the first 500 earn it.
Bluesky enforces both a 300-grapheme limit and a 3,000-byte limit simultaneously, so heavy emoji use or non-Latin text can hit the byte ceiling before the grapheme one.
Mastodon ships a 500-character default, but because every instance runs its own server, admins can and do raise that to 5,000, 11,000, or higher. There is no single Mastodon limit, only your instance's limit.
Pinterest descriptions are capped at 500 characters, plenty for a keyword-rich sentence or two, not enough for a story.
YouTube splits into a strict 100-character title and a much longer 5,000-character description, though only the first couple of lines of the description show above the fold on both mobile and desktop.
Telegram and Discord are the two platforms where the stated limit is close to the practical one: 4,096 characters on Telegram, 2,000 on Discord (4,000 for Nitro subscribers), with no meaningful truncation behavior to plan around.
Reddit separates the title (300 characters) from the selftext body (40,000 characters), but only the top portion of a long selftext shows before "read more" collapses it.
Tumblr allows 4,096 characters per text block, though how much of that shows on the dashboard depends heavily on the reader's theme.
Keep your drafts inside every limit automatically
Memorizing this table is useful for maybe a week, until Mastodon's instance defaults, TikTok's app-versus-API gap, or X's Premium tier changes again and your mental model is stale. The more durable habit is checking as you write, not after you hit publish and get an error.
TimeToPost's character counter checks your draft against every platform's real limit, including the grapheme and byte math for Bluesky and the UTF-16 quirk on TikTok, as you type. If you are drafting the same idea for five platforms at once, that check matters more than the raw cap ever did, since the actual failure mode is rarely "too long," it is "fits the cap but gets truncated exactly where your point was." If you post the same core idea everywhere rather than one native version per platform, our guide to posting to all platforms at once covers where that approach breaks down.
FAQ
Does X really allow 25,000 characters now? Reportedly yes for Premium subscribers, though the exact figure and which paid tiers qualify has shifted before. Free accounts stay capped at 280 regardless.
Why did my TikTok caption work in the app but fail through the API? The app reportedly allows captions up to around 4,000 characters, while the public API enforces a hard 2,200 UTF-16 unit limit. Draft for the API limit if your posts touch the API at any point in the pipeline.
Why does my Bluesky post get rejected even though it looks under 300 characters? Bluesky counts graphemes, not raw characters, and separately enforces a 3,000-byte ceiling. Emoji and non-Latin scripts can push you over the byte limit before you hit 300 graphemes.
Is the truncation point or the hard character limit more important? For platforms like Facebook, LinkedIn, and Google Business Profile, the truncation point matters more day to day, since it decides what people actually see without clicking through. The hard limit only matters when you are writing something unusually long.
Do Mastodon's character limits ever change? Only per instance. The protocol default is 500, but individual servers can and do configure it much higher, so there is no single answer across the fediverse.
Check any draft against every platform at once with the character counter before you schedule it, and see how Threads and Bluesky specifically handle length in our guides to scheduling Threads posts and scheduling Bluesky posts.