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.

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.
| Goal | /v1/videos | /v1/video-router/generate |
|---|---|---|
| Text to video | model, prompt | model, prompt |
| First frame | frame_images (frame_type first_frame) | image_url |
| Last frame | frame_images (frame_type last_frame) | end_image_url |
| Reference images | input_references (image_url) | reference_image_urls (max 10) |
| Reference clips | input_references (video_url) | reference_video_urls (max 3, 3 s each) |
| Edit a video | documented on Video Router | video_url |
| Response | id, polling_url, unsigned_urls | Sume { 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.
| Resolution | Arithmetic | Billed |
|---|---|---|
| 360p | 5 x 3.75 = 18.75 cents | $0.19 |
| 720p | 5 x 12.5 = 62.5 cents | $0.63 |
| 1080p | 5 x 18.75 = 93.75 cents | $0.94 |
| 4K | 5 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: falseis rejected. - There is no
bitrate_mode, no reference audio and noseed. - 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
- Omni resolution values: 4K, lowercase 4k, and what is rejected
Gemini Omni Flash 1.1 on Sume takes 360p, 720p, 1080p and 4K. The catalog also accepts lowercase 4k as an alias. Which strings fail, and the price of each.
- Omni video references: three clips of 3 s, so 9 s of footage at most
Gemini Omni Flash 1.1 takes up to 3 reference videos of 3 s each and 10 reference images. The tags are VIDEO_REF_0 to 2; the price is unchanged.
- One idempotency key per model when a video fallback changes payload
Reusing an Idempotency-Key after switching video models returns 409 idempotency_conflict. Build the key from order, model, and prompt hash so retries stay safe.
- Replace videos.create_and_poll with a requests helper on Sume
The OpenAI Python SDK's create_and_poll and download_content have no Sume twin. Here is a 25-line requests helper with the same call shape and a safe retry key.
Written by Sume