Why adaptive and auto are missing from /v1/videos/models
Seedance and Wan list auto and adaptive aspect ratios in the Video Router catalog, but /v1/videos/models filters them out. Which models, and a script to see it.

The /v1/videos/models descriptor reports supported_aspect_ratios filtered to the OpenRouter enum: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9 and 9:21. Sume-only values auto and adaptive are dropped from that list even though the Video Router catalog accepts them. If you see Seedance 2.5 with six ratios on one endpoint and eight on another, this is why.
Which models are affected
Four groups list auto or adaptive in the Video Router catalog; the compatibility view shows only their concrete ratios.
| Model id | Router catalog ratios | On /v1/videos/models |
|---|---|---|
| seedance-2.5 and seedance-2 family | auto, adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
| wan-3.0 | auto, adaptive, 16:9, 4:3, 1:1, 3:4, 9:16 | 16:9, 4:3, 1:1, 3:4, 9:16 |
| minimax-h3, minimax-h3-max | adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
| kling-3 | 16:9, 9:16, 1:1 | 16:9, 9:16, 1:1 |
What the missing values do
adaptive and auto let the model choose a frame shape from the inputs instead of you naming one. They matter when you pass an image or video reference and want the output to follow its shape.
A client that built its UI from /v1/videos/models alone will never offer them. If you want those two options, read the Video Router catalog instead, as described in the Video Router docs.
Which endpoint to read
Use /v1/videos/models if you want OpenRouter-compatible descriptors and a stable shape. Use /v1/video-router/models if you want Sume-specific capabilities and constraints. Both are documented under Video Generation.
This script prints what the compatibility endpoint reports, which will never include adaptive or auto.
import os
import requests
resp = requests.get(
"https://api.sume.com/v1/videos/models",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
resp.raise_for_status()
for m in resp.json()["data"]:
ratios = m["supported_aspect_ratios"]
print(m["id"], ratios)
assert "adaptive" not in ratios and "auto" not in ratiosSources
Related posts
More in Developers
- Windsurf now redirects to Devin Desktop: where Sume MCP setup lives
Windsurf redirects to Devin Desktop, and Cascade was removed in v3.9.19. Re-add Sume's hosted MCP URL there and verify it with mcp_health and tools_list.
- Workers post-quantum Web Crypto: Sume webhooks stay HMAC-SHA-256
Cloudflare Workers Web Crypto now supports ML-KEM and ML-DSA. Sume webhook signatures are still HMAC SHA-256, and verifyWebhook runs on Workers with WebCrypto.
- Workflow DevKit 5 fail-fast refusals: which Sume errors to retry
Workflow DevKit 5.0.1 now fails fast on dynamic start() refusals. Apply the same rule to Sume: do not retry a 400 or 402, retry 429 and 503 with the same key.
- Workflow DevKit 5: 12 MiB frames, pass Sume URLs not video
Workflow DevKit 5.0.1 splits WebSocket frames over 12 MiB by default (16 MiB at most). Pass Sume artifact URLs between steps instead of video bytes.
Written by Sume