What you need before you start
Almost nothing — that's the point of this route to the Veo 3 API. You need a Google account to sign in with, a terminal or HTTP client for your first request, and a few dollars of credits when you're ready to generate ($9.99 buys a 120-credit pack — about a dozen 8-second Fast videos with audio). There is no SDK to install: the API is plain REST with JSON bodies, so it works identically from curl, JavaScript, Python, PHP, or anything else that can send an HTTPS request.
Compare that with Google's official path: a Google Cloud project, billing enabled on a card, Vertex AI APIs switched on, service-account credentials, and per-second billing (as published, Google Cloud onboarding is built around a $300 credit commitment as of 2026). The videos that come out of both routes are generated by the same Veo 3 and Veo 3.1 models — the difference is setup time and the pricing model. If cost is your main question, the Veo 3 API pricing comparison breaks down every provider side by side.
The five-step quick start
From zero to a downloaded MP4. Steps 1 and 2 are one-time setup; steps 3–5 are the loop your application will run for every video.
Create your account
Go to the API dashboard and sign in with Google. The account is active immediately — there's no email-verification wait, application form, or approval queue, and you don't enter a card to look around.Mint an API key
In the dashboard's API Keys section, click Create New API Keyand give it a descriptive name ("dev", "production"). The full key is displayed once — store it in an environment variable, never in source control, and use separate keys per environment so you can revoke one without breaking the other.Send your first generate request
One POST starts a generation. With curl:
The API validates the request, deducts the credits, and answers in milliseconds with a task handle — not the video itself:curl -X POST https://api.veo3gen.app/api/generate \ -H "Authorization: Bearer veo_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "model": "veo3-fast", "modelVersion": "3.1", "prompt": "A serene mountain landscape at sunrise, mist rolling over the peaks", "audio": true, "options": { "resolution": "1080p", "aspectRatio": "16:9", "duration": 8 } }'{ "success": true, "taskId": "veo_1704067200000_abc123", "status": "pending", "model": "veo3-fast", "creditsRequired": 10, "resolution": "1080p", "estimatedTime": "1-3 minutes" }Poll for completion
CheckGET /api/status/{taskId}every few seconds untilstatusbecomescompletedorfailed. In JavaScript:
While the task runs, the response includes aconst poll = async (taskId) => { const res = await fetch( 'https://api.veo3gen.app/api/status/' + taskId, { headers: { Authorization: 'Bearer ' + process.env.VEO_API_KEY } } ); const data = await res.json(); if (data.status === 'completed') return data.result.videoUrl; if (data.status === 'failed') throw new Error(data.error.message); await new Promise((r) => setTimeout(r, 5000)); // wait 5s return poll(taskId); };progressobject (stage, elapsed seconds, estimated remaining) you can surface in your UI. Expect roughly 1–2 minutes on Lite, 1–3 on Fast, and 2–5 on Quality.Download the video
On completion,result.videoUrlis a direct link to the finished MP4, alongside metadata (duration, resolution, aspect ratio, whether it has audio). Download and store the file on your own storage promptly rather than hot-linking the URL long-term, and you're done — the whole loop is one POST and a few GETs.
That is the entire integration. The full API documentation adds ready-made client classes for JavaScript, Python, and PHP, plus the complete endpoint and error reference.
Every parameter, and what each combination costs
The generate endpoint takes a small, predictable set of parameters. model and prompt are the only required fields; everything else has sensible defaults.
| Parameter | Type | Required | Notes |
|---|---|---|---|
model | string | Yes | "veo3-lite", "veo3-fast", or "veo3-quality" |
prompt | string | Yes | The video description, up to 2,000 characters |
audio | boolean | No | Default true — dialogue, ambient sound, and effects |
modelVersion | string | No | "3.0" (default) or "3.1"; Lite always runs 3.1 |
options.resolution | string | No | "720p", "1080p" (default), or "4k" (Veo 3.1 Fast/Quality only) |
options.aspectRatio | string | No | "16:9" (default) or "9:16" for vertical video |
options.duration | number | No | 4, 6, or 8 seconds (default 8) |
image | object | No | Image-to-video: animate a still instead of starting from text |
Pricing is per generation, in credits, and depends on the model, resolution, and audio combination you pick. These are the exact costs for an 8-second video:
| Model | Resolution | 8s with audio | 8s without audio |
|---|---|---|---|
| Veo 3.1 Lite | 720p | 3 credits | 2 credits |
| Veo 3.1 Lite | 1080p | 5 credits | 3 credits |
| Veo 3 / 3.1 Fast | 720p or 1080p | 10 credits | 6 credits |
| Veo 3.1 Fast | 4K | 22 credits | 19 credits |
| Veo 3 / 3.1 Quality | 720p or 1080p | 26 credits | 13 credits |
| Veo 3.1 Quality | 4K | 38 credits | 26 credits |
In dollar terms, credits cost $0.055–$0.083 each depending on which pack or subscription you buy — so an 8-second Fast video with audio runs about $0.55–$0.83, and a Lite 720p clip starts around $0.17. Per second of finished footage that's roughly $0.07 on Fast down to about $0.02 on Lite. Credits are valid for at least 30 days from purchase (see Terms). A sane development pattern: iterate on prompts with veo3-lite at 3–5 credits per attempt, then re-render the winning prompt on veo3-quality for the final asset — prompt quality transfers across models, so you pay Quality prices only for keepers. For a deeper cost breakdown against Google, fal.ai, and Replicate, see the cheap Veo 3 API guide.
Ready to run these numbers yourself? Mint a key in under a minute.
Get API AccessPolling, error handling, and refunds
A task moves through pending → processing → completed (or failed / timeout). Polling every 5–10 seconds is plenty: even Quality generations finish within a few minutes, and the status endpoint allows up to 120 checks per minute per key — so a fixed 5-second interval keeps you comfortably inside the limit even with several tasks in flight.
Handle four HTTP errors on the generate call and you've covered the real-world failure surface: 400(invalid parameters — the response names the offending field, so fix and don't retry), 401 (bad or revoked key — check the Bearer prefix and stray whitespace), 402 (insufficient credits — top up), and 429 (rate or concurrency limit — back off and retry). Failed generations — as opposed to rejected requests — surface in the status response with an error object that includes a retryable flag telling you whether resubmitting the same request makes sense.
Going to production
A quick checklist once the prototype works. Keep keys in environment variables or a secrets manager, with separate keys for development and production, and rotate them from the dashboard if one ever leaks. Queue generation requests client-side rather than firing them all at once — the API limits concurrent generations per account, so a simple job queue that respects 429 responses is the robust shape. Persist the taskIdthe moment you receive it (it's your handle for recovering after a crash or deploy mid-generation), and copy finished videos to your own storage instead of depending on the returned URL indefinitely.
Finally, watch your credit balance programmatically if video generation is on a critical path — a 402 at peak traffic is entirely avoidable. Usage per key is visible in the dashboard, which makes it easy to attribute spend when multiple services share an account. For a deeper tour of endpoints and capabilities beyond this quick start — image-to-video, vertical output, model selection strategy — continue with the Veo 3 API features guide and the API documentation.
Frequently asked questions
How do I get a Veo 3 API key?
Is there a free Veo 3 API key?
How much does one video cost through the Veo 3 API?
How long does the Veo 3 API take to generate a video?
What happens if my generation fails?
Does the Veo 3 API support image-to-video?
Do I need a Google Cloud account to use the Veo 3 API?
Generate your first Veo 3 video through the API today
Sign in with Google, mint a key, and POST your first prompt in minutes. Videos from about $0.17, failed generations refunded automatically.
No credit card required — sign in with Google and start in seconds.