Omni Flash 4K, 10 seconds: a webhook-mode /v1/videos request body

One curl body for gemini-omni-flash-1.1 at 4K, 16:9, 10 seconds with audio and a callback_url, plus what the docs say the submit reserves and what it cannot.

4 min readSume
All posts

The request below asks gemini-omni-flash-1.1 for the longest clip the catalog allows, 10 seconds, at 4K and 16:9, with audio, and gives a callback_url so you need not poll. Sume's docs list 3 to 10 seconds, 360p to 4K, and 16:9 or 9:16 for this model. Google's Omni page says its 1080p and 4K outputs are upscaled, so 4K here is a delivery size, not a native render.

The fields

resolution and aspect_ratio replace the size string some APIs use; size returns 400 on this route. generate_audio defaults to the model's own audio capability, so send it only to be explicit.

Request fields used for an Omni Flash 4K clip (Sume docs, read 2026-10-07)
FieldValueNote
modelgemini-omni-flash-1.1From GET /v1/videos/models
duration10Catalog range is 3 to 10
resolution4KAlso 360p, 720p, 1080p
aspect_ratio16:9Or 9:16
callback_urlHTTPS URLSigned job webhook on terminal state

The call

Set SUME_API_KEY, swap the placeholder hook URL, and run it. A good response is 202 with an id and a polling_url. The Idempotency-Key means a retry of this exact body returns the same job.

curl -sS https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" -H "Content-Type: application/json" \
  -H "Idempotency-Key: omni-4k-0001" \
  -d '{
    "model": "gemini-omni-flash-1.1",
    "prompt": "slow dolly past a rain-streaked neon sign",
    "duration": 10,
    "resolution": "4K",
    "aspect_ratio": "16:9",
    "generate_audio": true,
    "callback_url": "https://hooks.example.com/sume"
  }'

What to expect from the money and the wait

At submit, Sume reserves the provider list price times 1.25, and usage.cost on the completed job is the amount billed. A 402 insufficient_credits at submit means the reserve could not be held, and nothing started.

The webhook is terminal-only: job.completed, job.failed or job.canceled, with no progress events. A 4K, 10-second render can take a while, so keep a status poll as a backup and do not set a short client timeout that gives up on the job.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume