What is in it
One row per network, 12 in all: YouTube, TikTok, Instagram, Facebook, Threads, LinkedIn, Pinterest, Bluesky, Mastodon, Telegram, Discord and Tumblr. Sizes are in bytes and lengths in seconds so that nothing has to be parsed; an empty cell means the network sets no limit that Preflight enforces, and yes/no questions are the words true and false. The JSON carries this dictionary with the data, so a file is self-describing.
| Field | Meaning | Unit |
|---|---|---|
id | Network ID. Preflight's identifier for the network, the same one the REST API uses (for example instagram). | text |
name | Network. Display name of the network. | text |
charLimit | Caption limit. The longest caption or post text the network accepts, counted the way the network counts it (YouTube counts bytes, Threads counts emoji as bytes, Bluesky counts graphemes). | characters |
supportsImage | Images. Whether a post can carry an image. | true/false |
supportsVideo | Video. Whether a post can carry a video. | true/false |
maxMediaPerPost | Media per post. The most images or videos in a single post. | files |
maxImageBytes | Largest image. Largest accepted image file. Empty where the network publishes no limit that Preflight enforces. | bytes |
maxVideoBytes | Largest video. Largest accepted video file. Empty where no limit is enforced. | bytes |
minVideoDurationSeconds | Shortest video. Shortest accepted video. Empty where there is no minimum. | seconds |
maxVideoDurationSeconds | Longest video. Longest accepted video. Empty where no limit is enforced. | seconds |
minVideoFps | Lowest frame rate. Lowest accepted video frame rate. Empty where there is no minimum. | frames per second |
maxVideoFps | Highest frame rate. Highest accepted video frame rate. Empty where there is no maximum. | frames per second |
supportsThread | Threads. Whether a post can be published as a chain of connected posts. | true/false |
supportsFirstComment | First comment. Whether a comment can be posted together with the post. | true/false |
supportsAltText | Alt text. Whether images can carry alternative text. | true/false |
canEditRemote | Edit after publishing. Whether the network's API lets a published post be edited. | true/false |
canDeleteRemote | Delete after publishing. Whether the network's API lets a published post be deleted. | true/false |
canReadComments | Read comments. Whether the network's API lets a tool read the comments on a post. | true/false |
canReplyToComments | Reply to comments. Whether the network's API lets a tool reply to comments. | true/false |
reportsInsights | Detailed insights. Whether the network reports watch time and retention figures for a post, beyond basic counts. | true/false |
metricFields | Reported metrics. The figures the network reports back for a post. A JSON array; in the CSV the names are separated by semicolons. | list |
Preview
The eight columns people ask about most. The files hold all 21; the full per-network rules, with the reasons, are on the network limits page.
| Network | Caption | Media per post | Image size | Video size | Video length | Frame rate | Threads | Alt text |
|---|---|---|---|---|---|---|---|---|
| YouTube | 5,000 | 1 | no images | 256 GB | up to 12 h | – | no | no |
| TikTok | 2,200 | 35 | – | 4 GB | 3 s to 10 min | 23 to 60 | no | no |
| 2,200 | 10 | – | 300 MB | 3 s to 15 min | 23 to 60 | no | yes | |
| 63,206 | 10 | 10 MB | 1 GB | up to 4 h | – | no | yes | |
| Threads | 500 | 20 | 8 MB | 1 GB | up to 5 min | 23 to 60 | yes | yes |
| 3,000 | 20 | 10 MB | 500 MB | 3 s to 30 min | – | no | yes | |
| 800 | 5 | 20 MB | no video | – | – | no | yes | |
| Bluesky | 300 | 4 | 2,000,000 bytes | 100,000,000 bytes | up to 10 min | – | yes | yes |
| Mastodon | 500 | 4 | 16 MB | 99 MB | – | – | yes | yes |
| Telegram | 1,024 | 10 | 10 MB | 50 MB | – | – | no | no |
| Discord | 2,000 | 10 | 10 MB | 10 MB | – | – | no | yes |
| Tumblr | 250,000 | 30 | 20 MB | 500 MB | up to 10 min | – | no | yes |
License and how to cite
The dataset is published under the Creative Commons Attribution 4.0 license. In plain words: use it, copy it, build on it, including commercially, in a product, a spreadsheet, an article or a model's training data. Keep the credit and link back to this page, and say if you changed the data.
Cite it as:
Preflight (ADMI ENTERPRISES s.r.o.), Social network limits dataset, version 2026-10-08, https://preflight.social/data/network-limits, licensed CC BY 4.0.On a web page, credit it with a link:
<a href="https://preflight.social/data/network-limits">Social network limits dataset</a> by Preflight (ADMI ENTERPRISES s.r.o.), version 2026-10-08, licensed <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.The version is the date the figures were last checked. Quote it, so a reader can tell which state of the rules your copy shows.
How the data is kept true
These are not figures copied once from a help page. Each limit is enforced by the adapter that publishes to that network, and an automated test compares this table with the adapters on every build, so a number cannot change in one place and stay stale in the other. The networks' own documentation is watched daily for changes; what moved and when is in the rules tracker.
Not in the dataset
- X. Preflight does not post to X yet, so it has no row here.
- Account and plan limits. How many channels, posts or uploads a plan allows is a property of Preflight, not of a network; it is on the pricing page.
- Rules that change. Networks revise their limits without notice. The file is a dated snapshot, and the rules tracker shows what changed since.