Which Sume video models take 9:16? Query the catalog, do not guess
GET /v1/videos/models lists supported_aspect_ratios and supported_durations per model. A jq filter picks the vertical models that reach your platform's length.

Ask the catalog. GET /v1/videos/models returns, for each video model, supported_aspect_ratios, supported_durations and supported_resolutions, and Sume validates every request against those lists. A model that does not list a value returns a 400, so a filter on the catalog is the cheapest compliance check you have.
The filter
This shell line lists models that take 9:16 and the longest duration each lists. It needs jq.
curl -s -H "Authorization: Bearer $SUME_API_KEY" https://api.sume.com/v1/videos/models \
| jq -r '.data[] | select(.supported_aspect_ratios | index("9:16")) | "\(.id) max=\(.supported_durations | max) res=\(.supported_resolutions | join(","))"'What to expect
The table below is from the Video Router doc and the catalog source, so run the filter for the live answer. Three rows list no aspect ratio at all and reject aspect_ratio if you send one, because the source video or image sets the frame.
| Model | Takes 9:16 | Duration |
|---|---|---|
| seedance-2.5 | Yes | 4-30 s |
| seedance-2 | Yes | 4-15 s |
| kling-3 | Yes (16:9, 9:16, 1:1 only) | 4-15 s |
| wan-3.0 | Yes | 2-30 s |
| minimax-h3, minimax-h3-max | Yes | 5-15 s |
| gemini-omni-flash-1.1 | Yes (16:9 or 9:16 only) | 3-10 s |
| h3-max-recast, higgsfield-genjutsu, grok-imagine-video-1.5 | No aspect_ratio option | Set by the input |
Why this beats a hard-coded list
Platform specs and model catalogs both change. YouTube's Shorts page says vertical and up to 3 minutes, and TikTok's page recommends 9:16, so you want vertical, but the set of models that offer it is Sume's to change. A pipeline that reads the catalog at submit time breaks on a missing value with a clear 400 and not with a stretched clip. Keep the filter in your job runner and log what it returned.
The no-aspect-ratio explainer covers the three rows that cannot be reframed by request.
Reading the catalog at runtime
Fetch the catalog once per job run and cache it for the run, not for days. Then validate your own request against it before you submit: is 9:16 in supported_aspect_ratios, is your duration in supported_durations, is your resolution in supported_resolutions. That mirrors what the API does and lets you fail in your own code with a clear message.
Watch one detail. The Video Router catalog can list values such as auto and adaptive that the OpenRouter-shaped /v1/videos descriptor leaves out, because the descriptor advertises only values a caller may send as aspect_ratio. If you read the legacy catalog, filter to real ratios yourself.
A last use of the catalog is cost. It carries pricing_skus, the Sume billable rates, so one pass can rank the models that pass your filter by price. That is a better basis for choosing than a table in a blog post, including this one.
Limits of this check
The catalog tells you what the API accepts, not what a platform accepts. It says nothing about file size or bitrate, and the platform pages differ on those. Pair it with a check of the finished file.
Sources
Related posts
More in Developers
- Which wait to use for a 30 second clip: sync, webhook or a poll
A table of the waits Sume documents for a 30 s clip: a bounded sync of up to 30 s, webhooks with retries, and a roughly 20 minute client deadline. Which fits.
- Which workspace does a Sume MCP call spend from? Key or sign-in
The API key or the signed-in account selects the workspace; Sume tools never take a workspace id from the prompt. Confirm it with account_me before you spend.
- Word timestamps to video frame numbers at 29.97 fps in Python
Sume STT words[] carry start and end in seconds. Convert them to frame indexes with exact 30000/1001 math so cuts do not drift on long timelines.
- Workers OAuth Provider v1 or Sume's hosted MCP: which do I need?
Cloudflare's v1 OAuth library is for building your own MCP server. To call Sume tools from Claude or Cursor, connect Sume's hosted endpoint and skip the build.
Written by Sume