Skip to main content

Media Requirements

Each social platform enforces its own limits on file sizes, dimensions, video duration, and formats. This page covers every constraint so you can validate media before uploading.

Upload Limits

The PostEverywhere API accepts files up to these sizes:

TypeMaximum Size
Images20 MB
Videos500 MB
PDFs20 MB

Accepted MIME Types

image/jpeg
image/png
image/gif
image/webp
image/heic
image/heif
video/mp4
application/pdf

Only video/mp4 is accepted for video uploads. If your source video is in another format, transcode it to H.264 MP4 before uploading.

File Size Limits by Platform

The API enforces the PostEverywhere upload limits above, but individual platforms may reject media that exceeds their own limits. Ensure your files stay within these bounds:

PlatformImage MaxVideo MaxOther
Instagram8 MB100 MB--
X / Twitter5 MB512 MB--
LinkedIn20 MB5 GB100 MB (PDF)
Facebook4 MB1 GB--
TikTok2 MB500 MB--
YouTube--256 GB--
Threads8 MB100 MB--
Pinterest20 MB2 GB--
tip

PostEverywhere's own 500 MB video upload limit is more restrictive than some platforms (YouTube, LinkedIn). We process and re-upload your media to each platform.

Image Dimensions

PlatformMinimumMaximum / Recommended
Instagram320 x 3201080 x 1350 (4:5 portrait recommended)
X / Twitter200 x 2004096 x 4096
LinkedIn552 x 3684000 x 4000
Facebook200 x 2002048 x 2048
TikTok720 x 12801080 x 1920
Threads320 x 3201080 x 1350
Pinterest200 x 2001000 x 1500 (2:3 recommended)

Video Duration Limits

PlatformMinimumMaximum
Instagram Reels3 seconds15 minutes
X / Twitter0.5 seconds2 min 20 sec
LinkedIn3 seconds10 minutes
Facebook1 second4 hours
TikTok1 second10 minutes
YouTube1 second12 hours
Threads1 second5 minutes
Pinterest4 seconds15 minutes

Aspect Ratios

Aspect ratio requirements vary significantly by platform. Getting these wrong is one of the most common causes of publishing failures.

PlatformAccepted RatiosNotes
TikTok9:16 onlyVertical video is mandatory. Other ratios are rejected.
Instagram4:5 to 1.91:14:5 portrait performs best. Square (1:1) is safe.
X / Twitter1:3 to 3:1Wide range accepted. 16:9 is standard.
LinkedIn1:2.4 to 2.4:11:1 or 16:9 recommended for feed.
Facebook9:16 to 16:94:5 recommended for feed.
YouTube16:9Other ratios are letterboxed or pillarboxed.
Threads4:5 to 1.91:1Same as Instagram.
Pinterest2:3 to 1:12:3 vertical pins perform best.
TikTok requires 9:16

TikTok strictly rejects any video that is not in 9:16 portrait orientation. Always verify the aspect ratio before publishing to TikTok.

Media Count Limits

Maximum number of media attachments per post:

PlatformImagesVideosPDF
Instagram10 (carousel)1 (Reels)--
X / Twitter41--
LinkedIn2011
Facebook101--
TikTok11--
YouTube--1--
Threads101--
Pinterest11--
note

You cannot mix images and videos in the same post on most platforms. Instagram carousels are image-only.

Video Codec Requirements

All platforms require H.264-encoded MP4 files. Details vary:

PlatformCodecFrame RateMax Bitrate
InstagramH.26430 fps25 Mbps
X / TwitterH.26460 fps25 Mbps
LinkedInH.26430 fps30 Mbps
FacebookH.26430 fps16 Mbps
TikTokH.26430 fps20 Mbps
YouTubeH.264 / H.26560 fps128 Mbps
ThreadsH.26430 fps25 Mbps
PinterestH.26425 fps20 Mbps

Audio should be AAC, 128 kbps or higher. PostEverywhere transcodes uploaded videos via Cloudflare Stream, but starting with a compliant file avoids quality loss.

Upload Flow

Media uploads follow a 3-step process:

# Step 1: Upload the file
curl -X POST https://app.posteverywhere.ai/api/v1/media/upload \
-H "Authorization: Bearer pe_live_abc123..." \
-F "[email protected]"

# Response includes a media ID
# { "id": "med_abc123", "status": "processing", ... }

# Step 2: Wait for processing to complete
curl https://app.posteverywhere.ai/api/v1/media/med_abc123 \
-H "Authorization: Bearer pe_live_abc123..."

# { "id": "med_abc123", "status": "ready", ... }

# Step 3: Attach to a post
curl -X POST https://app.posteverywhere.ai/api/v1/posts \
-H "Authorization: Bearer pe_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"text": "Check out this photo!",
"accountIds": ["acc_123"],
"mediaIds": ["med_abc123"],
"scheduledAt": "2026-04-15T10:00:00Z"
}'

Always confirm the media status is ready before attaching it to a post. See Upload Media for the full endpoint reference.