Sora is OpenAI's text-to-video model, and “the Sora API” is how teams generate video programmatically rather than through the consumer app. On Kunavo today, text-to-video generation runs on Google Veo 3 through a single OpenAI-style video endpoint — Sora access is on the roadmap, and because the endpoint is model-agnostic, migrating to Sora later will be a one-word change. This guide shows the Veo 3 workflow so every example works now.
What is the Sora API?
Sora (Sora 2 and Sora 2 Pro) turns a text prompt — or a still image — into a short video clip, with synchronized audio in Sora 2. The API approach lets you script generation within a pipeline: marketing shots, product animations, b-roll, and storyboard previews. The format is the same across modern video models: you send a prompt and parameters and receive the URL of a hosted video in return.
Video on Kunavo today: Veo 3
Kunavo exposes video generation through a single OpenAI-style endpoint, /v1/video/generations. Sora is not yet enabled in the catalog; the live text-to-video model is Google Veo 3, which produces cinematic clips with native audio. The examples below use veo-3 — when Sora arrives, the only change will be the model field.
Text-to-video quickstart
A POST request with your Kunavo key. Generation can take several minutes, so the synchronous call keeps the connection open 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",
"prompt": "um dolly-in cinematográfico em um origami de garça vermelha se abrindo, luz suave",
"aspect_ratio": "16:9",
},
timeout=600, # a geração pode levar minutos
)
print(resp.json()["data"][0]["url"])duration (seconds) sets the clip length on the models billed per second: the Seedance models and Wan 2.7. The Veo models ignore it; every Veo clip is 8 seconds, billed per video.
Image-to-video
To animate a still image, pass image_url (an https URL or a file uploaded to /v1/files) together with the prompt. For controlled motion, you can pass a first and last frame with image_urls and image_mode: "frame". Complete examples are available in the video documentation.
Asynchronous task lifecycle
In production, do not hold a connection open for 10 minutes. Submit a task to /v1/videos, receive a task ID immediately, and then poll GET /v1/videos/{id} until it completes. Result URLs are permanent.
# Produção: envie uma tarefa e faça polling — sem conexão de longa duração.
task = requests.post(
"https://api.kunavo.com/v1/videos",
headers={
"Authorization": f"Bearer {API_KEY}",
"Idempotency-Key": "meu-uuid-de-tarefa", # seguro para retry em ~24h
},
json={"model": "veo-3", "prompt": "...", "aspect_ratio": "16:9"},
timeout=60,
).json()
# depois faça polling em GET /v1/videos/{task["id"]} até concluirThe video documentation covers the complete polling loop, idempotency keys, and webhook delivery.
Prices
Veo 3 is charged per video (for an 8-second 720p clip, shown here), about 50–70% below Google's list price. Higher resolutions cost more — see the pricing page for the complete tier table.
| Model | Starting at (720p / 8s) | Google list price | Your savings |
|---|---|---|---|
veo-3-lite | $0.18 | $0.45 | ~60% |
veo-3 (Fast) | $0.36 | $1.20 | ~70% |
veo-3-quality | $1.60 | $3.20 | ~50% |
Video prompt tips
- Describe the shot, not just the subject. Camera movement (dolly, pan, push-in), lens feel, lighting, and pacing matter more than adjectives.
- Define the aspect ratio explicitly —
16:9for landscape,9:16for vertical/social media. - Every Veo clip is 8 seconds long. Plan each shot to fit, and stitch multiple generations for longer sequences.
- Use a reference frame (image-to-video) when you need a specific character or product to remain consistent.
Frequently asked questions
Can I use the Sora API on Kunavo today?
Sora is not yet enabled in Kunavo's catalog. Text-to-video generation currently runs on Google Veo 3 through the same OpenAI-style /v1/video/generations endpoint. Because the endpoint is model-agnostic, migrating to Sora later will be a one-word change in the model field. Sora access is on the roadmap.
What is the Sora API?
Sora is OpenAI's text-to-video model (Sora 2 and Sora 2 Pro). The Sora API generates short video clips — with synchronized audio in Sora 2 — from a text prompt or a still image, programmatically rather than through the consumer app.
How much does it cost to generate video on Kunavo?
Veo 3 is charged per video, about 50–70% below Google's list price: Veo 3 Lite starting at $0.18, Veo 3 Fast starting at $0.36, and Veo 3 Quality starting at $1.60 per 8-second 720p clip. Higher resolutions cost more.
Does Kunavo support image-to-video?
Yes. Pass image_url (an https URL or an uploaded file) to /v1/video/generations to animate a still image. You can also pass a first and last frame for controlled transitions.
How long does generation take?
Minutes. In production, use the asynchronous task API /v1/videos and poll it; see the video documentation. For Gemini and text-model pricing, see the Gemini API pricing guide.