jq one-liners for the video model catalog: ids, durations, 1080p
Two jq filters over GET /v1/videos/models: a table of ids with min and max seconds, and a filter for models that take 20 s at 1080p. Tested on a local copy.

Model pages go stale and blog posts go stale faster. The reliable answer to which video model takes a 20-second clip at 1080p is the catalog itself: GET /v1/videos/models returns { data: [VideoModel] }, and each entry lists supported_resolutions, supported_durations, supported_aspect_ratios, supported_frame_images, supported_input_references and generate_audio. The catalog also drives validation, so a value that is not in those lists gets a 400 instead of being silently dropped.
Both filters below run in a terminal with curl and jq and were tested against a local stand-in server that returns the documented catalog shape.
A table of ids and limits
This prints one tab-separated line per model: the id, the shortest and longest duration, and the resolutions. min and max work because supported_durations is an array of whole seconds.
curl -s https://api.sume.com/v1/videos/models -H "Authorization: Bearer $SUME_API_KEY" |
jq -r '.data[] | [.id, (.supported_durations|min), (.supported_durations|max),
(.supported_resolutions|join("/"))] | @tsv'Which models take this clip
The second filter turns a requirement into a list of ids. It is a pipeline of two select calls: index($s) finds the duration and index("1080p") finds the resolution. Change the numbers, or add a third select on supported_input_references to find models that take video references.
# which ids accept a 20-second clip at 1080p?
curl -s https://api.sume.com/v1/videos/models -H "Authorization: Bearer $SUME_API_KEY" |
jq -r --argjson s 20 '.data[]
| select(.supported_durations|index($s))
| select(.supported_resolutions|index("1080p")) | .id'What the catalog says today
From the Sume model cards in the repository on 2026-10-05, these are the duration and resolution envelopes of the pass-through ids. Read the live catalog before you rely on them, because the point of the filters is that the catalog, not a table in a post, is the source.
| Model id | Seconds | Resolutions |
|---|---|---|
| seedance-2.5 | 4 to 30 | 480p, 720p, 1080p |
| wan-3.0 | 2 to 30 | 480p, 720p, 1080p |
| kling-3 | 4 to 15 | 720p, 1080p |
| minimax-h3 | 5 to 15 | 480p, 768p |
| gemini-omni-flash-1.1 | 3 to 10 | 360p, 720p, 1080p, 4K |
Two traps in the output
The catalog is per model, and it describes what the model accepts, not what a particular input shape accepts. Seedance 2.5 lists 30 seconds, but a request that sends a reference video still follows the reference rules for that model. Prices are not in the filter above; the pricing_skus field carries them as decimal USD strings at the Sume rate, which is the provider list price times 1.25. Divide by seconds or by 1,000 video tokens depending on the SKU name before you compare two models.
Also remember that sume/auto is not in the catalog. It is a routing value, not a model, and it resolves to Gemini Omni Flash 1.1 with its own 3 to 10 second window, so do not search the list for it.
Using the answer
Run the second filter in CI and fail the build when your chosen model disappears from the result, which gives you an early warning for a retired id. OpenAI's own deprecations page lists the Videos API and the sora-2 ids with a removal date of September 24, 2026 and no replacement (https://developers.openai.com/api/docs/deprecations, read 2026-10-05); a catalog check in your pipeline is how you would have noticed a change like that before production did.
Sources
Related posts
More in Developers
- Kling 3 image-to-video on Sume: the first frame sets the shape
With a first frame, Sume's kling-3 builder does not send aspect_ratio. Crop the image to the shape you want before you submit. Here is the request.
- Kling 3 negative prompt and cfg_scale on Sume: fixed, no field
Sume's kling-3 sends its own negative prompt and a cfg_scale of 0.5 to the provider. There is no public field to change either, so steer with the prompt itself.
- Kling motion control returns 400 on reference_image_urls or model
The Sume motion-control body is strict. It rejects Video 1.0 words such as reference_image_urls, reference_video_urls, model and provider endpoint fields.
- Kling motion control 402: a 30 s reference needs $4.725 in credits
402 insufficient_credits on Kling motion control means your balance is below the reserve for the declared length. 30 s is $4.725. Trim, then retry.
Written by Sume