Get one Sume video model by id: GET /v1/video-router/models/{id}
Look up a single Sume video model's limits and price with GET /v1/video-router/models/{id}. Response fields, the 404 for unknown ids, and a short script.

You do not have to download the whole video catalog to check one model. Sume's Video Router docs list GET /v1/video-router/models/{model_id} as the single-model lookup, and it returns 404 for an id that does not exist. The full list is at GET /v1/video-router/models, and the OpenRouter-shaped catalog is at GET /v1/videos/models.
What does the lookup return?
The row carries the model's capabilities, such as text-to-video, image-to-video, end frame, references, the supported resolutions, the duration_seconds window and the aspect ratios. It also carries pricing, with the currency, the list basis, the per-second rates and the billable margin and formula, and a constraints list of plain-language rules, such as which fields are rejected.
Which fields should a client read?
Three groups cover most pre-flight checks.
capabilities.duration_secondsandcapabilities.resolutions: reject a request locally before it reaches Sume.capabilities.aspect_ratios: an empty list means omitaspect_ratio.pricing: the list rate,billable_marginandbillable_formula, which turn into the amount Sume will reserve.
Can I see it in a short script?
This Python fetches one model row and prints it, so you can read the fields above for your own pre-flight check.
import os, requests
def check(model_id):
r = requests.get(
f"https://api.sume.com/v1/video-router/models/{model_id}",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
if r.status_code == 404:
return f"{model_id}: not a Sume model"
r.raise_for_status()
print(r.json())
return "fetched"
if __name__ == "__main__":
print(check("wan-3.0"))What about a missing row?
A 404 means the id is neither a catalog row nor listed in your environment. A row can be absent because its provider is not configured, which is the case for Higgsfield Genjutsu. Treat the lookup, not a hard-coded list, as the source of truth.
Sources
Related posts
More in Developers
- Why GET /v1/jobs/:id returns 404 for a job that exists: the owner rule
An API key reads only jobs its own member created in its workspace. Other members' jobs and other workspaces answer 404 not_found, which is how Sume hides them.
- GitHub App ghs_ tokens are now ~520 characters: check Sume calls
GitHub's new installation tokens are about 520 characters, not 40. What breaks in a workflow that also calls Sume, and why Sume takes one credential header.
- GitHub social preview as a transparent PNG: which Sume model
GitHub says PNG previews can be transparent, which helps dark mode. On Sume only ChatGPT Image 2.5 lists background transparent, and it has no 2:1 ratio.
- GitLab CI retry reruns the whole script: pin the Sume key
GitLab's retry keyword re-runs the full job script, so a retried job that calls Sume can submit and pay twice. Retry only runner failures and pin the key.
Written by Sume