Media requirements

Every size each network accepts, drawn at its real proportions — plus what happens when a file is the wrong shape.

Sizes by network

One block per network, every size it takes drawn together. A green tick means we published that exact size and watched it land; a red cross means it was refused. Sizes without a mark are the standard recommendation.

Instagram

The feed takes anything from 3:4 down to 1.91:1. Outside that it is refused outright — never cropped for you.

verified
3:4
1080×1440Feed, tallest
4:5
1080×1350Feed, best
1:1
1080×1080Feed, square
1.91:1
1080×566Feed, widest
9:16
1080×1920Reel & Story
3.4:1
1080×320Refused
JPEG only8 MBCarousel ≤10

TikTok

Video is vertical. Photos keep whatever ratio you upload — nothing is cropped.

in our code
9:16
1080×1920Video
4:5
1080×1350Photos
1:1
1080×1080Photos
Video ≤4 GBPhotos ≤35

YouTube

Horizontal is a video, vertical under 3 minutes is a Short. Same upload either way.

provider docs
16:9
1920×1080Video
9:16
1080×1920Short
16:9
1280×720Thumbnail
MP4 · MOVThumbnail ≤2 MB

Facebook

Pages only. Reels are vertical and run 3 to 90 seconds.

provider docs
4:5
1080×1350Feed
1.91:1
1200×630Link preview
9:16
1080×1920Reel
Video ≤1 GBReel 3–90 s

LinkedIn

Up to 20 images or one video — never both in the same post.

in our code
1.91:1
1200×627Link preview
4:5
1080×1350Portrait
1:1
1080×1080Square
Image ≤50 MBVideo ≤500 MB

X (Twitter)

Up to 4 images or a single video. Landscape shows largest in the timeline.

provider docs
16:9
1600×900Landscape
1:1
1080×1080Square
≤4 images1 video

Threads

Follows Instagram’s shapes. Carousels take up to 20 items.

provider docs
4:5
1080×1350Portrait
1:1
1080×1080Square
9:16
1080×1920Video
≤20 items500 characters

Networks with no shape rules

Bluesky, Mastodon, Discord, Telegram, Tumblr, DEV Community, WordPress publish whatever you give them. Upload the shape you want people to see — nothing is cropped or re-encoded on the way, except Bluesky images over 1 MB, which we compress for you.

What we fix for you

Some limits are ours to absorb. These four are handled before your file reaches the network.

Instagram Story fitting

A non-9:16 image is rendered onto a 1080×1920 canvas over a blurred copy of itself, so the whole frame survives instead of being centre-cropped. Scheduled and API posts get the same treatment server-side, with a solid black pad.

Bluesky compression

The protocol caps a blob at 1 MB. Anything larger is downscaled and re-encoded until it fits, rather than failing the post.

External media ingest

A post created with a public image or video URL has that file pulled onto our CDN first. Networks that reject unstable third-party URLs then see a stable one.

Large video streaming

Uploads run to 500MB from the app and up to 4 GB through a presigned URL. Video is streamed to the network rather than buffered, so a large file never has to fit in memory at once.

All the numbers

We never block an upload for its shape — the networks disagree with each other and change their minds, so we recommend and let the file through. Uploads cap at 500MB per file in the app, or 4 GB through a presigned URL, which is the better path for video. Storage is metered per seat; see Plans & quotas.

Media given as a public URL is copied to our CDN before publishing, so a link that dies between scheduling and publishing can’t take the post down with it. Details in the Media API reference.