Instagram does not publish one set of Reels specs. It publishes three, and they do not agree with each other. The help centre, aimed at people posting from the app, gives minimums and a range. The Graph API documentation, aimed at tools that post on your behalf, gives a hard 300MB ceiling and a different frame rate range. The ads guide gives a third set again.
Almost every contradiction on this topic comes from someone quoting one of the three and calling it "the Instagram Reels specs." This page keeps them apart, cites each one, and is explicit about where Instagram publishes nothing at all.
The specs, at a glance
| Posting from the app | Posting via the Graph API | Reels ads | |
|---|---|---|---|
| Aspect ratio | "between 1.91:1 and 9:16" | "between 0.01:1 and 10:1", 9:16 recommended | 9:16 |
| Resolution | "minimum resolution of 720 pixels" | "Maximum columns (horizontal pixels): 1920" | "1440 x 2560 pixels" |
| Frame rate | "minimum frame rate of 30 FPS" | "23-60 FPS" | fixed frame rate |
| Duration | up to 20 minutes | "3 seconds minimum", "15 mins maximum" | "0 seconds to 15 minutes" |
| File size | not published | "300MB maximum" | "4 GB" |
| Video codec | not named | "HEVC or H264" | "H.264 compression format" |
| Video bitrate | not published | "VBR, 25Mbps maximum" | not listed |
| Container | not named | "MOV or MP4 (MPEG-4 Part 14)" | "MP4, MOV" |
Sources, in column order: Instagram's help centre on reel size and aspect ratios and recording a reel; Meta's Instagram User Media API reference; Meta's Reels video ad specs, for the Awareness objective.
Use the column that matches how you post. Tapping the plus button in the app? The 300MB and 15-minute figures are not yours — they belong to the API. Scheduling through a third-party tool that publishes via the API? They are.
The number that appears in no official document: 1080 × 1920
This is worth stating plainly, because it contradicts nearly every result on page one. Instagram's help centre does not specify a recommended resolution for Reels. It specifies a floor: "Reels should have a minimum frame rate of 30 FPS (frames per second) and minimum resolution of 720 pixels."
That is the whole statement. It does not say whether the 720 refers to width or to height, and it does not name a target above it. The only concrete resolution anywhere in Meta's official Reels material is 1440 x 2560, in the ads guide. Not 1080 × 1920.
So where does 1080 × 1920 come from? It is the industry-standard vertical HD frame and a perfectly sensible thing to export — above the 720-pixel floor, inside the API's 1920-horizontal-pixel cap. It is just not an Instagram specification. If your Reel looks soft, the frame size you chose is rarely the culprit; see the upload quality toggle below, which is documented and off by default.
Duration: 20 minutes is the cap, 3 minutes is the line that matters
Instagram's help centre is direct about length: "You can record one or multiple clips that add up to 20 minutes."
It then adds a second sentence that most spec sheets leave out entirely, and it is the more useful of the two: "Note: Reels over 3 minutes won't be recommended to new audiences."
Read that qualifier exactly as written: not recommended to new audiences — not removed, not penalised, not hidden from your followers. A 12-minute Reel is a perfectly legal upload your existing audience still sees; what it gives up is distribution to people who do not already follow you. If reach is the point, the practical ceiling is three minutes, not twenty, and that has nothing to do with file specs.
The "90 seconds" figure still circulating is a historical limit. The current help centre says 20 minutes; the API documentation says 15 minutes for its own path.
What to do when your file is too big or the wrong shape
For the app there is no published size limit to aim at, so the useful targets are the ones Instagram does state: stay inside 1.91:1 to 9:16, keep the frame rate at 30 FPS or above, and stay above the 720-pixel minimum. For an API upload you have a real number to hit — 300MB — and a real frame rate window of 23 to 60 FPS. Re-encoding solves all of those at once, without sending your footage anywhere.
Try it right here
Runs in your browser. Your file is not uploaded anywhere.
This runs inside your browser tab. The file is read from disk, re-encoded locally and handed back — nothing is uploaded to a server, which for unpublished footage is the difference between one copy existing and two. To understand what you trade away rather than accepting a preset, how to compress a video without losing quality covers what bitrate and resolution actually do. For a QuickTime file straight off a Mac or iPhone, MOV to MP4 changes the container with no upload round trip, and all Clapr tools covers the rest.
"It's a valid MP4 and the API still rejects it"
This one is buried in the API reference and explains a failure that otherwise looks like a bug. The container requirement is not just "MP4" — it reads in full:
"Container: MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file."
Two conditions there have nothing to do with your video's picture or sound.
The moov atom is the file's index — the map of where every frame lives. Many encoders write it at the end, because its final contents are only known once encoding finishes. A player reading from local disk does not care; a service that wants to start reading before it has the whole file does. An MP4 with its moov atom at the back is completely valid and this endpoint will still refuse it. In ffmpeg terms that is exactly what -movflags +faststart fixes: it rewrites the file with the index moved to the front.
Edit lists are instructions embedded in the container telling a player to skip, trim or offset parts of the track rather than storing the trimmed result. Some editors leave them behind after a trim. The documentation says none.
Both are properties of how the file was written, not of how it looks — which is why "every parameter matches the spec and it still fails" is a real state to be in.
Cover photos: two official sizes, and two different crops
Two cover photo specs exist and both are genuine, for different paths. The help centre says: "The recommended size for cover photos is 420px by 654px (or 1:1.55 ratio). Right now, you can't edit your cover photo after you've uploaded it." The API reference instead specifies JPEG, sRGB, "8MB maximum", and recommends 9:16.
The API page also documents the cropping rule, which explains something you can observe yourself: "If the aspect ratio of the original image is not 9:16, we crop the image and use the middle most 9:16 rectangle as the cover photo for the reel. If you share a reel to your feed, we crop the image and use the middle most 1:1 square as the cover photo for your feed post."
The same cover is therefore cropped two different ways depending on where it appears, so anything that must stay readable has to survive both the 9:16 and the centre 1:1 crop. Note this documented rule covers the cover photo; Instagram does not publish equivalent crop ratios for the video itself per placement.
Gotchas worth knowing
There is a high quality upload toggle, and it is off by default. The help centre states: "You can chose to always upload reel at the highest quality. Note it may take longer to upload reel of higher quality." (The spelling is Instagram's own.) The documented path: Profile → Menu → below "Your app and media", tap "Media quality" → turn on "Upload at highest quality". If your Reels come out softer than your source, check this first.
The audio specs genuinely contradict each other. The help centre's technical details list "Sample rate 96khz or 48khz" and channels of "Stereo or Stereo + 5.1". The API reference says AAC, "48khz sample rate maximum, 1 or 2 channels (mono or stereo)." Both are official and govern different paths. 48 kHz stereo AAC is the only setting that satisfies both.
Stories are not Reels. The same API page lists a much shorter duration ceiling and a smaller file size limit for Stories. A 60-second or 100MB figure attached to "Instagram video" is the Stories path, not Reels.
Ad safe zones are for ads. Meta's ads guide expresses safe-zone guidance as percentages of the frame, written for the ad placement. The pixel values widely quoted for organic Reels do not come from Instagram's documentation.
Reels cannot be part of a carousel, per the API documentation, and music tagging applies only to original audio.
FAQ
What are the correct Instagram Reels dimensions? Instagram's help centre gives a minimum resolution of 720 pixels and an aspect ratio between 1.91:1 and 9:16 — it does not publish a recommended resolution. 1080 × 1920 is a common industry choice that satisfies those bounds, but it is not an official Instagram figure. The only exact resolution in Meta's Reels documentation is 1440 x 2560, and that is for ads.
How long can an Instagram Reel be? Up to 20 minutes when recording in the app. But Instagram also notes that Reels over 3 minutes will not be recommended to new audiences, so three minutes is the practical limit if reach matters. The old 90-second cap is out of date.
What is the maximum file size for an Instagram Reel? Through the Graph API, 300MB. For ads, 4 GB. For posting from the app, Instagram publishes no file size limit — the "1GB" figure repeated across many sites has no official source. Check the official documentation for the app path.
Why does my Reel upload fail even though the format looks correct? If you are uploading via the API, check two container-level conditions that are easy to miss: the moov atom must be at the front of the file, and the file must contain no edit lists. Both can be true of a valid MP4 that plays fine locally. Re-encoding the file fixes both.
All specifications quoted from the four Meta sources linked above, checked 16 September 2026. Platform specs change — verify against the source before relying on them.