Instagram 3-second minimum for Reels: check clips before publishing
Meta lists Reels at 3 seconds minimum, but Sume video-trim accepts down to 0.2 s. Read duration_seconds from the trim result before you publish.

Sume will write a clip shorter than Instagram accepts, so check duration_seconds on the trim result before publishing: Meta lists Reels as "15 mins maximum, 3 seconds minimum", while video-trim takes a duration from 0.2 to 900 seconds.
Where do the minimums differ?
Instagram's minimum is 3 seconds for both Reels and Stories in Meta's reference.
| Where | Minimum |
|---|---|
| Instagram Reels | 3 seconds |
| Instagram Stories | 3 seconds |
| Sume video-trim duration | 0.2 seconds |
| Sume timeline video slot | 0.2 seconds |
How do I keep a cut above 3 seconds?
Set duration yourself, and prefer end only when you know the source is long enough: an end past the source clamps and the result warns trim_clamped_to_source, which can leave you with a shorter clip than planned.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: reel-min-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/source.mp4",
"start": 10,
"duration": 5
}'What about a short slot in a timeline?
A Timeline 1.0 video[] slot must be at least 0.2 seconds, and the render's length is the audio spine's duration_seconds (1 to 1800). If you build a Reel from slots, set the spine to at least 3 seconds.
What should the check look like?
After the job, read duration_seconds from GET /v1/jobs/:id/result, and refuse to publish anything under 3 seconds. Sume does not enforce Instagram's rule, and Meta's page is the place to confirm the number before you ship.
Why does the trim result matter more than the request?
The request says what you asked for; the result says what you got. Trim can clamp an end that runs past the source, and a keyframe cut may start a GOP early, so the real length and start can differ from the numbers you sent. The result's duration_seconds and actual_start_seconds are the numbers to trust before you hand the file to Meta's container call.
- Use
exactprecision when you need the length to be predictable. - Read
warnings[]on every result. - Drop the file and re-cut if
duration_secondsis under 3.
Sources
Related posts
More in Use cases
- Instagram Stories API video: 60 seconds max, trim with Sume
Meta's reference lists Stories video at 3 to 60 seconds, 100MB and 23-60 FPS. Sume video-trim writes a range at 24, 25, 30 or 60 fps to fit.
- App Store preview video length: 15-30 s, 30 fps max
Apple's app preview specs list 15-30 seconds and a 30 fps maximum. Sume's Timeline keeps source fps when omitted, so set output fps to 30 for a preview.
- Kevin MacLeod attribution: credit text and Sume's BGM field
Kevin MacLeod tracks need a CC BY 4.0 credit that is easy to find. Sume's BGM featured beds are his tracks; keep track.attribution with any public use.
- Korea AI Basic Act Article 31: labeling an exported AI video
MSIT's guidelines ask for a human-recognizable label when AI video leaves the service. Here is how to burn a visible Korean label onto a clip with cues.
Written by Sume