Which Sume video models take 30 seconds? Filter /v1/videos/models

Seedance 2.5 and Wan 3.0 list 30 s in supported_durations. A 12-line Python script reads GET /v1/videos/models and prints every id that accepts your length.

4 min readSume
All posts

Ask the catalog, not a blog post

Model limits change faster than documentation. Sume's video API exposes them at GET /v1/videos/models: each entry carries supported_durations (whole seconds), supported_resolutions, supported_aspect_ratios and the reference types it accepts. Read that list at runtime and a new 30-second model appears in your picker without a deploy.

As of the docs I read on 2026-10-05, several families reach 30 seconds while most stop at 15.

Duration limits in the docs (read 2026-10-05)

Per-model duration limits from the Sume video generation page, read 2026-10-05
Model idDuration in secondsNote
seedance-2.54 to 30480p, 720p, 1080p
wan-3.02 to 30Audio and video references
h3-max-recast5 to 30One source video plus 1 to 4 person photos
minimax-h35 to 15Native 480p and 768p
gemini-omni-flash-1.13 to 10Native synced audio

The script

It needs only the standard library. Pass the length you want as the first argument, for example python3 pick.py 30.

import json, os, sys, urllib.request

want = int(sys.argv[1]) if len(sys.argv) > 1 else 30
req = urllib.request.Request(
    "https://api.sume.com/v1/videos/models",
    headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]},
)
with urllib.request.urlopen(req, timeout=30) as r:
    models = json.load(r)["data"]
for m in models:
    if want in (m.get("supported_durations") or []):
        print(m["id"], m.get("supported_resolutions"))

Then what

Once you pick an id, send it as model on POST /v1/videos with duration, and submit with an Idempotency-Key. A 30-second job is not a 30-second wait: the response carries a polling_url and you poll until completed. Some models are in the catalog only when their provider is configured (the docs say so for Motion Transfer), which is one more reason to filter live instead of hard-coding ids.

If your length is 31 seconds or more, no single job covers it. Plan two jobs and stitch them rather than asking one model for an unsupported value.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume