Veo 3.1 is the best-regarded video model Google has shipped — strong physics, accurate lip-sync, native audio — and programmatic access to it is still annoyingly gated. The official path runs through the Gemini API paid tier or Vertex AI on Google Cloud, which means a GCP project, billing account, quota requests and, depending on your region and history, a wait before generation quotas open up.
If you just want to call the model and pay for what you render, there is a shorter path. This guide covers the access options as they actually stand in 2026, what Veo costs per second on each route, and a working integration you can copy-paste — no Google Cloud project required.
account_treeYour Three Access Routes in 2026
1. Google official (Gemini API / Vertex AI)
The reference implementation. Gemini API access requires a paid tier account; Vertex AI requires a full Google Cloud project with billing enabled, IAM configured, and quota approval for Veo models. As of August 2026, Google lists Veo 3 at roughly $0.40/second and Veo 3 Fast around $0.15/second after the late-2025 price cuts. Enterprise teams with compliance requirements will end up here eventually — but it is a poor way to prototype.
2. Model-hosting platforms (fal.ai, Replicate)
Both resell Veo access behind their own APIs. fal.ai lists Veo 3.1 from about $0.20/second without audio ($0.40/second with), and Replicate's Veo 3 endpoint has been billing around $0.75/second — roughly $6 per 8-second clip — as of August 2026. Workable, but each is another account, another balance, another SDK shape. Check their pricing pages for current rates; this market reprices monthly.
3. Viddra (aggregator, one key)
Viddra routes Veo 3 and Veo 3.1 Fast through the same OpenAI-style endpoint as 16 other models. No GCP project, no quota application, no waitlist — create an account, top up $10 with PayPal, and call. The same key also reaches Kling 3.0, Seedance 2.0, Wan 2.6 and the rest of the roster on the models page, which matters the moment you want to A/B Veo against anything else.
paymentsVeo Pricing on Viddra
| Model id | Price / sec | Durations | Audio |
|---|---|---|---|
| veo3 | $0.35 | short clips | silent |
| veo3 | $0.60 | short clips | native audio |
| veo3.1-fast | $0.24 | 4 / 6 / 8s | fast tier |
Worked examples: an 8-second silent Veo 3 clip costs $2.80; the same clip with native audio costs $4.80. On veo3.1-fast, an 8-second render is $1.92 — the cheapest way to evaluate whether the Veo look fits your product before committing to the full-quality tier.
Test prompts in the Playground first. The Playground calls the exact same API and models you would hit from code, so what you see is what your integration will get.
terminalQuickstart: Veo via curl
Grab a key in the Viddra console, then:
export VIDDRA_API_KEY="sk-..." curl -X POST https://api.viddra.com/v1/video/generations \ -H "Authorization: Bearer $VIDDRA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo3.1-fast", "prompt": "A golden retriever catches a frisbee in slow motion on a beach at sunset, ocean spray backlit", "duration": 8, "aspect_ratio": "16:9" }' # 202 Accepted → { "task_id": "task_v31x...", "status": "queued" } curl https://api.viddra.com/v1/video/generations/task_v31x... \ -H "Authorization: Bearer $VIDDRA_API_KEY" # → { "status": "succeeded", "video_url": "https://cdn.viddra.com/...", # "billed_seconds": 8, "cost_usd": 1.92 }
Want full Veo 3 with audio? Swap the model id to veo3 and add "audio": true — the request shape is identical. Full field reference is in the docs.
codePython: Submit, Poll, Download
import os, time, requests BASE = "https://api.viddra.com/v1" HEADERS = {"Authorization": f"Bearer {os.environ['VIDDRA_API_KEY']}"} def veo(prompt, model="veo3.1-fast", duration=8, audio=False): payload = { "model": model, "prompt": prompt, "duration": duration, "aspect_ratio": "16:9", "audio": audio, } task = requests.post(f"{BASE}/video/generations", headers=HEADERS, json=payload, timeout=30).json() tid = task["task_id"] while True: time.sleep(8) s = requests.get(f"{BASE}/video/generations/{tid}", headers=HEADERS, timeout=30).json() if s["status"] == "succeeded": return s if s["status"] == "failed": raise RuntimeError(s.get("error")) result = veo("A chef flips a pancake in a sunlit kitchen, slow motion") print(result["video_url"], result["cost_usd"])
graphic_eqGetting the Most Out of Veo's Audio
Veo's native audio is its signature feature, and it responds to prompt structure more than most developers expect. Three patterns that consistently improve output:
— Write the dialogue verbatim. Put spoken lines in quotes inside the prompt: A barista says "your oat latte is ready" over cafe ambience. Veo lip-syncs quoted speech noticeably better than paraphrased speech.
— Layer the soundscape. Name two or three audio elements ("waves, gulls, distant boardwalk music") rather than one vague one.
— Silence is a choice. At $0.35/sec silent versus $0.60/sec with audio, clips destined for a music bed or voiceover should be generated silent on purpose — that is a 42% saving per second, not a missing feature.
balanceHow the Routes Compare on Real Cost
Stacking the routes up for a representative workload — one hundred 8-second clips with audio, list prices as of August 2026:
| Route | Rate (audio) | 100 × 8s clips | Setup burden |
|---|---|---|---|
| Viddra veo3 | $0.60/sec | $480 | $10 top-up, one key |
| Viddra veo3.1-fast | $0.24/sec | $192 | $10 top-up, one key |
| Google official | ~$0.40/sec (Veo 3) | ~$320 | GCP project + quota |
| fal.ai (Veo 3.1) | $0.40/sec | $320 | separate account |
| Replicate (Veo 3) | ~$0.75/sec | ~$600 | separate account |
Google's own rate is genuinely competitive now; the real cost of the official route is the setup and quota process, not the per-second number. The aggregator argument is not "cheaper than Google" — it is that Veo, Kling, Seedance and Wan land on one bill and one integration, and you can shift traffic between them with a config change when pricing or quality moves.
engineeringIntegration Tips Before You Ship
Poll politely. 8-second intervals are plenty for Veo workloads; exponential backoff from 5s to 15s if you are running fleets of workers.
Budget with the fast tier. Run every prompt through veo3.1-fast at $0.24/sec first. Promote only the prompts that earn it to full veo3. Teams that skip this step typically overspend 3–5x during development.
Persist task ids. Store the task id, model id and prompt before you start polling. If your worker restarts, the generation is still billable and retrievable — resubmitting is how you pay twice.
Compare before committing. The same prompt behaves differently across Veo, Kling and Seedance. Our 2026 video API comparison has a decision tree for matching model to use case.
Mind the fixed durations on the fast tier. veo3.1-fast only generates 4, 6 or 8-second clips. If your template expects 5 or 10 seconds, either conform the template to the 4/6/8 grid or step up to the full veo3 tier — do not silently trim clips in post, because lip-synced dialogue is timed to the generation length.
Keep Google in the rear-view mirror. Veo pricing has already been cut once, and the aggregator layer means a price move is a config change rather than a migration. Review the pricing page quarterly and re-run your routing math; the teams that saved the most in this market were the ones who could switch models in an afternoon.
Viddra Engineering
More postsThe Viddra engineering team builds the unified API layer that makes frontier video, image and speech models boringly reliable to call.

