Omni Flash on /v1/videos vs /v1/video-router: the field map

The same Gemini Omni Flash 1.1 runs on /v1/videos and /v1/video-router/generate with different fields. Field map for frame_images, input_references, video_url.

5 min readSume
All posts

Gemini Omni Flash 1.1 can be called through POST /v1/videos or POST /v1/video-router/generate; both create the same jobs with the same model ID. The difference is the field names: /v1/videos takes frame_images and input_references, while Video Router takes flat fields such as image_url and reference_image_urls. Edit mode, per the docs, is available through the Video Router video_url field.

The map

The Video generation docs call Video Router the legacy wire, and recommend /v1/videos for new integrations. The model vocabulary is the same, so a migration is a path-and-body change.

Omni Flash 1.1 fields on the two routes (read 2026-10-08)
Goal/v1/videos/v1/video-router/generate
Text to videomodel, promptmodel, prompt
First frameframe_images (frame_type first_frame)image_url
Last frameframe_images (frame_type last_frame)end_image_url
Reference imagesinput_references (image_url)reference_image_urls (max 10)
Reference clipsinput_references (video_url)reference_video_urls (max 3, 3 s each)
Edit a videodocumented on Video Routervideo_url
Responseid, polling_url, unsigned_urlsSume { data } job envelope

The same start-frame job on both

Both requests below make an image-to-video clip. They bill the same: 5 s at 720p is 63 cents.

H="Authorization: Bearer $SUME_API_KEY"
curl -X POST https://api.sume.com/v1/videos -H "$H" \
  -H "Content-Type: application/json" -d '{
  "model": "gemini-omni-flash-1.1", "prompt": "Slow push in",
  "frame_images": [{"type": "image_url", "frame_type": "first_frame",
    "image_url": {"url": "https://example.com/a.png"}}],
  "resolution": "720p", "duration": 5, "aspect_ratio": "16:9"}'

curl -X POST https://api.sume.com/v1/video-router/generate -H "$H" \
  -H "Content-Type: application/json" -d '{
  "model": "gemini-omni-flash-1.1", "prompt": "Slow push in",
  "image_url": "https://example.com/a.png", "mode": "async",
  "resolution": "720p", "duration": 5, "aspect_ratio": "16:9"}'

Which to pick

For a new client use /v1/videos: it follows the OpenRouter video wire, supports sume/auto, and gives a poll URL. Use Video Router when you need the edit path with video_url. Idempotency-Key works on both, and a replay returns the original job.

Read the live model list from either route before you hard-code a limit.

The same length at every tier

For reference, a 5-second Omni Flash clip at each resolution. Every price is the seconds times the billable rate, rounded up to a whole cent, as of 2026-10-08.

Omni Flash 5 s by resolution (as of 2026-10-08)
ResolutionArithmeticBilled
360p5 x 3.75 = 18.75 cents$0.19
720p5 x 12.5 = 62.5 cents$0.63
1080p5 x 18.75 = 93.75 cents$0.94
4K5 x 37.5 = 187.5 cents$1.88

Limits to remember

These apply to every request on this page, from the Video Router and Video generation docs:

  • Length is 3 to 10 whole seconds in generation modes; an edit takes no duration.
  • Aspect ratio is 16:9 or 9:16; an edit takes no aspect ratio.
  • Native synced audio is always on, and generate_audio: false is rejected.
  • There is no bitrate_mode, no reference audio and no seed.
  • Billing is the provider list times 1.25 per output second, reserved at submit and shown in usage.cost.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume