Skip to content
Dashboard

Veo 3.0

Veo 3.0 is the full-quality Veo 3.0 video generation model, the proven standard-tier option for production video workflows requiring native audio, image-to-video support, and stable Veo 3.0 generation quality at up to 1080p.

View API reference
Price
$0.20, Per second
Lowest available configuration
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'google/veo-3.0-generate-001',
prompt: 'A serene mountain lake at sunrise.'
});
Read docs

Copy link to headingPlayground

Try out Veo 3.0 by Google. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.

google logo
Start frame
Prompt

Duration8s
4s8s
Resolution
Aspect ratio
Videos to generate
google logo

Your generated video will appear here.

Copy link to headingProviders

Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.

Provider
Input
Output
Capabilities
ZDR
No Training
Free Tier
Release Date
$0.20/sec+1 more
05/20/2025

Getting started

Generate videos with Veo 3.0 using the experimental_generateVideo function from AI SDK 6 or later. AI Gateway handles routing and polls until the video is ready.

Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the video generation quickstart.

index.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'google/veo-3.0-generate-001',
prompt:
'A pangolin curled on a mossy stone in a glowing bioluminescent forest',
generateAudio: true,
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Top-level parameters

Load the supported top-level parameters: prompt, aspectRatio, duration, resolution, and generateAudio.

top-level-params.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'google/veo-3.0-generate-001',
prompt:
'A pangolin curled on a mossy stone in a glowing bioluminescent forest',
aspectRatio: '16:9',
duration: 8,
resolution: '1080p',
generateAudio: true,
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);
ParameterTypeRequiredDescription
promptstringNoText description of the video to generate.
duration4 | 6 | 8NoVideo length in seconds. 4 or 6 or 8 seconds.
resolutionstringNoResolution ('1280x720', '1920x1080').
aspectRatiostringNoAspect ratio ('16:9', '9:16').
generateAudiobooleanNoGenerate synchronized audio with the video.
frameImagesArray<{ image: string; frameType: 'first_frame' }>NoOpening frame of the clip, as a single first_frame entry. Replaces prompt.image and wins when both are set.

Input limits

InputFormatsSourcesMax countMax sizeLimits
Imagejpg, jpeg, pngurl, base64120 MB

Provider options

Pass Veo-specific options under providerOptions.vertex. This call loads every text-to-video option that combines in a single request. resizeMode is image-to-video only (see below), while referenceImages and gcsOutputDirectory change the inputs/output destination and are omitted here.

