Migrate Video 1.0 to sume/auto on POST /v1/videos, field by field
Video 1.0 is retiring soon. Which fields move, which are ignored or rejected, and the request to send on POST /v1/videos with sume/auto.

To migrate off Video 1.0, change the URL from /v1/video-1.0/generate to POST /v1/videos and send "model": "sume/auto". The legacy URL is documented as retiring soon, but it still works today: it is a compatibility alias for Video Router Auto, so your jobs already run on the same model selection, validation and pricing the new URL uses. The work is renaming fields, dropping the ones that are ignored or rejected, and reading the sume/auto receipt instead of a Video 1.0 one.
Everything below is from Sume's Video 1.0 page and Video generation page, read on 2026-10-03.
What does the legacy URL do today?
The Video 1.0 page says its URLs keep accepting the legacy request shape but use the same Auto model selection, capability validation and pricing, and that job receipts report sume/auto. The model-run alias POST /v1/models/sume/video-1.0/runs takes the same body. So a migration does not change which engine serves you; it removes a deprecated shape before it stops being accepted.
Two details matter before you start. The legacy URL does not take a model body field, so you cannot choose a family there. And the Router does not disclose which family served an Auto request, so do not build logic around the serving model on either URL.
Which fields change in the move to /v1/videos?
Frames and references move into arrays on the new body. image_url becomes a frame_images item with type: "image_url" and a frame_type of first or last frame, and reference media becomes input_references items. When both are sent, frame_images takes precedence. Check the field names against the live catalog row for sume/auto before you cut over.
| Video 1.0 field | On the legacy URL | On POST /v1/videos with sume/auto |
|---|---|---|
routing_preset | Accepted and ignored (cost, speed, quality, grok, kling) | Drop it |
bitrate_mode | Retained, but rejected by Auto | Drop it |
generate_audio | Auto always generates audio; omit it | Omit it |
resolution: 4k | Rejected on this URL | Use the new URL for 4K |
image_url, end_image_url | First and last frame | frame_images with first and last frame types |
reference_image_urls, reference_video_urls, reference_audio_urls | 1-9 images, 1-3 videos, 1-3 audios | input_references items of image_url, video_url, audio_url types |
duration or duration_seconds | Integer seconds, validated against Auto | duration, validated against the model row |
What should the new request look like?
A text-to-video call that used to carry routing_preset and bitrate_mode is shorter afterwards. Keep sending your Idempotency-Key header.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: migrate-001" \
-d '{
"model": "sume/auto",
"prompt": "Slow push-in on a ceramic mug, steam rising",
"duration": 6,
"resolution": "1080p",
"aspect_ratio": "16:9"
}'What do I gain by moving?
The new URL is where the catalog lives. GET /v1/videos/models lists each model's supported durations, resolutions and aspect ratios, so you can validate before submitting, and a catalog id lets you pin a family such as seedance-2 instead of taking Auto's choice. The 4K option for Auto is available only here.
If you stay on Auto, the stored post routing_preset kling or grok on Video 1.0: accepted, then ignored explains why a preset never steered anything, and what sume/video-1.0 and its runs endpoint are covers the alias.
- Swap the URL and add
"model": "sume/auto". - Delete
routing_presetandbitrate_modefrom every payload and SDK wrapper. - Stop sending
generate_audioon Auto. - Move frame and reference URLs into
frame_imagesandinput_references. - Switch any receipt parsing to expect
sume/autoas the model.
Do old job ids and receipts still work?
Jobs follow the shared lifecycle in Jobs and results: follow next_action from the submit envelope, poll status, then fetch the result, and treat artifact URLs as opaque. That is identical on both URLs, so polling code does not change; only the submit call does. Run both URLs side by side on a small batch, compare receipts, then remove the legacy call.
Sources
Related posts
More in Developers
- Mix Seedance, Kling and Omni clips in one video: shared aspect ratio
16:9 and 9:16 are the aspect ratios Seedance 2.5, Kling 3 and Gemini Omni Flash 1.1 all list. Set the Timeline output to match and plan before render.
- Perplexity Decisions API as a publish gate for Sume output
Check a finished Sume Format image with Perplexity's Decisions API before it ships: base64 data URL, one yes/no question, a threshold, and a human-review lane.
- Pocket TTS API: run it yourself or call a hosted TTS API
Kyutai's Pocket TTS installs with pip and serves from localhost. If you want a hosted API with job URLs instead, here is the Sume request and what changes.
- Prefect 3 task retries for a Sume job: same Idempotency-Key
Retry a Sume image job in Prefect 3 without paying twice: a tested flow with retry_condition_fn, delay list and an order-derived idempotency key.
Written by Sume