Generate video with Google's Gemini Veo 3.1 API: pick a model tier, set resolution and clip length, poll the long-running job, then caption and publish.
Last verified · 2026-10-17 · by Moe Ameen
Google's Veo 3.1 is available programmatically through the Gemini API, so you can generate video with synchronized native audio from your own code instead of clicking through the Gemini app or Flow. The API is the right path when you want to batch clips, wire generation into a product, or script a repeatable pipeline. It is also the path where the small details bite — the model IDs are preview endpoints, there is no free tier, the longer resolutions are gated to 8-second clips, and generation is asynchronous, so you poll a long-running job rather than getting a file back on the same call.
This guide walks the request end to end: picking the model variant that fits your budget, setting resolution, duration, and aspect ratio correctly, adding reference images or first/last-frame control, kicking off the job, polling until it finishes, and downloading the clip. It uses the official google-genai SDK shape, but the same steps map to the REST endpoint. Verify current model IDs and per-second prices on Google's own pages before you ship — Veo is in active development and Google re-prices and renames endpoints often.
Veo outputs carry Google's SynthID watermark, and some regions and platforms require you to label AI-generated or synthetic media. YouTube, Meta, and TikTok all have altered/AI-content disclosure rules. Check each destination platform's current labeling policy and your local rules before publishing API-generated video, especially for ads or anything depicting a real person.
The API hands you back one thing: a short MP4 and a polling loop you had to write yourself. That is the whole job it does, and it is a good one — but it is also where most teams discover the real work starts after the clip exists. An 8-second render has no captions for muted autoplay, lives in a single aspect ratio, carries no brand frame or hook card, and is not scheduled or posted anywhere. If you only wire the API, you have also signed up to build the assembly step, the per-platform reframing, and the scheduler, and to keep all of it alive every time a preview endpoint is deprecated.
[Kompozy](/) is that after-the-clip layer, built so you do not maintain it. Drop a Veo export into Kompozy and [Clipped Shorts](/glossary/clipped-short) cuts it to vertical 9:16 with word-synced, on-brand captions — the track your clip needs because feeds play silent. From the same source it fans the idea into formats the API will never produce: a brand-exact carousel via [HyperFrames](/glossary/hyperframes), [quote graphics](/glossary/output-buckets) of the key line, a blog recap, and a newsletter, all held to your [Persona Brief](/glossary/persona-brief) so the copy stays on-voice. Then [Autopilot](/glossary/autopilot) schedules and publishes the set across eight social platforms plus blog and email from one review pipeline. You keep the API for raw generation; Kompozy turns each clip into a week of platform-native posts without a line of orchestration code. For a deeper look at Google's video stack, see the [Google Veo 3 workflow guide](/guides/google-veo-3-content-workflow) and the [Veo 3.1 API tool page](/ai-tools/veo-3-1-api).
Billing is per second of output on the paid Gemini API tier. At the time of writing, Veo 3.1 Standard is about $0.40/second at 720p and 1080p and $0.60 at 4K; Fast is about $0.10–$0.12 at 720p/1080p and $0.30 at 4K; Lite is about $0.05–$0.08 with no 4K. An 8-second Standard clip is roughly $3.20. There is no free tier, and Google only bills successful generations. Google re-prices often, so confirm live rates before budgeting.
They are preview endpoints: `veo-3.1-generate-preview` (Standard), `veo-3.1-fast-generate-preview` (Fast), and `veo-3.1-lite-generate-preview` (Lite). The older Veo 3 IDs (`veo-3.0-generate-001`) are deprecated, and Google's own deprecations page already lists October 22, 2026 as the earliest possible shutdown date for all three Veo 3.1 IDs too, pointing to `gemini-omni-1.1-flash` as the replacement. Because these are preview models, pin the exact ID and watch Google's deprecation notes.
A single generation is 4, 6, or 8 seconds, and the longer resolutions require the 8-second length. Scene extension on the Standard and Fast tiers adds 7 seconds per call, up to 20 times, so a chained sequence can reach roughly 148 seconds — but only on a Veo-generated 720p source, and the extended output stays 720p.
Yes. Native audio is always on for all three variants — the model generates dialogue, sound effects, and ambient audio synchronized to the video and lip-synced to speaking characters, in the same pass. You do not add a separate audio step.
No. Google's pricing page marks the free tier as unavailable for every Veo 3.1 model, so you need a billing-enabled paid key. Generation is billed per second of successful output.