Gemini Omni 1.2 Flash or Veo: picking a video API for your app

Veo 3.1 Preview is gone from the Gemini API, so choosing between Omni and Veo is now a platform decision. Here's what each one costs, where you can call it and how to migrate.

Medy Evrard

6 November 2026

Gemini Omni 1.2 Flash or Veo: picking a video API for your app

Apidog for Enterprise

On-Premises Deploy

SSO & RBAC

SOC 2 Compliant

Explore Apidog Enterprise

Quick answer: Build on Gemini Omni 1.2 Flash if you want one API key, conversational editing, or clips up to 15 seconds. Pick Veo 3.1 only if you already run on Google Cloud and need its request controls, such as up to four outputs per call. You can no longer call Veo from the Gemini API: its Preview models shut down on October 22, 2026.

That shutdown turns a model comparison into a platform decision. Our Omni 1.1 vs Veo 3.1 comparison covers the older specs. This guide answers a narrower question: which one do you build on now?

Google published no benchmarks for Omni 1.2, so nothing here ranks the two on looks. Specs and prices below come from Google’s docs, read on November 6, 2026.

Gemini Omni 1.2 Flash vs Veo 3.1 at a glance

Gemini Omni 1.2 Flash Veo 3.1
Status Generally available generate-001 and fast-generate-001 GA, lite-generate-001 Preview
Where you call it Gemini API, Gemini Enterprise Agent Platform Agent Platform only
Auth API key (Gemini API) Google Cloud project and access token
Request shape Interactions API predictLongRunning, polled with fetchPredictOperation
Location global on Agent Platform us-central1
Clip length 3 to 15 seconds, in one-second steps 4, 6 or 8 seconds
Audio Native Sound generation supported
Resolutions 360p, 720p, 1080p and 4K (upscaled) 720p, 1080p, plus 4K on Veo 3.1
Extension 3 to 10 seconds per turn 7 seconds per call, 37 seconds total
Multi-turn editing Yes, with previous_interaction_id No equivalent in the docs we read
Outputs per request One video per turn in the samples sampleCount of 1 to 4
Negative prompt Not supported, write it into the prompt negativePrompt parameter
Earliest retirement None listed May 4, 2027 or later (GA models)

One conflict to plan around: Omni’s maximum extended length depends on the surface. The Gemini API docs say 30 seconds total. The Agent Platform extension docs say up to 40. If your product promises a length, test it on the surface you ship on.

What changed for Veo

The Gemini API video docs now state that the Veo 3.1 Preview in the Gemini API has been shut down. Three model IDs went with it on October 22, 2026:

Google points you to two exits: Gemini Omni Flash, or the GA Veo models on the Gemini Enterprise Agent Platform (the successor to Vertex AI). We found no Veo newer than 3.1 in Google’s current Veo model page.

So an integration built on an AI Studio key and a Veo preview ID has already stopped working. A new model string won’t fix it, because the GA models live on a different platform with different auth. Older guides, including our own Veo 3.1 API walkthrough, were written for the preview route.

Availability map: the Gemini API with an API key reaches Omni 1.2 Flash only, while the Gemini Enterprise Agent Platform with a Google Cloud project reaches both Omni 1.2 Flash and the Veo 3.1 GA models

What each API costs per second

Omni bills output tokens. Veo uses a flat rate by resolution. These rates are for video with audio:

Output Omni 1.2 Flash Veo 3.1 (GA) Veo 3.1 Fast (GA) Veo 3.1 Lite (Preview)
360p $0.023 n/a n/a n/a
720p about $0.07 $0.40 $0.10 $0.05
1080p $0.104 $0.40 $0.12 $0.08
4K $0.209 $0.60 $0.30 n/a

Omni’s figures come from Google’s Gemini pricing page, which also lists input at $1.50 per million tokens. Its 1080p and 4K rates include upsampling. Veo’s figures come from the Agent Platform price list. That list shows them per “count” and doesn’t define the unit. They match the per-second rates reported at launch, so we read them as per second. Confirm against your first invoice. The list also prices 4K for Fast, though the model page shows 4K output for Veo 3.1 only.

An 8-second 720p clip costs about $0.56 on Omni, $3.20 on Veo 3.1, $0.80 on Fast and $0.40 on Lite. Lite is the only Veo model under Omni’s price with audio, and it’s still in Preview. Veo also lists video-only rates, such as $0.08 for Fast at 720p. For the token math, see our Omni 1.1 pricing breakdown, then swap in the new $12.00 per million video output rate.

Google lists Omni’s free tier as “Not available” on both 1.2 and 1.1.

Pick Gemini Omni 1.2 Flash if

Know the limits first. Google names fast sports action, rapid script changes and complex physics as areas it’s still improving. Audio uploads aren’t supported. Editing or extending uploaded videos isn’t available in the EEA, Switzerland or the UK. Every output carries an imperceptible SynthID watermark.

Pick Veo 3.1 if

The trade-off: us-central1 only, a Google Cloud project, and a polling loop. Extension input must be MP4 at 24 fps, 1 to 30 seconds long. The extension page also lists Lite in its model table but leaves it out of the REST section, so treat Lite extension as unconfirmed.

Migrating a Veo integration to the Interactions API

Moving to Omni changes your request, polling and response parsing. Here’s a Veo extension call, following Google’s docs:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-3.1-generate-001:predictLongRunning

