Back to Blog
character-limitsreferencemulti-platform

Social Media Character Limits in 2026: Every Platform, One Table

M
Mel Owen
8 min read

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 | 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 video Direct Post API | 2,200 UTF-16 runes | Full caption if under the cap | | TikTok photo Direct Post API | 4,000 UTF-16 runes | Full description if under the cap | | TikTok (app) | Varies by account and app version | 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; schema maxLength 3,000 | Full post, hard cap at 300 graphemes; URLs use facets | | 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 API content | 2,000 chars | Full message, no truncation; split longer automated content or use embeds | | 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's post lexicon instead sets maxGraphemes to 300 and maxLength to 3,000; URLs are annotated with facets and count under the post's normal text limits. Count the actual post text against Bluesky's schema rather than applying X's URL rule.

TikTok is the platform most likely to trip you up because its app and API can expose different limits, and the API limit differs by media type. TikTok's video Direct Post API allows a caption up to 2,200 UTF-16 runes, while the photo Direct Post API allows a description up to 4,000 UTF-16 runes. App behavior can vary by account and app version, so use the relevant API limit whenever the post will be published programmatically.

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 apply each platform's own URL handling rather than assuming one platform's rule transfers to another.

See how TimeToPost can help you implement these strategies.

X and the Premium question

X's free tier caps posts at 280 characters. X's official Premium guidance says longer posts can contain up to 25,000 characters. Long posts still need a strong opening because the timeline view truncates them behind a "Show more" link. 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. The visible excerpt varies by device and result type, so for a platform where many people never click through, make the first sentence carry the point.

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 maxGraphemes: 300 and maxLength: 3,000 in the official post lexicon. URLs are represented by rich-text facets and count under those post limits.

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, and 2,000 characters for Discord API content. Discord documents a separate 4,000-character Nitro allowance for subscriber messages; keep automated content at the API limit.

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

What is X's current Premium character limit? X's official Premium guidance says longer posts allow up to 25,000 characters. Free accounts stay capped at 280.

Why did my TikTok video caption work in the app but fail through the API? The video Direct Post API enforces a 2,200 UTF-16 rune limit. App behavior can vary, so draft for that limit when publishing video programmatically.

What is the TikTok photo description limit through the API? The photo Direct Post API allows up to 4,000 UTF-16 runes in the description.

Why does my Bluesky post get rejected even though it looks under 300 characters? Bluesky counts graphemes and applies the maxLength: 3,000 schema limit. Emoji and non-Latin scripts can affect both measures, so validate against the official post lexicon.

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.

Related posts

Put these strategies into action

TimeToPost helps you schedule content, track performance, and grow your audience, all in one place.