Video Router or /v1/videos for ported Sora code?

Both routes create the same Sume video jobs with the same model ids. /v1/videos is the OpenRouter-style wire; /v1/video-router/generate is the older flat one.

5 min readSume
All posts

For new code replacing a Sora call, use POST /v1/videos. The Video Router docs say new integrations should use it, and the video generation docs say the legacy /v1/video-router/* routes keep working unchanged and create the same jobs with the same model ids. The difference is the wire: Video Router returns Sume's { "data": ... } job envelope with flat image_url and reference_image_urls, while /v1/videos follows the OpenRouter field names.

The two wires side by side

Because the model vocabulary is shared, moving between them is a path-and-body change with no id remapping, as the docs put it.

Two routes to the same video jobs (read 2026-10-04)
Area/v1/videos/v1/video-router/generate
StatusPreferred for new integrationsAvailable and unchanged
ResponseOpenRouter-style: id, polling_url, statusSume { data } job envelope
Images inframe_images and input_referencesimage_url, reference_image_urls
Downloadunsigned_urls and /content endpointResult from the job
Webhook fieldcallback_urlmode webhook with webhook_url
Idempotency-KeySupportedSupported

Which fits ported code

If your Sora wrapper already thinks in jobs with a polling URL, /v1/videos is the closer match: submit returns a job id and a polling_url, and statuses are pending, in_progress, completed, failed and cancelled. Note that the same job is also readable as a Sume job at GET /v1/jobs/{id}/status, where statuses are queued, processing, completed, failed and canceled. Pick one vocabulary and normalize at the edge, since the spelling of cancelled differs.

When Video Router is the right call

Keep Video Router if you already built against it, or if you use the Gemini Omni edit mode: the docs expose the video edit capability through the Video Router video_url field, with /v1/videos accepting video references. There is no pressure to move; the docs state it stays available and unchanged.

What to decide this week

Choose the route, write a thin client that hides the envelope difference, and read GET /v1/videos/models for limits. The API reference links the OpenAPI document that is the source of truth for exact fields.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume