Errors & blockers

Social media API media requirements

A consolidated reference for file size, format, and dimension requirements across social platform publishing APIs.

Quick answer

Every platform's publishing API enforces different media rules: Instagram feed images are JPEG-only up to 8MB; X takes JPEG/PNG/WEBP to 5MB and MP4 video to 512MB; TikTok accepts MP4 video to 4GB but no PNG images; Bluesky caps images at 1MB with no video support. Some figures are platform-documented, others are PostGate's conservative defaults — the table labels which is which.

This is the hub page for PostGate's media-requirements reference set: one consolidated table of accepted image and video formats, and the file-size ceilings each platform's publishing API applies to them. For the detail behind any single column — aspect ratio, video codec/resolution/duration, or character limits — the linked pages below break each of those out on its own.

Two kinds of numbers appear in this table: figures a platform documents directly in its current developer reference, and figures PostGate enforces as its own conservative default where no authoritative platform number could be found. They're labeled differently on purpose — don't treat the second kind as a platform-guaranteed ceiling.

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

01

Consolidated media requirements table

PlatformImage formats & max sizeVideo formats & max sizeNotes
Facebook PagesJPEG, BMP, PNG, GIF, TIFF · no documented size cap found (PostGate enforces 10MB)MP4/MOV · PostGate enforces 4GB (unconfirmed against current Meta docs)PostGate's own accepted image set (JPEG/PNG/WEBP) is narrower than Meta's documented list in some formats and adds WEBP, which Meta doesn't document — use JPEG or PNG for guaranteed compatibility.
InstagramJPEG only · 8MB · width 320–1440pxMP4/MOV · 300MB (Reels, Content Publishing API)Business or Creator accounts only; container-based publish flow.
ThreadsJPEG and PNG documented by Meta · 8MB · width 320–1440pxMP4/MOV · 1GBPostGate enforces JPEG-only in practice — Meta's live API rejects PNG image_url containers with a generic "Invalid parameter" error despite PNG being in the documented format list. A real, confirmed doc-vs-live-behavior mismatch.
LinkedInJPG, PNG, GIF (no WEBP) · no documented size cap (PostGate enforces 8MB)MP4 only · up to 5GB (raw Video API)LinkedIn's often-cited "8MB" and "36" figures actually describe the profile-photo limit and a 36-megapixel resolution cap on a different product — not the feed-image file-size ceiling.
TikTokJPEG, WEBP (photo posts, up to 35 images) · 20MB each — PNG not supportedMP4 only · 4GBVideo posts remain capped at exactly one file; photo carousels can't be mixed with video.
YouTubeNo image upload for posts (thumbnails are a separate, distinct endpoint)Several containers accepted · 256GB hard ceiling (stated on the API reference)A YouTube Data API compliance audit is required for public/unlisted uploads on most integrations.
PinterestJPEG, PNG · 20MB (Pins API/desktop) — PostGate currently enforces 32MB, which matches Pinterest's in-app mobile ceiling insteadMP4/MOV · 2GBBecause PostGate's enforced 32MB exceeds the documented 20MB API cap, an image between 20–32MB can pass PostGate's own validation and still be rejected by Pinterest at actual upload — treat 20MB as the safer practical ceiling.
X (Twitter)JPEG, PNG, WEBP · 5MBMP4 only · 512MB (536,870,912 bytes)4 images XOR 1 video/GIF per post — never a mix. Uses chunked media upload (INIT/APPEND/FINALIZE), not a single request.
BlueskyJPEG, PNG, WEBP · 1MB · up to 4 imagesNot supportedVideo publishing isn't implemented — Bluesky's AT Protocol video path is a separate upload-and-poll flow this integration doesn't have.
MastodonInstance-configurableInstance-configurableEvery instance sets its own media ceilings; confirm via that instance's /api/v1/instance endpoint.
TelegramURL-fetch: 5MB · Direct upload: 10MBURL-fetch: 20MB · Direct upload: 50MBPostGate delivers via URL-fetch, so the lower column applies in practice. PostGate's own enforced video ceiling (50MB) currently matches the direct-upload figure, not the URL-fetch ceiling its delivery path actually uses — see the video specs post for what that means for a video between 20–50MB.
Google Business ProfileJPG, PNG (no WEBP documented) · 5MBNot supported via APINo video-upload endpoint exists in the Business Profile API — the commonly cited 30s/75MB/720p video spec describes the mobile app and Google Maps only.
02

Go deeper on a specific dimension

This table is deliberately compact. For the full picture on any one column, the dedicated pages below cover it in more depth, with source citations and confidence flags on every figure:

03

How does PostGate handle this?

Instead of hand-checking every platform's current documentation before every publish, PostGate's media pipeline validates format, size, dimensions, and duration against the platform capability matrix the moment an asset is ingested — so a mismatch surfaces as an immediate, structured error instead of a silent per-target publish failure discovered after the fact.

Frequently asked questions

Why does Threads reject PNG images via API even though Meta documents PNG support?

This is a real, confirmed doc-vs-live-behavior mismatch: Meta documents JPEG and PNG for Threads, but the live API rejects PNG image_url containers with a generic "Invalid parameter" error. PostGate enforces JPEG-only for Threads in practice for exactly this reason — use JPEG for guaranteed compatibility.

Is the LinkedIn feed image limit really 8MB?

No documented feed-image file-size ceiling could be found. LinkedIn's often-cited "8MB" and "36" figures actually describe the profile-photo limit and a 36-megapixel resolution cap on a different product — not the feed-image ceiling. PostGate enforces 8MB as its own conservative default, which shouldn't be treated as a platform-guaranteed number.

What is the safe maximum image size for Pinterest via API?

Treat 20MB as the practical ceiling — that is Pinterest's documented Pins API/desktop cap. PostGate currently enforces 32MB, which matches Pinterest's in-app mobile ceiling instead, so an image between 20 and 32MB can pass PostGate's own validation and still be rejected by Pinterest at actual upload.

Can I mix images and video in a single X (Twitter) post?

No — X allows 4 images or 1 video/GIF per post, never a mix. Images can be JPEG, PNG, or WEBP up to 5MB; video is MP4 only, up to 512MB (536,870,912 bytes), uploaded via X's chunked media upload flow (INIT/APPEND/FINALIZE) rather than a single request.

Can I upload video to Google Business Profile through the API?

No — no video-upload endpoint exists in the Business Profile API. The commonly cited 30-second/75MB/720p video spec describes the mobile app and Google Maps only. Via API, Google Business Profile accepts JPG and PNG images up to 5MB, with no WEBP documented.

Build it with PostGate

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

Start building Read the docs