provider-options.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'google/veo-3.0-generate-001',
prompt:
'A pangolin curled on a mossy stone in a glowing bioluminescent forest',
generateAudio: true,
providerOptions: {
vertex: {
enhancePrompt: true,
negativePrompt: 'blurry, low quality, distorted',
personGeneration: 'allow_adult',
compressionQuality: 'optimized',
sampleCount: 1,
seed: 42,
pollIntervalMs: 5000,
pollTimeoutMs: 600000,
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Pass Veo-specific options under providerOptions.vertex in your generateVideo call.

ParameterTypeRequiredDescription
enhancePromptbooleanNoUse Gemini to enhance prompts. Defaults to true.
negativePromptstringNoWhat to discourage in the generated video.
personGeneration'dont_allow' | 'allow_adult' | 'allow_all'NoWhether to allow person generation. Defaults to 'allow_adult'.
compressionQuality'optimized' | 'lossless'NoCompression quality. Defaults to 'optimized'.
sampleCountnumberNoNumber of output videos (1-4).
seednumberNoSeed for deterministic generation (0-4,294,967,295).
gcsOutputDirectorystringNoCloud Storage URI to store the generated videos.
referenceImagesarrayNoReference images for style or asset guidance. Legacy alternative to the top-level inputReferences, used only when inputReferences is omitted.
resizeMode'pad' | 'crop'NoImage-to-video only: how to resize the input image to fit video dimensions. Defaults to 'pad'.
pollIntervalMsnumberNoHow often to check task status. Defaults to 5000.
pollTimeoutMsnumberNoMaximum wait time. Defaults to 600000 (10 minutes).

Duration and resolution

1080p and 4K require duration: 8. At 720p, you can use 4, 6, or 8 seconds.

Image to video

Animate a starting image by passing prompt as an object with image and an optional text field.

image-to-video.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'google/veo-3.0-generate-001',
prompt: {
image: 'https://example.com/landscape.png',
text: 'Camera slowly pans across the scene as clouds drift by',
},
duration: 8,
resolution: '1080p',
generateAudio: true,
providerOptions: {
vertex: {
resizeMode: 'crop',
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Copy link to headingMore models by Google

Model
Context
Latency
Throughput
Input
Output
Cache
Web Search
Capabilities
Providers
ZDR
No Training
Free Tier
Release Date
1M1.9 s417 tps
$0.75/M
$3.75/M
Read$0.08/M
$14/K+1 more
+3
google logo
vertex logo
09/02/2026
1M0.9 s279 tps
$0.75/M
$3.75/M
Read$0.08/M
$14/K+1 more
+3
google logo
vertex logo
08/13/2026
1M0.5 s307 tps
$0.30/M
$2.50/M
Read$0.03/M
$14/K+1 more
+3
google logo
vertex logo
07/21/2026
1M0.6 s255 tps
$0.25/M
$1.50/M
Read$0.03/M
$14/K+1 more
+3
google logo
vertex logo
05/07/2026
1M0.6 s199 tps
$0.50/M+1 more
$3/M+1 more
Read$0.05/M
$14/K+1 more
+3
google logo
vertex logo
12/17/2025
1M0.3 s271 tps
$0.10/M
$0.40/M
Read$0.01/M
$35/K+1 more
+3
google logo
vertex logo
06/17/2025

Veo 3.0 is the quality tier of the Veo 3.0 generation. While the fast variant prioritizes generation speed for iteration and prototyping, Veo 3.0 allocates full generation capacity to each request. This produces output where motion consistency, scene coherence, and audio-visual synchronization meet the bar for finished production deliverables.

The model supports image-to-video generation alongside text-to-video. This is useful for workflows starting with a reference image (a product photo, a character illustration, or a scene establishing shot) that need video motion from that starting point. Native audio generation is included: ambient sound, sound effects, and dialogue cues in prompts produce synchronized audio without requiring a separate audio track.

For production pipelines that have calibrated prompts and validated output quality against Veo 3.0, Veo 3.0 provides a stable, consistent generation baseline. Teams evaluating Veo 3.1 should validate prompt behavior on the new generation before migrating, as architectural updates between major versions can shift output style and scene interpretation.

Copy link to headingWhat To Consider When Choosing a Provider

  • Configuration: For teams with tuned prompts validated against Veo 3.0, switching to 3.1 may shift output characteristics, so confirm before migrating production workflows.
  • Zero Data Retention: Zero Data Retention is available for this model. It is offered on a per-provider and model basis. See the documentation for details.
  • Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.

Copy link to headingWhen to Use Veo 3.0

Best for

  • Production-validated Veo 3.0 pipelines: Workflows with tuned prompts and validated quality expectations on the 3.0 generation use Veo 3.0 for stable, consistent output without generation-shift risk
  • Image-to-video workflows: Animating reference images, product photography, character art, or scene compositions, benefits from the full-quality generation tier's motion consistency
  • Audio-integrated final output: Content requiring synchronized ambient audio, sound effects, or dialogue without post-production audio work is well-served by the native audio generation at full quality
  • Deliverable-quality social and advertising content: Short-form video for distribution where generation consistency across a campaign matters more than migrating to Veo 3.1

Consider alternatives when

  • Fast iteration and prompt testing are the priority: Veo 3.0 Fast Generate provides the same generation with reduced latency for rapid exploration before committing to full-quality renders
  • The highest quality tier in the Veo 3.1 family is needed: Veo 3.1 Generate is the quality-focused tier in that generation and a common choice for new projects where generation consistency is not already tied to 3.0
  • Cost per video is the primary constraint: The fast variant generates more quickly at lower cost, appropriate when the quality difference between fast and standard is acceptable for the use case

Veo 3.0 is the full-quality Veo 3.0 option, stable, proven, and appropriate for production workflows where consistency and audio-visual quality matter more than migrating to Veo 3.1. For new projects without existing 3.0 dependencies, Veo 3.1 Generate is a common choice when you want the 3.1 quality tier.

Copy link to headingFrequently Asked Questions

  • What is the difference between Veo 3.0 Generate and Veo 3.0 Fast Generate?

    Both are Veo 3.0 generation models. Standard Generate allocates full generation capacity for output quality and consistency. Fast Generate prioritizes speed, making it suited for iteration and prototyping before committing to full renders.

  • Does Veo 3.0 support image-to-video generation?

    Yes. Provide a reference image alongside your text prompt to guide video generation from a visual starting point. This is useful for animating product photography, illustrations, or scene compositions.

  • How does native audio generation work?

    Describe audio elements (ambient environment, sound effects, character dialogue) in your text prompt. The model generates synchronized audio alongside the video in a single pass.

  • Should I use Veo 3.0 or Veo 3.1 for a new project?

    For new projects without existing 3.0 prompt tuning, Veo 3.1 Generate is the recommended choice when you want the quality tier of the 3.1 generation. Use Veo 3.0 when you have production-validated prompts on the 3.0 generation.

  • What resolution does Veo 3.0 support?

    Up to 1080p. Available resolutions and aspect ratios depend on the provider; see the Specs table on this page for details.

  • How do I use Veo 3.0 on AI Gateway?

    Use the identifier google/veo-3.0-generate-001 with the generateVideo interface. Submit a text prompt and optional reference image. AI Gateway handles provider routing automatically.

Your use is subject to Google's Terms & Privacy Policies.