{
  "instances": [{
    "prompt": "The drone keeps climbing above the harbor",
    "video": { "gcsUri": "gs://my-bucket/clip.mp4", "mimeType": "video/mp4" }
  }],
  "parameters": { "storageUri": "gs://my-bucket/out/", "sampleCount": 1 }
}

And the same job on Omni, through the Agent Platform:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

{
  "model": "gemini-omni-1.2-flash",
  "store": false,
  "input": [
    { "type": "text", "text": "The drone keeps climbing above the harbor" },
    { "type": "video", "uri": "gs://my-bucket/clip.mp4", "mime_type": "video/mp4" }
  ],
  "response_format": [{
    "type": "video",
    "delivery": "uri",
    "gcs_uri": "gs://my-bucket/out/",
    "aspect_ratio": "16:9",
    "duration": "7s"
  }],
  "generation_config": { "video_config": { "task": "extend" } }
}

Map your fields like this:

Veo Omni
instances[0].prompt input text item
instances[0].video.gcsUri input video item uri
parameters.storageUri response_format gcs_uri
parameters.aspectRatio response_format aspect_ratio
parameters.seed generation_config.seed
parameters.negativePrompt A “Do not do X” line in the prompt
parameters.sampleCount No field in the docs we read, send separate requests
fetchPredictOperation background: true, then GET the interaction ID
videos[].gcsUri steps entry of type model_output, video item

Four details to watch:

  1. Response format shape. The Agent Platform sample wraps response_format in an array. The Gemini API docs describe a single object. Copy the shape for the surface you call.
  2. Duration format. Omni wants a string such as "7s", from "3s" to "15s", and "3s" to "10s" for extensions.
  3. Lost URIs. On the Gemini API, GET /v1beta/interactions/{id} returns inline base64 even if you asked for URI delivery. The URI is only guaranteed in the creation response or the stream, so save it there.
  4. Editing needs storage. With store: false you can’t edit that video in a later turn.

For a first Interactions call, our Omni 1.1 API guide still fits with the new model ID.

Two request flows side by side: Veo submits predictLongRunning, polls fetchPredictOperation, then reads the video from Cloud Storage, while Omni creates an interaction, receives a video, then sends a follow-up turn with previous_interaction_id to edit it

Let your coding agent test both with Apidog CLI

If you might swap providers later, or run both, you want one set of checks that doesn’t care which model answered. Hand that to your coding agent. It defines both endpoints with Apidog CLI, wraps each in a test scenario, and groups them in one test suite with the same assertions.

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

Then give Claude Code, Codex or Cursor one prompt:

In Apidog project <id>, create endpoints for Gemini Omni 1.2 Flash
(POST /v1beta/interactions) and Veo 3.1 Fast (predictLongRunning plus
fetchPredictOperation). Build one test scenario per provider and put both
in a test suite named video-provider-contract. Poll Veo until done. Assert
the same things on each: the job finishes, the output is video/mp4, and a
video URI or data field is present. Run it and summarize any failures.

The agent reads each schema, validates its payload, then builds and runs the suite:

apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file omni.json
apidog endpoint create --project <id> --file omni.json
apidog test-scenario create --project <id> --name "omni-contract" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <endpointId> --sync manual
apidog test-suite create --project <id> --name "video-provider-contract"
apidog test-suite update <suiteId> --project <id> --file suite.json
apidog run --test-suite <suiteId> --project <id> -e <envId> \
  --timeout-request 300000 -r cli,junit --out-dir ./reports

A provider swap then shows up as a failed assertion, not a broken player in production. Keep fixtures small, because every run bills real video: a 3-second 360p Omni clip plus a 4-second 720p Fast clip comes to about $0.47. Run that nightly, not on every commit. The same line drops into a pipeline, as our Apidog CLI CI/CD guide shows. Apidog Free covers up to 4 users.

FAQ

Can I still call Veo with a Gemini API key? No. The Veo 3.1 Preview models in the Gemini API shut down on October 22, 2026. The GA models run on the Gemini Enterprise Agent Platform, which uses a Google Cloud project and an access token.

Is there a Veo 4? Not that we could find. Google’s current Veo model page lists 3.1 models only, as of November 6, 2026.

What happens to my Omni 1.1 code? From December 3, 2026, requests to gemini-omni-1.1-flash route to gemini-omni-1.2-flash and bill at 1.2 rates. Your model string keeps working, but test your prompts on 1.2 before that date, since the model behind it changes.

Which one makes better-looking video? Google publishes no benchmarks here, so we won’t name a winner. Run the same prompts through both and judge the clips yourself.

Explore more

Claude Code Subagents Now Use Less of Your Limit

Claude Code Subagents Now Use Less of Your Limit

Background subagents in Claude Code now take less of your usage limit. Here's who gets the change, what 99% and 5% mean, and how to cut subagent usage further.

6 November 2026

What is Gemini Omni 1.2 Flash?

What is Gemini Omni 1.2 Flash?

Gemini Omni 1.2 Flash is Google's GA video model: 15-second clips, about $0.07 per second at 720p, and a December 3 reroute of all 1.1 traffic. Here's what changed, what it costs, where to call it and what to retest.

6 November 2026

How to use Gemini Omni 1.2 Flash for free

How to use Gemini Omni 1.2 Flash for free

The Gemini API has no free tier for Omni 1.2, but Google Flow and Google Vids do cost $0. Here's what each route gives you and what to do when it runs out.

6 November 2026

Practice API Design-first in Apidog

Discover an easier way to build and use APIs

Gemini Omni 1.2 Flash or Veo: picking a video API for your app