Models

AI video editing API: edit a video with a prompt (video-to-video)

Edit an existing clip with a prompt: send video_url to POST /v1/video-router/generate with gemini-omni-flash-1.1. What edit mode takes, rejects, and costs.

5 min readSume
All posts

To edit an existing video with a prompt through the Sume API, send POST /v1/video-router/generate with model: "gemini-omni-flash-1.1", the clip's public HTTPS URL in video_url, and a prompt that describes the change. Sending video_url selects the model's video_to_video (edit) mode: Sume routes this model by the shape of the request, so you never pick an endpoint.

Fields and rules below come from the Video Router docs and the model's catalog entry, read on 2026-09-26.

Which model can edit a video?

Gemini Omni Flash 1.1 (gemini-omni-flash-1.1). Of the models the catalog lists, it is the one whose Video Router capabilities include video_to_video, and its GET /v1/videos/models description reads “text/image/reference-to-video and video edit with native synced audio.” Its other modes are covered in Gemini Omni Flash 1.1 video API.

The docs point new integrations to the OpenRouter-compatible POST /v1/videos in general (how that route works), but they expose this model's edit mode through the Video Router's video_url field, and POST /v1/videos refuses video_url with 400 invalid_request when model is a catalog id. So edits go to the Video Router, which stays available and unchanged.

How do I send an edit request?

Put the source clip in video_url and describe the edit in prompt. This is the docs' example on the production host:

  • video_url must be a fetchable public HTTPS URL. Localhost, private-network, non-HTTPS, and signed or private URLs are rejected before submission.
  • resolution is optional and defaults to 720p.
  • The docs example also sends an Idempotency-Key header and mode: "async".
curl -X POST https://api.sume.com/v1/video-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: video-router-edit-001" \
  -d '{
    "model": "gemini-omni-flash-1.1",
    "prompt": "Replace the bottle with an apple. Keep everything else the same.",
    "video_url": "https://example.com/clip.mp4",
    "resolution": "720p",
    "mode": "async"
  }'

What does edit mode accept and reject?

An edit takes a prompt, a source clip, and optionally a resolution. The rest of the model's generation fields do not apply:

Edit-mode rules from Video Router and the constraints on GET /v1/video-router/models/gemini-omni-flash-1.1, read 2026-09-26. Confirm there, and the model's resolutions in GET /v1/videos/models, before you submit.
FieldIn edit mode
promptDescribes the edit.
video_urlThe source clip to edit, not a reference.
resolutionOptional. Defaults to 720p.
aspect_ratioRejected.
durationNot sent to the model. If given, it is only the hint for the reserve estimate.
image_url, end_image_url, reference_*_urlsCannot be combined with video_url.
generate_audioNo toggle: native synced audio is always produced. Omit the field.
bitrate_modeNot available on this model.

What is the difference between an edit and a reference video?

The edit source is the clip you change. A reference video guides a new clip: Gemini Omni Flash 1.1 takes up to three reference_video_urls of at most 3 seconds each for reference-to-video, and those cannot ride along with video_url. If you want a fresh generation that borrows from existing footage, see Reference-to-video API.

How do I get the edited clip?

The Video Router returns Sume's { "data": ... } job envelope. Store the job id, poll GET /v1/jobs/{id}/status (or wait with mode: "sync" or "subscribe" for up to 30 seconds), and fetch GET /v1/jobs/{id}/result once result_ready is true. The result carries Sume-hosted artifacts.

How is a video edit billed?

Gemini Omni Flash 1.1 is billed at the provider's list price × 1.25 per output second by resolution, plus a 5.5% agent fee by default. The amount is reserved from the workspace USD balance when you submit. Edit mode takes no duration, so a duration you send serves only as the length hint for that reserve estimate.

The per-resolution rates are the pricing_skus entries on GET /v1/videos/models; see also API pricing.

Sources

Related posts

Written by Sume