Endpoint
{id, status: "pending"}; poll
GET /v1/videos/generations/{id} until success or failed.
Parameters
string
required
Text prompt describing the desired motion or scene change.
string[]
required
Exactly one source-image URL (PNG / JPEG, publicly accessible over
HTTPS). Mapped to upstream
image."4" | "6" | "8"
default:"\"8\""
Length of the generated clip in seconds. Pricing tiers depend on
this. When you supply
reference_images, upstream requires 8.boolean
default:"false"
Whether to include Gemini-synthesized audio. Each duration has a
separate audio-on tier (e.g. 8s: 3.04). Mapped to upstream
generate_audio."16:9" | "9:16"
default:"\"16:9\""
Aspect ratio of the generated video.
"720p" | "1080p"
default:"\"720p\""
Output resolution.
string
Content to actively steer the model away from generating.
boolean
default:"true"
Whether Gemini should expand and refine your prompt before generation.
Set
false if you’ve already crafted a precise prompt."allow_adult" | "dont_allow" | "allow_all"
default:"\"allow_adult\""
Safety controls for human generation.
allow_all requires the
upstream project to be allowlisted by Google.string
Optional URL or base64 data for the final frame. Lets you pin the
ending of the clip.
object[]
Up to three reference assets (or one style image) used to bias the
generation. When set,
duration must be 8. Each entry is
{ image: string, reference_type: "asset" }.integer
default:"1"
Number of clips to generate (1–4). Each counts as a separate
generation for billing.
integer
Initialiser for the random generator. Same seed + prompt + params
produces deterministic output. Range: 0 – 4,294,967,295.
Example
Try it live in the
Playground.