Video

Generate a video clip (Veo 3.1 · Gemini Omni)

Text-to-video or image-to-video, 9:16 or 16:9, with sound. Veo 3.1 / Fast / Lite: 4–8 s. Gemini Omni (model: "gemini-omni-1.1-flash"), Google's newest video model: sound with speech in the language you quote, readable text in the frame, a start frame (and a last frame) or up to 3 reference images, 360p–4k; it picks the length itself (3–10 s) and is billed by what it made. Asynchronous (about 1–3 minutes) — wait with x-wait-ms or poll the execution. The clip is hosted for you and can go straight into /v1/studio/*. Until an account has bought credits once: Veo 3.1 (quality: "best", or named) runs as Veo 3.1 Fast — estimated and charged as Fast, and the clip's answer says so in model_note (model_note_he in Hebrew) — and a call that names Gemini Omni answers 402 top_up_required with the account's top-up page in details.top_up.

Billing: Per generated second, by model and resolution · Rate limit: 10/min · Asynchronous

post/v1/ai/video

Request

  • Base URL: https://apihub.co.il
  • URL: https://apihub.co.il/v1/ai/video
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Replay-safe: the same execution is returned instead of charging twice

X-Tagstring

Group calls into one job (e.g. one video) — see GET /v1/usage?tag=…

x-wait-msinteger

Wait for the job inside this call (ms)

Request body

model'auto' | 'veo-3.1-generate-preview' | 'veo-3.1-fast-generate-preview' | 'veo-3.1-lite-generate-preview' | 'gemini-omni-1.1-flash'

A model id (GET /v1/ai/models) or "auto" — then the clip is made with gemini-omni-1.1-flash at the resolution you send (Veo 3.1 can still be named until Google retires it, from 22 October 2026). "gemini-omni-1.1-flash" = Gemini Omni, Google's newest video model: sound with speech (put the line in quotes in the prompt), readable text in the frame, reference images; it picks the length itself (3–10 s)

ultraboolean

ULTRA: true = the clip is made with Gemini Omni (gemini-omni-1.1-flash) at 1080p or higher (4k stays 4k), whatever model and resolution are sent; a Veo model named becomes Omni at the duration asked, at 3× the credits of the same request without ULTRA (the estimate's ultra block shows both prices — POST …/estimate before you run it). Only for accounts that have bought credits at least once (402 ultra_paid_only, with the account's top-up page in details.top_up) and where ULTRA is switched on (else 403 ultra_unavailable). Nothing is charged when it is refused.

promptstring required
quality'fast' | 'balanced' | 'best'

Which model auto picks: fast (cheapest) · balanced (default) · best (strongest, costs more)

duration'3' | '4' | '5' | '6' | '7' | '8' | '9' | '10'

seconds: Veo renders 4, 6 or 8; gemini-omni-1.1-flash 3–10. gemini-omni-1.1-flash keeps this length when the call names no model or sends duration; a call that names gemini-omni-1.1-flash without duration lets it pick 3–10 s (a spoken line takes as long as it takes)

image_urlstring uri

Start frame (image-to-video)

resolution'360p' | '720p' | '1080p' | '4k'

Veo: 720p, 1080p or 4k (1080p and 4k need duration 8). gemini-omni-1.1-flash: 360p, 720p, 1080p or 4k

aspect_ratio'16:9' | '9:16'
last_frame_urlstring uri

gemini-omni-1.1-flash only, with image_url: the last frame — the clip moves from the first image to this one

negative_promptstring
reference_imagesstring[]

gemini-omni-1.1-flash only: up to 3 images of people, products or places to put in the clip (not a start frame) — refer to them in the prompt as <IMAGE_REF_0>, <IMAGE_REF_1>, <IMAGE_REF_2>

Response

Completed (or 202 while processing)

idstring

Execution id — stable across internal retries; use it with GET /v1/executions/{id}

status'pending' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'timeout'
operationstring
tagstring nullable

Your X-Tag, if sent

created_atstring date-time
completed_atstring date-time nullable
outputobject

Operation result (see each operation). While a Studio render is processing: stage (queued · transcribing · downloading · preparing · cleaning_voice · mixing_audio · rendering · finishing), phase (the engine's: download · prepare · voice · audio · encode · qa · upload, or null), progress (a percent, 0–100) and progress_fraction (0–1), eta_seconds (seconds left, never below 0) and estimate_seconds

errorstring nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.