Instagram carousel limit of 10: make 10 stills from one video
Meta's guide limits carousels to 10 images, videos or a mix, and 100 API posts per 24 hours. Sume video-frames takes up to 24 times per call, so pick 10.

Send at[] with ten times to POST /v1/video-frames and use the ten JPEG stills as one carousel. Meta's content publishing guide says "Carousels are limited to 10 images, videos, or a mix of the two," and Sume's route accepts 1 to 24 times per call, so the cap to respect is Instagram's.
What are the limits on each side?
Two Instagram numbers matter here, and the second is easy to miss when you automate.
| Item | Value | Where |
|---|---|---|
| Items per carousel | 10 images, videos, or a mix | Meta content publishing guide |
| API posts | 100 within a 24-hour moving period per account | Meta content publishing guide |
| Frames per Sume call | 1 to 24 at[] values | Video frames docs |
| Source length for frames | 300 s or less | Video frames docs |
How do I choose ten moments?
Either name them with at[] or let fps (up to 2) sample the clip; fps expands to mid-bin times and is capped at 24 frames, so you would then keep ten of them. Every at value must be at least 0 and below the clip length.
curl -X POST https://api.sume.com/v1/video-frames \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: carousel-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/tour.mp4",
"at": [1, 4, 7, 10, 13, 16, 19, 22, 25, 28],
"format": "jpeg",
"max_edge": 1440
}'Can I mix stills and video in one carousel?
Meta's line allows a mix, up to the same 10 items. A trimmed clip from https://docs.sume.com/models/video-trim can sit next to the stills. Sume does not create the carousel container; that is your Graph API call.
How does the daily limit change the plan?
Meta's limit is stated in API-published posts, so a batch job should count the posts it publishes and not the frames it extracts. Frame extraction on Sume is unbilled, so extra candidates cost nothing but time.
What should I review before publishing?
Frames are evidence, not a designed set, so review them. A blank transition frame or a half-blink is easy to miss in a list of URLs. Open each returned frames[].url, drop the weak ones, and re-extract at a nearby time if you need a replacement.
- Check that no entry has a
nullurl; a failed instant does not fail the job. - Keep the same
max_edgefor all frames so they are the same size. - Save the artifact ids so you can trace each slide to a time in the source.
Sources
Related posts
More in Use cases
- Instagram carousel crops to the first image: crop stills to match
Meta says carousel images are cropped based on the first image, default 1:1. Sume video-filter crop, then video-frames, gives stills that share one shape.
- Instagram Feed video ad 9:16 at 1080x1920: size and 1% tolerance
Meta lists 9:16 at 1080 x 1920 for Instagram Feed video ads with a 1% tolerance. Sume 9:16 settings and a Timeline output that fit, with the arithmetic.
- Instagram reel download API: oEmbed embeds, Sume imports
Instagram's oEmbed endpoint is for embedding, not downloading. Sume's POST /v1/media-imports copies a public Reel URL into Sume storage; YouTube is rejected.
- 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.
Written by Sume