Instacart video thumbnail 1067x600 to 1600x900 from a clip

Instacart wants a 16:9 JPG or PNG thumbnail of 1067x600 to 1600x900, 10 MB max. Pull a still from your video with the unbilled video-frames route.

3 min readSume
All posts

Instacart's shoppable video ads need a separate thumbnail: a 16:9 JPG or PNG between 1067x600 and 1600x900, at most 10 MB. If your clip is 16:9, call POST /v1/video-frames with an at time and max_edge: 1600 and you get a still whose long edge is 1600.

Instacart facts are from its Ads Manager page (updated August 12, 2026, read 2026-10-01). Sume facts are from Video frames.

What does Instacart ask for?

Instacart thumbnail rules, read 2026-10-01
RuleValue
FormatJPG or PNG
Size1067x600 up to 1600x900
Aspect ratio16:9
File size10 MB maximum

How do I pull the still?

Video frames takes one media.sume.com clip and either at[] (1 to 24 times) or fps. It is unbilled and the submit is always 202, so poll GET /v1/video-frames/{id} until resource_status is ready. format is jpeg by default or png, and max_edge clamps the long edge between 16 and 2160. The source must be 300 seconds or shorter.

curl -X POST https://api.sume.com/v1/video-frames \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: thumb-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/ad.mp4",
    "at": [1.5, 3, 4.5],
    "format": "jpeg",
    "max_edge": 1600
  }'

What can go wrong?

Each frame comes back as frames[{t,url,width,height}], so read width and height and confirm they fall in the range above. An instant that fails returns a null url without failing the job, and a time at or beyond the clip's duration fails with frame_time_out_of_range. If the clip is not 16:9, the still will not be either, so fix the video first with the Instacart video post. Confirm current rules on Instacart's page.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume