"Your video is too long" on Instagram rarely means you crossed one universal limit. It means you hit the ceiling of the particular route your file took — and Instagram documents five different ceilings, across three different Meta properties.
Twenty minutes. Fifteen minutes. Sixty seconds. Sixty minutes. Fifteen minutes again, on a different page. All five are official, all five are current, and none of them replaces the others. If you have been trimming against the wrong one, that is why the same clip is accepted in one place and refused in another.
What "too long" actually means here
Instagram is not one upload pipeline with one length check. It is several, each documented by a different Meta property: posting in the app is covered by Instagram's help centre, posting through a third-party scheduler goes through the Graph API documented by Meta for developers, and running a paid ad is covered by Meta's ads guide.
Whichever route your file takes is the only ceiling that applies to it. That is the whole mechanism, and it explains the most common version of this complaint: a video that uploads fine when you post it by hand but gets rejected by the scheduling tool you pay for. Nothing changed about the file. The route changed.
One number to discard before you start: 90 seconds is historical. It is not the current cap on any of these routes, and any tool or article still enforcing it is out of date.
The five ceilings, and how to tell which one is yours
Every figure below is quoted from Meta's own documentation.
| How you are posting | Documented duration | Official wording |
|---|---|---|
| Recording/editing a reel in Instagram | up to 20 minutes | "You can record one or multiple clips that add up to 20 minutes." |
| A reel published through the Graph API | 3 seconds – 15 minutes | "Duration: 15 mins maximum, 3 seconds minimum" |
| A story video published through the Graph API | 3 – 60 seconds | "Duration: 60 seconds maximum, 3 seconds minimum" |
| A Feed video ad | 1 second – 60 minutes | "Video Duration: 1 second to 60 minutes" |
| A Reels ad | 0 seconds – 15 minutes | "Video Duration: 0 seconds to 15 minutes" |
Three qualifiers you should not drop when you use these numbers:
- The two ad rows come from pages split by campaign objective. The wording above was taken from the Awareness objective pages. A different objective may carry a different set, so check the ads guide page for the objective you are actually buying.
- The 20-minute figure is about recording a reel, and Instagram opens that same help article by saying "Reels isn't currently available to everyone. Some accounts may be able to see reels, but won't be able to record them." Availability itself is tiered, so "everyone gets 20 minutes" is not a safe reading.
- The 3-second floor is an API figure. Instagram does not publish a minimum length for recording in the app, so if a very short clip is refused there, the documentation will not tell you why.
Notice what the table does not contain: a duration for a plain feed video that is neither a reel nor an ad. Instagram does not publish a standalone feed-video spec page at all — and as of a 16 September 2026 check, its own "post a video" help article resolves to the Reels article.
The fastest fix: pick the route, then cut to its number
1. Decide which route the file is taking. If you are stuck at 15 minutes inside a scheduling tool and your video is 18 minutes long, the tool is not broken — it is enforcing the API's documented maximum, and posting that same file by hand from the app is the fix, not a re-export.
2. Cut to the ceiling of that route, not to the most generous number you have read. A story video going out through the API has to clear 60 seconds; a reel through the API has to clear 15 minutes. The 60-minute figure belongs to Feed video ads and will not help you.
3. If you want the video to stay in the feed rather than land in the Reels tab, a carousel is the documented way. Instagram states: "Keep in mind that videos in carousels are not considered reels and will not show up in the Reels tab or have reels features." The trade has an unlit corner, though: Instagram publishes no duration or file-size limit for video inside a carousel.
4. Re-encode if size, not length, is what is actually stalling you. Long videos are usually big videos, and the API route publishes ceilings for both: "File size: 300MB maximum" and "Video bitrate: VBR, 25Mbps maximum" for reels, "File size: 100MB maximum" for story video. For posting from the app, Instagram publishes no file size limit at all.
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 straight back — nothing is uploaded to a server, which for unpublished footage means one copy of it continues to exist instead of two. For footage that is not headed to a social feed, the general-purpose video compressor has presets tuned differently, and all Clapr tools covers the rest of the set.
The 3-minute line, which is not a limit
There is a second number in Instagram's length article that catches far more people than the 20-minute cap does, because it does not produce an error at all:
"Note: Reels over 3 minutes won't be recommended to new audiences."
Read the qualifier exactly as written. Not recommended to new audiences — not removed, not blocked, not penalised. The sentence covers recommendations to new audiences and nothing else.
So if your complaint is really "it posted and nobody watched it," the number that matters to you is three minutes, and no amount of compressing or re-exporting will move it. That is a length decision, not a file problem.
Other causes that look like a length problem
- The scheduler reported nothing and the post never appeared. API uploads are asynchronous; Meta notes that "receiving a container ID does not guarantee that the upload was successful." The container's
status_codereturns one ofEXPIRED,ERROR,FINISHED,IN_PROGRESSorPUBLISHED, and Meta recommends "querying a container's status once per minute, for no more than 5 minutes."EXPIREDmeans it was not published within 24 hours. - A valid MP4 rejected by the API. The reel spec requires "no edit lists, moov atom at the front of the file" — a structural requirement your editor may not satisfy by default, and one that has nothing to do with duration.
- You ran out of posts, not out of minutes. Two separate API gates exist: accounts are "limited to 100 API-published posts within a 24-hour moving period" (carousels count as one), and an account "can only create 400 containers within a rolling 24 hour period." Either one alone can stop you.
- Your carousel is too long in the other sense. Instagram's help centre allows "up to 20 photos and videos" in a carousel from the app; the API's
childrenparameter takes "an array of up to 10 container IDs." Same feature, two documented counts, depending on route. - You tried to put a reel in a carousel. The API states flatly: "Reels cannot appear in carousels."
How to tell it worked
Check the trimmed duration against the number for your route, not the longest number you have seen quoted. If you published through the API, do not treat a returned container ID as success — poll status_code until it reads FINISHED. If it posted but underperformed and runs over three minutes, the upload worked as designed; the limit on being recommended to new audiences is documented, not a bug.
FAQ
How long can an Instagram video be? It depends on the route. Instagram's help centre documents up to 20 minutes for a reel recorded in the app. The Graph API caps reels at "15 mins maximum, 3 seconds minimum". Feed video ads run "1 second to 60 minutes". There is no single answer, which is exactly why this question generates so many contradictory ones.
Why does my scheduling tool say 15 minutes when Instagram says 20? Because your tool publishes through the Graph API, whose documented reel maximum is 15 minutes, while the 20-minute figure comes from the in-app help article. Both are correct for their own route. Posting that file by hand from Instagram is the workaround.
Is there still a 90-second limit on Reels? No. That figure is out of date. The current help centre wording is 20 minutes for recording in the app, and the API documents 15 minutes.
How long can a Story video be? Meta's API documentation gives story video "60 seconds maximum, 3 seconds minimum", along with a 100MB file size maximum. That is the published figure for the API route; for behaviour when posting stories directly in the app, check the official documentation.
What is the maximum file size for a video posted from the app? Instagram does not publish one. The 300MB figure is the API's reel ceiling and the 4GB figure belongs to the ads guide; neither is a statement about posting from the app. Other numbers you will see quoted for this have no official source behind them.
Does length affect how my video is cropped? Not in anything Instagram documents — length and framing are separate questions. For the aspect ratio and resolution side, see Instagram Reels video specs, which keeps the app, API and ads figures apart the same way this page does.
Figures quoted from Instagram's help centre, Meta's Instagram Graph API media reference and Meta's ads guide, checked 16 September 2026. Meta revises these pages; verify against the official page for your route before relying on a number. More upload-failure walkthroughs live in the fix guides, and for the same breakdown on another platform see TikTok's video size limit.