Errors & blockers

Character limits per social platform

The current post character limit for every major social platform, verified against each platform's own documentation.

Quick answer

Confirmed API limits: Instagram and TikTok 2,200 characters, Threads 500, X 280 weighted characters, Bluesky 300 graphemes, Pinterest 800, YouTube 100-character titles and 5,000-byte descriptions, Telegram 4,096 (1,024 for captions), Mastodon 500 by default. Facebook's 63,206, LinkedIn's 3,000, and Google Business Profile's 1,500 are widely repeated but not stated in any current official documentation.

Verified against each platform's current developer documentation on August 26, 2026. Character limits are among the most copy-pasted numbers on the internet, and several widely repeated figures below turned out not to appear in any current official source when checked directly. Where that happened, the table says so instead of quietly repeating the common number.

The counting method matters as much as the number: several platforms count UTF-8 bytes, not characters, and one counts Unicode graphemes. The same 300-character English caption and a 300-character caption full of emoji or CJK text can hit very different limits on the same platform.

PostGate handles OAuth, publishing and delivery evidence for every network through one API. Start free or read the docs.

01

Character limit reference table

PlatformLimitCounting methodConfidence
Facebook Pages63,206 charactersCharactersUnconfirmed as a current hard API limit — the figure traces to a 2011 Facebook blog post; no current Graph API doc states it. Treat as a legacy, likely-still-accurate ceiling, not a documented one.
Instagram2,200 charactersCharactersConfirmed — stated in Meta's Content Publishing API documentation.
Threads500 charactersCharacters, with emoji counted as multiple UTF-8 bytesConfirmed — Meta's Threads API docs state a 500-character base limit. This is not a flat 500-byte cap; don't conflate the two. Heavy emoji or multi-byte-character use can make the practical ceiling lower than 500 characters.
LinkedIn3,000 charactersCharactersLikely accurate but currently undocumented — the 3,000 figure is stated verbatim on LinkedIn's legacy UGC Post API reference, not on the current Posts API page.
TikTok2,200 charactersCharactersConfirmed — stated in TikTok's Content Posting API reference.
YouTubeTitle: 100 characters · Description: 5,000 bytesTitle: characters · Description: UTF-8 bytesConfirmed via the videos.insert API reference. The description figure is bytes, not characters — non-ASCII text (accents, CJK, emoji) hits the ceiling faster than the number implies.
Pinterest800 charactersCharactersConfirmed for the Pin description field. A commonly repeated 500-character figure is a mix-up with Pinterest's separate alt_text field, which is capped lower.
X (Twitter)280 charactersWeighted characters (twitter-text config v3); URLs always count as 23Confirmed for the standard public API tier used for third-party publishing. X's consumer apps offer longer posts to some paid subscription tiers, but that is a separate product surface from the create-post API most publishing tools integrate against.
Bluesky300 graphemesUnicode graphemes (not raw characters)Confirmed via the AT Protocol lexicon for app.bsky.feed.post. The same record also carries a separate 3,000 UTF-8-byte ceiling, but the 300-grapheme limit is the one that binds first in virtually every real post.
Mastodon500 characters (default)CharactersConfirmed as the software default and the value used by mastodon.social — but every instance operator can raise or lower this in their own configuration. Check that specific instance's /api/v1/instance response before assuming 500.
TelegramText message: 4,096 characters · Media caption: 1,024 charactersCharactersConfirmed per the Telegram Bot API reference. A standalone text message and a photo/video caption are two different fields with two different ceilings — don't apply the 4,096 figure to captions.
Google Business Profile1,500 charactersCharactersWidely cited but unconfirmed — this figure does not appear in any of the current official Business Profile API documentation pages checked. Treat it as a reasonable, commonly used working assumption rather than a documented hard limit.
02

Why do these numbers drift and conflict?

Three patterns explain most of the confirmed-vs-unconfirmed split above. First, some platforms publish a number once, in a blog post or a now-superseded API version, and never restate it on their current reference pages — the number can still be accurate, but there's nothing current to cite. Second, counting methods differ silently: a limit stated as "500" can mean 500 characters, 500 UTF-8 bytes, or 500 graphemes, and those produce different real-world ceilings the moment non-ASCII text is involved. Third, some limits genuinely live at the product-policy level (paid tiers, instance configuration) rather than in the API schema itself, so no single number is ever the whole truth.

03

How does PostGate handle character limits?

PostGate's platform capability matrix tracks each target's enforced character limit and counting method directly, so a caption that's valid for Instagram but too long for Threads gets caught during validation — before the request reaches the provider — instead of surfacing as a per-target publish failure.

Frequently asked questions

Is Facebook's 63,206-character limit official?

It is unconfirmed as a current hard API limit. The figure traces to a 2011 Facebook blog post, and no current Graph API documentation states it. Treat it as a legacy, likely-still-accurate ceiling rather than a documented one — the number can still be right, but there is nothing current to cite.

Do social platforms count characters, bytes, or graphemes?

It varies, and it changes the real ceiling. YouTube's 5,000-limit description is counted in UTF-8 bytes, so accents, CJK text, and emoji hit it faster than the number implies. Bluesky counts 300 Unicode graphemes (with a separate 3,000-byte ceiling that rarely binds first). Threads counts emoji as multiple UTF-8 bytes within its 500-character limit, and X counts weighted characters with every URL costing exactly 23.

What is the character limit for a Mastodon post?

500 characters is the software default and the value used by mastodon.social, but every instance operator can raise or lower it in their own configuration. Check the specific instance's /api/v1/instance response before assuming 500.

Is the Pinterest character limit 500 or 800?

The Pin description field is confirmed at 800 characters. The commonly repeated 500-character figure is a mix-up with Pinterest’s separate alt_text field, which is capped lower — the two fields have different ceilings.

Does Telegram's 4,096-character limit apply to media captions?

No. A standalone text message and a photo or video caption are two different fields with two different ceilings: 4,096 characters for a text message and 1,024 characters for a media caption, per the Telegram Bot API reference.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs