Veo 3 is Google's text-to-video model, and the Veo 3 API generates cinematic clips — with native, synchronized audio — from a text prompt or a still image. Kunavo serves the whole family (veo-3-lite, veo-3 Fast and veo-3-quality) through the OpenAI-style video endpoint, at roughly 50–70% under Google's list price, on one bearer token.
Call the Veo 3 API
Generate a key at /app/keys and POST to /v1/video/generations. Generation takes a couple of minutes, so the synchronous call holds the connection until the clip is ready:
import requests
resp = requests.post(
"https://api.kunavo.com/v1/video/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "veo-3", # Fast tier; also veo-3-lite / veo-3-quality
"prompt": "aerial push-in over a misty pine valley at dawn, birds, soft light",
"duration": 8,
"aspect_ratio": "16:9",
"resolution": "720p",
},
timeout=600, # Veo 3 generation takes minutes
)
print(resp.json()["data"][0]["url"])The same call with curl:
curl https://api.kunavo.com/v1/video/generations \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "Content-Type: application/json" \
--max-time 600 \
-d '{
"model": "veo-3",
"prompt": "aerial push-in over a misty pine valley at dawn, birds, soft light",
"duration": 8,
"aspect_ratio": "16:9",
"resolution": "720p"
}'And if the rest of your codebase already runs on the OpenAI SDK, you can keep one client for everything — chat, images and video share the key and the base_url:
# Already using the OpenAI SDK? Keep it — only base_url changes.
# Video isn't in the OpenAI SDK surface, so reuse its client for auth/config
# and post to the video route directly.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com/v1",
)
resp = client.post(
"/video/generations",
body={"model": "veo-3", "prompt": "a neon-lit alley in the rain", "duration": 8},
cast_to=dict,
options={"timeout": 600.0},
)
print(resp["data"][0]["url"])Returned URLs are permanent. Full parameters (resolution, aspect_ratio, seeds, negative prompts) are in the video API reference.
Tiers and pricing
Veo 3 has three quality tiers. Per-video rates below are for an 8-second 720p clip; 1080p and 4K step up. Live rates are on each model page.
| Model | Kunavo (720p / 8s) | Google list | Best for |
|---|---|---|---|
| veo-3-lite | $0.18+ | $0.45 | Storyboards, previews, high volume |
| veo-3 (Fast) | $0.36+ | $1.20 | The default — cinematic + native audio |
| veo-3-quality | $1.60+ | $3.20 | Hero shots, best fidelity |
Image-to-video
Pass image_url to animate a still — useful for keeping a product or character consistent. Pass a first and last frame for controlled transitions.
# Image-to-video: animate a still by passing image_url
requests.post(
"https://api.kunavo.com/v1/video/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "veo-3",
"prompt": "slow parallax, gentle wind through the grass",
"image_url": "https://your-cdn.com/keyframe.png",
"duration": 8,
},
timeout=600,
)Async in production
Don't hold a multi-minute connection at scale. Submit a task to /v1/videos, get a task id, then poll GET /v1/videos/{id} until it completes — with idempotency keys and optional webhooks. The full loop is in the video docs.
Prompting Veo 3
- Describe the shot, not just the subject — camera move (dolly, pan, push-in), lens feel, lighting and pacing matter most.
- Lean on the audio — Veo 3 renders sound, so name the ambience or effects you want.
- Set aspect ratio explicitly —
16:9for landscape,9:16for vertical/social. - Keep clips short — 5–8 seconds is the sweet spot; stitch generations for longer sequences.
Kunavo vs calling Google directly
Veo 3 is also available first-party through the Gemini API and Vertex AI. That route is the right one if you need Google's own SLA and support contract. Here is the honest trade:
| Kunavo | Google direct (Gemini API / Vertex) | |
|---|---|---|
| Setup | One key, one base_url | Google Cloud project + billing account + IAM |
| Price per 8s 720p clip | $0.36+ (Fast tier) | $1.20 list |
| Billing | Pre-paid wallet, one balance across every model | GCP billing, per-service line items |
| Other models on the same key | Claude, GPT, Gemini, image and music models | Google models only |
| Capacity | Shared — no dedicated quota, and a busy upstream is felt here | Your own project quota, raisable via support |
| Support / SLA | Email support, no contractual SLA | Google Cloud support plans |
Short version: Kunavo wins on setup time, unit price and having one key for every modality. Google direct wins when you need a quota guarantee or an enterprise agreement.
Veo 3 vs Sora and Kling
Veo 3 is the strongest generally available text-to-video model today and the live one on Kunavo. Sora and Kling are on the roadmap behind the same endpoint — see the text-to-video API guide for the model landscape, and the Sora API and Kling API guides for those families.
Picking between the video models on price rather than on this one family? The video generation API comparison prices all eight against the same 8-second 720p clip.
FAQ
What is the Veo 3 API?
Veo 3 is Google's text-to-video model, and the Veo 3 API generates cinematic clips with native synchronized audio from a text prompt or a still image. On Kunavo you call it through the OpenAI-style /v1/video/generations endpoint with one bearer token, across three tiers: Veo 3 Lite, Veo 3 Fast and Veo 3 Quality.
How much does the Veo 3 API cost?
On Kunavo, Veo 3 is billed per video, about 50–70% under Google's list: Veo 3 Lite $0.18+, Veo 3 Fast $0.36+, Veo 3 Quality $1.60+ per 8-second 720p clip. 1080p and 4K cost more. Failed generations are never billed.
Does Veo 3 generate audio?
Yes — Veo 3 produces native, synchronized audio (ambient sound, effects and dialogue) alongside the video, which is a key difference from earlier text-to-video models that were silent.
Is the Veo 3 API cheaper on Kunavo than through Google?
Yes on unit price: $0.36+ per 8-second 720p clip on the Veo 3 Fast tier versus Google's $1.20 list, and no Google Cloud project or billing account to set up. The trade-off is shared capacity rather than your own project quota, and email support rather than a contractual SLA — if you need a guaranteed quota, call Google directly.
How do I get a Veo 3 API key?
Sign up, create a key at /app/keys, set base_url=https://api.kunavo.com/v1 — no Google Cloud project. See the quickstart.