Threads image post: 8 MB, 320 to 1440 px wide, from video frames

Threads images must be JPEG or PNG, up to 8 MB, 320 to 1440 px wide. Pull a still from a Sume clip with video-frames and clamp the long edge to 1440.

5 min readSume
All posts

Threads image posts take JPEG or PNG up to 8 MB, between 320 and 1440 pixels wide, with an aspect ratio no more extreme than 10:1. To make one from a Sume clip, call video-frames with max_edge 1440 so that no side exceeds the Threads maximum, then confirm the returned width.

What are the Threads image limits?

The table lists the limits from the Threads posts page next to the video-frames control that matches each one.

Threads image limits and the matching video-frames field (read 2026-10-05)
Threads limitValuevideo-frames control
FormatsJPEG, PNGformat: jpeg or png
Width320 to 1440 pxmax_edge 16 to 2160 clamps the long edge
File size8 MB maximumCheck the saved file
Aspect ratio10:1 limitKeeps the source ratio

How do I extract a Threads-ready still?

Send the request with an Idempotency-Key. The submit always returns 202, so poll the resource and read frames[].width before you attach the image.

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

What can still go wrong?

max_edge clamps the long edge, so a very tall frame can end up narrower than 320 pixels. Reading width from the result catches that. The file size is not in the docs for this route, so check it before upload, and switch to jpeg if a png frame is too heavy.

video-frames accepts sources up to 300 seconds and 24 frames per call.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume