Waiting on a new AI video model? Diff Sume's /v1/videos/models daily

New video models keep landing. Snapshot GET /v1/videos/models, diff ids and limits each day, and test a new row on a cheap clip first. Bash script included.

5 min readSume
All posts

When a video model you are waiting for launches, the quickest way to learn whether Sume has it is to snapshot GET /v1/videos/models and diff it each day. The endpoint lists every routable id with its durations, resolutions, aspect ratios and reference types. A new row appears there before you can use it by name.

Why the catalog is the source of truth

Sume's video catalog is a projection of the Video Router capability records, so the endpoint cannot disagree with validation. If a model does not advertise a resolution, aspect ratio, duration, frame type or reference type, the API answers 400 rather than dropping the field. A model you have heard about but that is not listed returns 404 model_not_found.

Today the docs list these ids: seedance-2.5, seedance-2, seedance-2-fast, seedance-2-mini, kling-3, wan-3.0, grok-imagine-video-1.5, minimax-h3, minimax-h3-max, gemini-omni-flash-1.1 and h3-max-recast, plus a Motion Transfer row when its provider is configured. Veo 3.1 and Happy Horse 1.1 are named in the contract as not in the v1 catalog. Our notes on Veo 3.1 and Kling 4.0 keep the current answer.

A daily diff

The script keeps yesterday's compact summary and prints what changed. It needs curl and jq, and a key in SUME_API_KEY.

#!/usr/bin/env bash
set -euo pipefail
: "${SUME_API_KEY:?set SUME_API_KEY}"
mkdir -p ~/.sume-catalog
new=~/.sume-catalog/today.tsv
old=~/.sume-catalog/yesterday.tsv
curl -sf https://api.sume.com/v1/videos/models \
  -H "Authorization: Bearer $SUME_API_KEY" \
  | jq -r '.data[] | [.id, (.supported_durations|"\(min)-\(max)s"), (.supported_resolutions|join("/")), (.supported_input_references|join(","))] | @tsv' \
  | sort > "$new"
if [ -f "$old" ]; then diff "$old" "$new" || true; else echo "first snapshot saved"; fi
cp "$new" "$old"

When a new id appears

Read the row before you plan. Check supported_durations for the longest clip, supported_input_references for image, video and audio inputs, and generate_audio for whether sound is optional. Then check the per-second or per-token price in pricing_skus; Sume bills the provider list x 1.25.

Run one cheap test first: the shortest allowed duration at the lowest resolution. There is no seed on this API, so a test is a prompt check and not a preview of the final take.

What to automate

Wire the diff into a scheduled job that posts to your chat tool, and pin the model id in your code with a fallback to sume/auto (default target Gemini Omni Flash 1.1) so a missing row does not take a pipeline down. Keep sume/auto out of any budget math: it has no price of its own, and billing uses the resolved family.

Handling an unlisted id

If your code sends an id that the catalog does not have, the API returns 404 model_not_found rather than falling back. Treat that status as a signal to alert, not to retry. Retries make sense for 429 rate_limited, for 409 job_not_completed on the content route, and for a 502 from a provider submission, but not for 404, 400 or 402.

Separately, GET /v1/catalog is the cross-modality model list that the Models page uses, so a single diff there catches new image, audio and video rows together.

Related posts

More in Developers

All Developers posts

Written by Sume