Video Router 'accepts a duration of at most N seconds': ceilings
The 400 names the model's own ceiling: 30 s on seedance-2.5 and wan-3.0, 15 s on most others, 10 s on gemini-omni-flash-1.1. Table of every floor and ceiling.

If Video Router answers with "model X accepts a duration of at most N seconds", the request was well formed but longer than that model's catalog ceiling. Pick a model whose ceiling fits, or split the shot into several jobs. The same check has a twin, "accepts a duration of at least N seconds", for clips that are too short.
Ceilings and floors in the catalog
Each model's duration_seconds range sits in the Video Router catalog, and the validation reads that range when the request arrives. The envelope check also runs before any money is reserved, so a refused request costs nothing.
| Model id | Min seconds | Max seconds |
|---|---|---|
| seedance-2.5 | 4 | 30 |
| wan-3.0 | 2 | 30 |
| higgsfield-genjutsu | 4 | 30 |
| h3-max-recast | 5 | 30 |
| seedance-2, seedance-2-fast, seedance-2-mini | 4 | 15 |
| kling-3 | 4 | 15 |
| grok-imagine-video-1.5 | 4 | 15 |
| minimax-h3, minimax-h3-max | 5 | 15 |
| gemini-omni-flash-1.1 | 3 | 10 |
Reading the error
The message has the shape "model seedance-2 accepts a duration of at most 15 seconds." and points at the field you sent, duration or duration_seconds. It is a validation error, so there is no job id to poll and nothing to cancel. Fix the number and resend; if you use an Idempotency-Key, a corrected body is a new request and should get a new key.
If you picked the model for its length, remember that the longest range is not the cheapest or the best for every shot. The catalog also lists resolutions and aspect ratios per model, and those limits differ from the duration ones.
Two traps around the check
First, the request schema has an outer band of 2 to 30 whole seconds for every model. A value of 31 or 1 never reaches the per-model message; it fails the plain range rule first. Second, gemini-omni-flash-1.1 in edit mode (a video_url source) skips the per-model duration check, because the output keeps the source length; the catalog says a duration there is only a hint for the reserve estimate.
Genjutsu and H3 Max Recast follow the source clip as well: the catalog notes say the output preserves the source length, so the duration you set is not a free choice.
Check before you submit
The script reads the range from the documented catalog endpoint and clamps or refuses on your side. It never prints the key, and it does not create a job.
import os
import requests
hdr = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"]}
r = requests.get("https://api.sume.com/v1/videos/models", headers=hdr, timeout=30)
r.raise_for_status()
catalog = {m["id"]: m for m in r.json()["data"]}
want_model, want_seconds = "seedance-2.5", 20
durations = catalog[want_model]["supported_durations"]
if want_seconds in durations:
print(want_model, "accepts", want_seconds, "s")
else:
print(want_model, "takes", min(durations), "to", max(durations), "s")
When not to stretch a clip
A longer ceiling is not a reason to ask for one long shot. If the story has cuts, several 8 to 12 second jobs give you retries per shot and keep a bad take from costing the whole sequence. Stitch them afterwards with the Timeline render. For a 20 second clip, only the 30 second models in the table qualify; every other row needs two jobs.
Sources
Related posts
More in Models
- Gemini Omni video_url edit: the two 400s and how to avoid them
video_url on Video Router means edit, and only gemini-omni-flash-1.1 accepts it. Sending frames or references with it, or another model, gives a 400.
- Wan 3.0 box-selection editing: Sume offers Omni video_url edit instead
Alibaba lists box-selection editing for Wan 3.0. Sume documents no box field for it; its edit route is Gemini Omni Flash 1.1 video_url at $0.125 a second.
- Wan 3.0 is a closed beta and API, not open weights: a Sume call
Alibaba's Wan 3.0 README points to wan.video and QwenCloud, not downloadable weights. Sume lists wan-3.0, 2 to 30 s. The request shape on Sume.
- 15 cuts in 30 seconds: Wan 3.0 2 s shots vs Seedance 2.5 4 s shots
A fast-cut 30 s ad on Sume: Wan 3.0 allows 2 s shots (15 cuts, $3.75 at 720p) while Seedance 2.5 and Kling 3 stop at 4 s (7 cuts). Prices side by side.
Written by Sume