Move from /v1/video-router/generate to /v1/videos: field map

Video Router still works, but new integrations should use /v1/videos. Same catalog and job ids; the wire and image fields change. What the docs say changes.

4 min readSume
All posts

Moving off POST /v1/video-router/generate to POST /v1/videos is a path-and-body change with no model id remapping: both routes use the same catalog and create the same jobs. The docs say new integrations should use /v1/videos, and Video Router stays available and unchanged.

What stays the same?

Model ids are shared, so seedance-2.5 on Video Router is seedance-2.5 on /v1/videos. Both routes take an Idempotency-Key, and the same job is also visible at GET /v1/jobs/{id}/status and /result.

What changes in the request?

Video Router takes Sume's flat image_url and reference_image_urls fields and returns Sume's { "data": ... } job envelope. /v1/videos takes frame_images and input_references and returns the OpenRouter-shaped response with polling_url and unsigned_urls.

Video Router to /v1/videos, read 2026-09-30. Source: https://docs.sume.com/models/video-router
Video Router/v1/videos
POST /v1/video-router/generatePOST /v1/videos
flat image_url / reference_image_urls fieldsframe_images and input_references arrays
{ data: ... } envelopeid, polling_url, status, model
GET /v1/video-router/modelsGET /v1/videos/models

Is there a field that does not carry over?

The /v1/videos request table lists no mode field, while the Video Router example sends mode: "async". On /v1/videos you submit, get a polling_url, and poll or use callback_url.

What does the new call look like?

The Video Router example from the docs, rewritten for /v1/videos with the same model id and settings.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: videos-001" \
  -d '{"model":"seedance-2.5","prompt":"A vertical UGC-style product clip on a desk, natural light","resolution":"720p","duration":12,"aspect_ratio":"9:16"}'

What about cost and retries after moving?

Billing is reserved on submit at provider list times 1.25, and the poll response reports usage.cost as the Sume billable amount. Sending an Idempotency-Key makes retries safe, because a replay returns the original job.

Because the model vocabulary is shared, a migrated call prices the same way as before; the only work is the path and body change described above.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume