Move a Seedance 2.5 call from video-router/generate to /v1/videos

Same jobs, same ids: map reference_image_urls to input_references and image_url to frame_images when you move a seedance-2.5 call to POST /v1/videos.

5 min readSume
All posts

Moving a seedance-2.5 call from POST /v1/video-router/generate to POST /v1/videos is a path-and-body change: model ids stay the same, image_url becomes a frame_images entry and reference_image_urls become input_references. Sume recommends /v1/videos for new integrations and keeps Video Router working unchanged.

Responses differ too: Video Router returns Sume's { "data": ... } envelope, while /v1/videos returns the OpenRouter-style job with a polling_url.

Field map

Request fields (read 2026-10-07)
Video Router/v1/videos
model: seedance-2.5model: seedance-2.5
image_urlframe_images with frame_type first_frame
end_image_urlframe_images with frame_type last_frame
reference_image_urlsinput_references type image_url
reference_video_urlsinput_references type video_url
reference_audio_urlsinput_references type audio_url
mode: asyncnot needed (always async)

Before and after

Keep your Idempotency-Key; both routes honor it.

# before
POST /v1/video-router/generate
{"model": "seedance-2.5", "prompt": "...", "duration": 12, "mode": "async"}

# after
POST /v1/videos
{"model": "seedance-2.5", "prompt": "...", "duration": 12}

Gotchas

  • /v1/videos returns 400 for size, seed and non-empty provider.options on these models.
  • Job status is also reachable at GET /v1/jobs/{id}/status.

What stays the same

Both routes create jobs with the same model ids, so a migration does not require re-mapping ids. Job status remains visible at GET /v1/jobs/{id}/status and /result.

The OpenRouter-compatible wire means a client written from OpenRouter's video docs works after you change the base URL and API key.

Migration checklist

Update any code that reads the { "data": ... } envelope; /v1/videos returns top-level fields such as polling_url and unsigned_urls.

  • Replace the path.
  • Map reference and frame fields.
  • Handle unsigned_urls[0] for download.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume