Media limits
Default attachment limits used by OpenPost before publishing.
These are OpenPost's default publishing limits, generated from the same capability catalogue used by the composer, API, CLI, and MCP. They are not a promise that every connected account can publish every format. The destination preview applies account-specific limits, permissions, and provider readiness.
A dash means the catalogue has no fixed limit for that field. It does not mean unlimited. Your upload plan, server configuration, provider account, and Mastodon instance can impose lower limits. Sizes below are exact bytes; duration is in seconds. Attachment counts apply to each thread segment.
Default limits
| Destination format | Attachments | File types | Maximum bytes | Image maximum bytes | Video seconds | Additional rules |
|---|---|---|---|---|---|---|
| X thread | 0–4 | image/jpeg, image/png, image/webp, image/gif, video/mp4, video/quicktime | 536870912 | - | 140 | Video must be the only attachment |
| X image post | 1–4 | image/jpeg, image/png, image/webp, image/gif | - | - | - | |
| X video | 1–1 | video/mp4 | 536870912 | - | 140 | |
| Bluesky thread | 0–4 | image/jpeg, image/png, image/webp, video/mp4 | 300000000 | 2000000 | 600 | Video must be the only attachment |
| Bluesky images | 1–4 | image/jpeg, image/png, image/webp | - | 2000000 | - | |
| Bluesky video | 1–1 | video/mp4 | 300000000 | - | 600 | |
| Mastodon thread | 0–4 | image/jpeg, image/png, image/webp, image/gif, video/mp4 | - | - | - | |
| Mastodon media | 1–4 | image/jpeg, image/png, image/webp, image/gif, video/mp4 | - | - | - | |
| Mastodon video | 1–1 | video/mp4, video/quicktime, video/webm | 103809024 | - | - | |
| Threads thread | 0–10 | image/jpeg, image/png, image/webp, video/mp4, video/quicktime | - | - | - | Public HTTPS file required |
| Threads media | 1–1 | image/jpeg, image/png, image/webp | - | - | - | Public HTTPS file required |
| Threads carousel | 2–20 | image/jpeg, image/png, image/webp, video/mp4, video/quicktime | - | - | - | Public HTTPS file required |
| Threads video | 1–1 | video/mp4, video/quicktime | 2147483648 | - | 180 | Public HTTPS file required; Aspect ratio: 9:16, 1:1 |
| LinkedIn image | 1–1 | image/jpeg, image/png, image/gif | - | - | - | |
| LinkedIn document | 1–1 | application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation | 104857600 | - | - | |
| LinkedIn multi-image post | 2–20 | image/jpeg, image/png, image/gif | - | - | - | |
| LinkedIn video | 1–1 | video/mp4 | 524288000 | - | 1800 | |
| Facebook Page photo | 1–1 | image/jpeg, image/png, image/webp | - | - | - | Public HTTPS file required |
| Facebook multi-photo | 2–10 | image/jpeg, image/png, image/webp | - | - | - | Public HTTPS file required |
| Facebook Page Story | 1–1 | image/jpeg, image/png, image/webp, video/mp4, video/quicktime | - | - | - | Public HTTPS file required |
| Facebook Reel/video | 1–1 | video/mp4, video/quicktime | 2147483648 | - | 180 | Public HTTPS file required; Aspect ratio: 9:16, 1:1 |
| Facebook video | 1–1 | video/mp4, video/quicktime | 2147483648 | - | 43200 | |
| Instagram feed | 1–1 | image/jpeg, image/png, image/webp | - | - | - | Public HTTPS file required |
| Instagram carousel | 2–10 | image/jpeg, image/png, image/webp, video/mp4, video/quicktime | - | - | - | Public HTTPS file required |
| Instagram Story | 1–1 | image/jpeg, image/png, image/webp, video/mp4, video/quicktime | - | - | - | Public HTTPS file required |
| Instagram Reel | 1–1 | video/mp4, video/quicktime | 2147483648 | - | 180 | Public HTTPS file required; Aspect ratio: 9:16, 1:1 |
| YouTube Short | 1–1 | video/mp4, video/quicktime | 2147483648 | - | 180 | Aspect ratio: 9:16, 1:1 |
| YouTube video | 1–1 | video/mp4, video/quicktime | 2147483648 | - | 43200 | |
| TikTok video | 1–1 | video/mp4, video/quicktime, video/webm | 4294967296 | - | 600 | Public HTTPS file required; Aspect ratio: 9:16, 1:1 |
| TikTok photo post | 1–35 | image/jpeg, image/webp | 20971520 | - | - | Public HTTPS file required |
| Pinterest Pin | 1–1 | image/jpeg, image/png, image/webp | 20971520 | - | - | Public HTTPS file required |
| Pinterest multi-image Pin | 2–5 | image/jpeg, image/png, image/webp | 20971520 | - | - | Public HTTPS file required |
| Pinterest video Pin | 1–1 | video/mp4 | 2147483648 | - | 900 | |
| Telegram media | 1–10 | image/jpeg, image/png, image/webp, image/gif, video/mp4, video/quicktime, application/pdf | - | - | - | |
| Telegram video | 1–10 | image/jpeg, image/png, image/webp, image/gif, video/mp4, video/quicktime, application/pdf | - | - | - | |
| Discord attachment | 1–10 | image/jpeg, image/png, image/webp, image/gif | 10485760 | - | - | |
| Discord video | 1–1 | video/mp4, video/quicktime, video/webm | 10485760 | - | - |
Provider specifications and exceptions
Catalogue and publisher validation reviewed: 12 September 2026. The following API references were checked on that date:
- Bluesky: image specifications and video schema. Images are limited to 2,000,000 bytes. MP4 video is limited to 300,000,000 bytes and 10 minutes. A segment can contain images or one video.
- X: media upload documentation. OpenPost currently uses the legacy OAuth 1.0a upload route. Its default 512 MiB / 140-second limit is deliberate; the newer v2 route's 8 GB / 20-minute limits do not describe this adapter. Connected-account capabilities can adjust the default. A segment can contain images or one video.
- TikTok: media transfer specifications. MP4, MOV, and WebM are supported. Direct Post uses the connected creator's available duration and privacy options. URL uploads require a verified domain and an accessible HTTPS file.
- YouTube: video upload API. OpenPost's default file-size cap is lower than YouTube's API upload maximum. Unverified API projects can be restricted to private uploads. YouTube now supports custom Shorts thumbnails for eligible channels. OpenPost therefore does not impose a blanket Shorts restriction.
- LinkedIn: Videos API. Video formats and account permissions differ from documents and image posts.
- Mastodon: instance configuration. OpenPost uses the connected instance's advertised MIME types, attachment count, and image/video size limits when available.
- Telegram: Bot API file sending. File limits depend on the sending method and whether the deployment uses the hosted or local Bot API. The catalogue does not currently express every Telegram transfer limit.
Other destinations retain their catalogue defaults. Check their current provider requirements before relying on a boundary value. OpenPost's preflight also checks analysed media, codecs, dimensions, and account restrictions that are not all shown in this table.
For access or approval failures, see connecting accounts and the integration setup guides.