video_url on /v1/videos fails: edits go to /v1/video-router/generate
Sume's /v1/videos has frame_images and input_references but no edit field. Send video_url to /v1/video-router/generate with gemini-omni-flash-1.1.

You cannot edit a clip through POST /v1/videos. That route copies OpenRouter's body, which has frame_images and input_references but no source-video field, so Gemini Omni Flash 1.1's edit mode is a Video Router field. Send video_url to POST /v1/video-router/generate instead. Both routes create the same kind of job and read the same catalog ids.
Why the field is missing
/v1/videos infers the mode from which image field is present: frame_images means image-to-video, input_references means reference-to-video, and neither means text-to-video. A video_url entry inside input_references conditions a new generation, it does not edit. That is the difference between a reference clip and an edit source.
| Mode | /v1/videos | /v1/video-router/generate |
|---|---|---|
| Text-to-video | prompt | prompt |
| Image-to-video | frame_images | image_url (+ end_image_url) |
| Reference-to-video | input_references | reference_image_urls, reference_video_urls |
| Edit | Not available | video_url |
Mixing the two routes
The router uses Sume's { "data": ... } envelope and flat field names, while /v1/videos returns the bare OpenRouter job object. The Idempotency-Key header, job polling at /v1/jobs/{id}/status and the webhook signature work the same on both. Plan to use the router path only for edit, Recast and Motion Transfer, and keep /v1/videos for everything else.
- Edit request:
model,prompt,video_url, optionalresolution. - Do not send
aspect_ratioon an edit. - Poll with
GET /v1/jobs/{id}/status.
Sources
Related posts
More in Developers
- What balance do 100 video ads need? Sume reserves at submit
Sume reserves the credits of every accepted job at submit, so a 100-ad batch needs the whole total in the balance. 402 insufficient_credits otherwise.
- Why a video model is missing from your Sume model list
A documented video id can be absent from the model list: Veo needs Google Cloud, Tencent rows need the Tencent switch. Absent ids 404. Read 2026-10-13.
- Verify a Sume webhook signature in Fastify, Django and Flask
Each framework hands you the request body differently. Verify the Sume signature over the exact raw body, then parse it, in Fastify, Django and Flask.
- Which MCP server lets Claude Code or Cursor generate video and images?
MCP servers that let Claude Code and Cursor make video and images: Sume, fal, Replicate, Runway, Higgsfield. Endpoints, sign-in, billing, setup.
Written by Sume