Blog
4 min readReferenceCross-posting

Every network’s caption limit, in one table

What each platform actually allows in a caption, how many images or videos it takes, and which limit wins when you post to several at once.

Every network has its own idea of how long a caption may be, how many files may ride along with it, and whether a post can continue into a thread. Cross-posting means living with all of them at once — so here is the whole set, read from the same table Ravenpost uses to validate a post before it is published.

The limits, network by network

NetworkCaptionImagesVideosThreadMedia required
Instagram2,2001010Yes
TikTok2,200351Yes
X2804125 follow-upsNo
Telegram4,096101025 follow-upsNo
Facebook63,206101No
LinkedIn3,000201No
Threads500202025 follow-upsNo
Bluesky300425 follow-upsNo
YouTube5,0001Yes

The one that matters is the tightest

A caption that goes to several networks has to satisfy the strictest of them. Select every network above and the budget collapses to 280 charactersX’s limit, not an average of the others. There is no clever way around this: a platform that receives more than it allows rejects the post, and a scheduler that quietly truncates is worse, because the sentence it cuts is the one you cared about.

Two ways out, both better than writing to the lowest common denominator:

  • Write one caption per network. The long-form version for LinkedIn, the sharp one for X. In Ravenpost that is a tab per selected platform in the composer, and the base caption is used by any network you don’t override.
  • Continue into a thread where the platform has one. X, Bluesky, Mastodon and Threads have real reply chains; Telegram and Discord take consecutive messages, which reads the same way. The thread limit follows the same rule as the caption budget — the strictest selected network wins.

Three quirks the numbers don’t show

Telegram takes formatting; nothing else does. A Telegram caption can carry links, bold and code, so markdown belongs in a Telegram post or a Telegram-specific override. Every other network publishes a caption as plain text, and the asterisks show up as asterisks.

LinkedIn needs escaping, not formatting. Its API treats ( ) [ ] { } @ # * _ ~ as reserved even in ordinary prose — an unescaped (finally!) corrupts the post. That is a publishing-time concern rather than something to write around, but it is why a caption that looks fine can arrive broken if the tool sending it doesn’t handle it.

“Media required” is not a style guide. Instagram, TikTok and YouTube will not accept a post with no file at all; X, Facebook, Telegram, Bluesky and the rest will. It is the difference between a post you can schedule and one the API refuses.

Where these numbers come from

The table above is generated from Ravenpost’s platform registry — the same file the composer reads to warn you before you schedule, and the publisher reads before it sends. When a platform changes a limit, this page changes with it, because there is no second copy to update. The machine-readable version is GET /v1/platforms, which is what we suggest reading instead of hardcoding any of these into your own tooling.