List Sume video model limits with curl, jq and column in one table
curl GET /v1/videos/models into jq and column to see each model's duration range, resolutions and audio flag in one table. Documented limits for six models.

The quickest way to see what each Sume video model accepts is one pipeline: curl GET /v1/videos/models, jq to pick id, the shortest and longest supported duration, the resolutions and the audio flag, and column to align the output. The limits differ a lot, from 2 to 30 seconds depending on the model, so a request that works for one model returns a 400 on another.
What the docs say
The table is what the Sume docs state for six video models. The endpoint is the source of truth, because the catalog can change; the table is for planning.
| Model | Seconds | Resolutions |
|---|---|---|
| seedance-2.5 | 4-30 | 480p, 720p, 1080p |
| seedance-2 | 4-15 | 480p, 720p, 1080p |
| wan-3.0 | 2-30 | 480p, 720p, 1080p (prices exist for all three) |
| minimax-h3 | 5-15 | 480p, 768p (768p is native, not 720p) |
| minimax-h3-max | 5-15 | 480p, 768p, 1080p |
| gemini-omni-flash-1.1 | 3-10 | 360p, 720p, 1080p, 4K; 16:9 or 9:16; audio always on |
The pipeline
jq builds one tab-separated row per model. The duration cell is min-max of supported_durations, which are whole seconds; the resolution cell joins supported_resolutions with slashes; the last cell prints generate_audio as text. column -t -s with a literal tab aligns the columns. Add supported_aspect_ratios if you work with vertical output.
-fsS makes curl fail on an HTTP error and still print one line of reason. set -euo pipefail stops the script on any failure in the pipe, so a 401 does not produce an empty table that looks like an empty catalog.
#!/usr/bin/env bash
set -euo pipefail
curl -fsS https://api.sume.com/v1/videos/models -H "Authorization: Bearer $SUME_API_KEY" |
jq -r '.data[] | [.id, "\(.supported_durations | min)-\(.supported_durations | max) s",
(.supported_resolutions | join("/")), (.generate_audio | tostring)] | @tsv' |
column -t -s "$(printf '\t')"Reading the output
supported_durations is a list, not only a range. Take min and max for a quick look, but test membership before you send a duration, as the cheapest-model script in this series does. Likewise, supported_frame_images and supported_input_references say which image and reference types a model takes, and seed is false everywhere in v1.
Some models, such as higgsfield-genjutsu, are in the catalog only when their provider is configured, so the output on your key is the list you can really call.
A practical use of the table is to find the first model that fits a request before you look at price. For a 20-second clip only wan-3.0 and seedance-2.5 qualify, because the others stop at 15 seconds or less. For a vertical 6-second clip with sound, gemini-omni-flash-1.1 fits, since it accepts 9:16 and always generates audio.
The authoritative record is the endpoint response on your key. Treat the documented table as a starting point and the jq output as the truth, and diff the two when a call fails with a validation error. Pipe the same output into a file with the date in its name, and a later diff shows when a limit changed.
- Run it at deploy time and diff against the last run.
- Alert when a model you use disappears.
- Do not copy the table into code; read the endpoint.
Sources
Related posts
More in Developers
- List Sume video models: /v1/videos/models for limits, /v1/catalog
Two discovery routes, two jobs. /v1/videos/models returns durations, resolutions, aspect ratios and audio flags; the public /v1/catalog lists the wider catalog.
- LTX-2.5 on Windows or Mac: natten, attention and fallbacks
LTX-2's README: natten (VAE decode) is Linux and CUDA only, with a Triton or eager fallback elsewhere; FlashAttention 4 on B200, 3 on Hopper, SDPA otherwise.
- LTX-2.5 pipelines: Distilled, DFR or two-stage, which to run
The LTX-2 repo names eleven pipelines for LTX-2.5. Which one is fastest, which is guided, which does keyframes or audio, and where the Sume fields line up.
- Lyria 3.5 has no duration field: how to ask for a 45-second track
Sume's music router rejects duration and duration_seconds. Write the length into the prompt, with section timestamps, and pay a flat $0.125 per generation.
Written by Sume