---
title: "Every network’s caption limit, in one table | Ravenpost"
description: "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."
url: https://ravenpo.st/blog/caption-limits-by-platform/
---

[Blog](https://ravenpo.st/blog/)

1 August 20264 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](https://ravenpo.st/) uses to validate a post before it is published.

## The limits, network by network

| Network | Caption | Images | Videos | Thread | Media required |
| --- | --- | --- | --- | --- | --- |
| Instagram | 2,200 | 10  | 10  | —   | Yes |
| TikTok | 2,200 | 35  | 1   | —   | Yes |
| X   | 280 | 4   | 1   | 25 follow-ups | No  |
| Telegram | 4,096 | 10  | 10  | 25 follow-ups | No  |
| Facebook | 63,206 | 10  | 1   | —   | No  |
| LinkedIn | 3,000 | 20  | 1   | —   | No  |
| Threads | 500 | 20  | 20  | 25 follow-ups | No  |
| Bluesky | 300 | 4   | —   | 25 follow-ups | No  |
| YouTube | 5,000 | —   | 1   | —   | 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`](https://ravenpo.st/docs/api/), which is what we suggest reading instead of hardcoding any of these into your own tooling.

## More

-   [What a “best time to post” can honestly tell you](https://ravenpo.st/blog/best-time-to-post/)
