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.
- LinkedIn 30-minute video: build 1800 s with Timeline
LinkedIn's Videos API lists three seconds to 30 minutes. Sume Timeline 1.0 renders up to 1800 s in one MP4 at $0.10 per output minute: 30 minutes is the cap.
- LinkedIn Videos API: 500MB or 5GB? Plan for the lower number
LinkedIn's Videos API page lists a 75kb to 500MB file size and a 5GB maximum. Sume states no output file size, so measure the MP4 first.
- LinkedIn video captions: English SRT only vs burned-in text
LinkedIn's Videos API takes one English caption file, shown with SRT. Sume video-captions burns your cues text into the video and does not accept SRT uploads.
Written by Sume