A new AI video model launched: check Sume's catalog in one call
Before planning around Seedance, Wan, HappyHorse or Ray, list Sume's video models and read each one's resolutions, durations and inputs with one GET.

To see whether a newly announced video model is usable on Sume, call GET /v1/videos/models and look for its id; the response lists each model's supported_resolutions, supported_durations, supported_frame_images, supported_input_references and generate_audio. If the id is not in data, it is not callable. As read on 2026-10-02, seedance-2.5, wan-3.0 and minimax-h3 are Video Router ids, and HappyHorse 1.1 and Luma Ray3.2 are not.
The shape comes from Sume's Video generation docs and the Video Router docs, read 2026-10-02.
What does the one-call check look like?
The script below prints each model's id, resolutions and shortest and longest duration. It needs only an API key in SUME_API_KEY.
Run it the day a model is announced, then again a week later; a catalog changes when Sume adds an id, not when a vendor posts.
import os
import requests
r = requests.get(
"https://api.sume.com/v1/videos/models",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
for m in r.json()["data"]:
d = m.get("supported_durations") or []
span = (min(d), max(d)) if d else None
print(m["id"], m.get("supported_resolutions"), span)Which fields should I read before I plan around a model?
Read the fields that can break a plan, not the description string. Docs state that limits are not uniform across models, so one envelope cannot be assumed.
The Video Router catalog (GET /v1/video-router/models) adds capabilities and the billing fields, including a billable_margin per row.
| Field | What it answers |
|---|---|
supported_durations | Shortest and longest clip in whole seconds |
supported_resolutions | Which of 480p, 720p, 768p, 1080p and higher it accepts |
supported_frame_images | Whether first and last frames are accepted |
supported_input_references | Whether image, video and audio references are accepted |
generate_audio | Whether the model can make an audio track |
What if the id is missing but the vendor says an API exists?
The vendor's API and Sume's catalog are separate things. Luma states that an API is available for Ray3.2, and Hedra lists HappyHorse 1.1 on Alibaba Cloud Model Studio and partner APIs, both read 2026-10-02. Neither makes the id callable on Sume.
A request with an unknown model id fails; Sume's admission docs list 404 model_not_found for a model that does not exist in your workspace. Use the closest catalog id instead, as in which of these models run on Sume.
Put the script on a schedule if you track launches: diff today's ids against yesterday's, and open a ticket for any new id with a duration or resolution that fits a job you already have. That turns a news cycle into a short list of things to test.
Sources
Related posts
More in Developers
- Get an alert when a new video model id appears: daily catalog diff
Kling 4.0 is due in October. A small Python script diffs GET /v1/videos/models against yesterday's ids and prints what is new or gone, so you test on day one.
- next_poll_after_seconds is null on a finished job: fix the poll loop
Sume sets next_poll_after_seconds to null once a job is terminal, so sleep(null) crashes naive loops. Stop on terminal, then read result_ready.
- NEXT_PUBLIC_ plus a Sume API key: why it ships to the browser
A NEXT_PUBLIC_ prefix inlines the value into client JavaScript at build time. Keep the Sume API key server-side, proxy via a route handler, rotate if it leaked.
- Poll a Sume job with AbortSignal.any in Node 26.10
Node 26.10.0 fixes AbortSignal.any() propagation. Here is a Sume job poll loop with a hard deadline and a caller cancel, using next_poll_after_seconds.
Written by Sume