Instagram API errors · checked against Meta's docs on 10 October 2026
Instagram API error 2207026: Video format is not supported
| Code | 352 |
|---|---|
| Subcode | 2207026 |
| Message | The video format is not supported. Please check spec for supported {video} format |
What it means
The file is a video, but not one Instagram accepts. Meta asks for MOV or MP4, and the spec for Reels and story videos is stricter than the container alone:
- Video: H.264 or HEVC, progressive scan, closed GOP, 4:2:0 chroma subsampling
- Audio: AAC, 48 kHz at most, mono or stereo
- 23 to 60 frames per second, at most 1920 pixels wide, at most 25 Mbps
- The
moovatom at the front of the file and no edit lists - Reels: 3 seconds to 15 minutes, 300 MB at most. Story videos: 3 to 60 seconds.
Files that often fail: WebM or VP9 from browsers and screen recorders, ProRes exports, 10-bit 4:2:2 footage, and MP4s written without fast start (the moov atom at the end).
How to fix it yourself
ffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -r 30 \
-vf "scale='min(1920,iw)':-2" -b:v 8M -maxrate 20M -bufsize 20M \
-c:a aac -ar 48000 -ac 2 -b:a 128k -movflags +faststart output.mp4
How postcache handles it
Upload with x-target: instagram.reels (or instagram.story). postcache probes the codecs, container, pixel format, frame rate, width, bitrate, moov position and edit lists, and tells you which rule fails. With convert=crop or convert=pad it re-encodes to H.264/AAC MP4 that passes. It never trims duration, so a video that is too long still needs editing.
curl -X PUT "https://postcache.dev/v1/media?convert=pad" \
-H "Authorization: Bearer $POSTCACHE_API_KEY" \
-H "x-target: instagram.reels" \
--data-binary @screen-recording.webm
Sources: Meta's Instagram Platform error codes and IG User Media spec. More: all Instagram API media errors · postcache API docs.