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,2001010—Yes
TikTok2,200351—Yes
X2804125 follow-upsNo
Telegram4,096101025 follow-upsNo
LinkedIn3,000201—No
Threads500202025 follow-upsNo
Bluesky3004—25 follow-upsNo
YouTube5,000—1—Yes
Pinterest80051—Yes

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 characters — X’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.