Errors & blockers

Social media video specs by platform

Video codec, resolution, and duration requirements across every major social platform, in one reference.

Quick answer

H.264 video in an MP4 container is the one combination no platform's publishing API rejects. Beyond that, specs diverge: Instagram Reels caps files at 300MB and 15 minutes, TikTok takes MP4 up to 4GB and 10 minutes, X allows 512MB and 140 seconds, and YouTube accepts up to 256GB. Figures are cross-checked against each platform's developer docs as of August 2026.

H.264-in-MP4 is the safe default across every platform below, and it's the one combination no publishing API will reject. Past that, resolution and container flexibility diverge quickly — and so does how well-documented each platform's actual duration ceiling is. Some platforms state a hard number in their API reference; others cap duration through an account-level policy that never appears in the API schema at all. Both cases are marked below.

Numbers are cross-checked against each platform's own developer documentation as of August 2026. Where a figure comes from PostGate's own enforced ceiling in packages/adapters/src/capabilities.ts rather than a platform's published spec, that's called out — the two aren't always the same number.

PostGate handles OAuth, publishing and delivery evidence for every network through one API. Start free or read the docs.

01

Video spec reference table

PlatformCodec / containerResolution guidanceMax file sizeDuration
Facebook PagesH.264/MP4 recommended (mp4, mov accepted)No hard documented min/maxPostGate enforces 4GB — Meta doesn't currently publish this figure on its own docs, treat as unconfirmedPostGate enforces 4 hours (14,400s) — also unconfirmed against current Meta docs
Instagram (Reels)H.264/MP4 or MOVNo hard min/max; vertical framing displays best300MB (Content Publishing API)3s–900s (15 min)
ThreadsH.264/MP4 or MOVNo hard min/max1GBUp to 300s (5 min)
LinkedInMP4 only256×144 to 4096×2304 (Video API)Up to 5GB (raw Video API upload)Up to 30 min (1,800s) per LinkedIn's Video API — PostGate currently enforces a more conservative 15 min (900s) ceiling
TikTokMP4 onlyNo hard min/max; 1080×1920 recommended4GBHard 600s (10 min) ceiling via the Upload endpoint; some creators get a higher dynamic ceiling — check creator_info before assuming a fixed number. A documented minimum was not found; PostGate's 3s floor is an operational default, not a confirmed TikTok requirement
YouTubeMP4/MOV via PostGate (YouTube's own API accepts several more containers)No hard min/max in the API schema; up to 8K supported256GB (stated directly on the videos.insert reference page)No duration limit in the Data API itself — see the max-video-length table below for the real (account-policy-based) ceiling
PinterestMP4 or MOVNo hard min/max; 1000×1500 recommended2GB4s–900s (15 min)
X (Twitter)MP4 onlyNo hard min/max; up to 1920×1200 typical512MB (536,870,912 bytes) — reliable for all tiers via the public API140s (2:20) — the reliable, documented ceiling for every access tier. A "2 hour / 16GB for Premium" figure circulates online but traces to a single forum post, needs separate Amplify/Ads partner permissioning, and has been reported broken as recently as July 2026 — don't build around it
TelegramMP4 recommended for reliable previewNo documented limitDepends on delivery method — see notesNo documented duration limit
MastodonInstance-configurableInstance-configurableInstance-configurableInstance-configurable
Google Business ProfileNot supported via APINot supported via APINot supported via APINot supported via API
02

Telegram: why does the delivery method change the real ceiling?

Telegram's Bot API documents two different size ceilings depending on how a file reaches Telegram's servers. Sending a file by public URL — where Telegram fetches it — is capped lower: 5MB for photos, 20MB for video and other content. Sending the same file as a direct multipart upload allows more: up to 10MB for photos and 50MB for video and other files.

PostGate delivers Telegram media by the URL-fetch method (sendPhoto/sendVideo with a public URL, which Telegram's own servers then fetch), so the URL-fetch ceilings are the ones that actually apply. PostGate's enforced image limit — 5MB — matches that exactly. Its enforced video limit is currently set to 50MB, which matches Telegram's multipart-upload ceiling rather than the 20MB URL-fetch ceiling PostGate's own delivery path is subject to. In practice: a video between 20MB and 50MB can pass PostGate's own validation and still be rejected by Telegram at actual delivery time.

03

Can you post video to Google Business Profile via the API?

A 30-second, 75MB, 720p video spec is commonly cited for Google Business Profile — that spec is real, but it applies to the Google Business Profile mobile app and Google Maps, not the Business Profile API that publishing tools like PostGate integrate against. There is no video-upload endpoint in the current Business Profile API; posts created through the API are photo and text only.

04

How does PostGate handle this?

PostGate's media pipeline probes every video's real codec, resolution, and duration before it reaches a provider, and the platform capability matrix exposes each target's enforced ceiling directly — so a spec mismatch surfaces as an immediate validation error rather than a delivery failure discovered after the fact.

Frequently asked questions

Can X Premium accounts upload 2-hour videos through the API?

Don't build around that. The reliable, documented ceiling for every access tier via the public API is 140 seconds (2:20) and 512MB. A "2 hour / 16GB for Premium" figure circulates online, but it traces to a single forum post, requires separate Amplify/Ads partner permissioning, and has been reported broken as recently as July 2026.

Why can a Telegram video pass validation but still fail at delivery?

Telegram documents two size ceilings: sending by public URL (where Telegram fetches the file) caps video at 20MB, while direct multipart upload allows 50MB. PostGate delivers Telegram media by URL-fetch, but its enforced video limit is currently 50MB — matching the multipart ceiling rather than the 20MB URL-fetch ceiling its delivery path actually uses. A video between 20MB and 50MB can therefore pass validation and be rejected by Telegram.

What is the maximum TikTok video length via the API?

The Upload endpoint enforces a hard 600-second (10-minute) ceiling, but some creators get a higher dynamic ceiling — check creator_info before assuming a fixed number. No documented minimum duration was found; PostGate's 3-second floor is an operational default, not a confirmed TikTok requirement. Container is MP4 only, up to 4GB.

Does the YouTube API limit video duration?

No — there is no duration limit in the Data API schema itself; the real ceiling is account-policy-based rather than API-enforced. What the API does state directly, on the videos.insert reference page, is a 256GB maximum file size, with resolutions supported up to 8K.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs