Sora is OpenAI's text-to-video model, and “the Sora API” is how teams generate video programmatically instead of through the consumer app. On Kunavo today, text-to-video runs on Google Veo 3 through one OpenAI-style video endpoint — Sora access is on the roadmap, and because the endpoint is model-agnostic, moving to Sora later is a one-word change. This guide shows the workflow with Veo 3 so every example runs right 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 form lets you script generation into a pipeline: marketing shots, product animations, b-roll, storyboard previews. The shape is the same across modern video models: send a prompt and parameters, get back a hosted video URL.
Video on Kunavo today: Veo 3
Kunavo exposes video generation through a single OpenAI-style endpoint, /v1/video/generations. Sora is not yet enabled on 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 lands, the only change is the model field.
Text-to-video quickstart
One POST with your Kunavo key. Generation can take 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",
"prompt": "a cinematic dolly-in on a red origami crane unfolding, soft light",
"duration": 5,
"aspect_ratio": "16:9",
},
timeout=600, # generation can take minutes
)
print(resp.json()["data"][0]["url"])Image-to-video
To animate a still, pass image_url (an https URL or a file you uploaded to /v1/files) alongside the prompt. For controlled motion you can pass a first and last frame with image_urls and image_mode: "frame". Full examples are in the video docs.
Async task lifecycle
In production, don't hold a 10-minute connection. Submit a task to /v1/videos, get a task id back immediately, then poll GET /v1/videos/{id} until it completes. Result URLs are permanent.
# Production: submit a task, then poll — no long-lived connection.
task = requests.post(
"https://api.kunavo.com/v1/videos",
headers={
"Authorization": f"Bearer {API_KEY}",
"Idempotency-Key": "my-task-uuid", # retry-safe within ~24h
},
json={"model": "veo-3", "prompt": "...", "duration": 5, "aspect_ratio": "16:9"},
timeout=60,
).json()
# then poll GET /v1/videos/{task["id"]} until it completesThe video docs cover the full polling loop, idempotency keys and webhook delivery.
Pricing
Veo 3 is billed per video (per 8-second clip at 720p shown here), about 40–60% under Google's list price. Higher resolutions cost more — see the pricing page for the full tier table.
| Model | From (720p / 8s) | Google list | You save |
|---|---|---|---|
veo-3-lite | $0.16 | $0.40 | ~60% |
veo-3 (Fast) | $0.32 | $0.80 | ~60% |
veo-3-quality | $1.92 | $3.20 | ~40% |
Prompting tips for video
- Describe the shot, not just the subject. Camera move (dolly, pan, push-in), lens feel, lighting and pacing matter more than adjectives.
- Set aspect ratio explicitly —
16:9for landscape,9:16for vertical/social. - Keep clips short. 5–8 seconds is the sweet spot; stitch multiple generations for longer sequences.
- Use a reference frame (image-to-video) when you need a specific character or product to stay consistent.
FAQ
Can I use the Sora API on Kunavo today?
Not yet — Sora is not enabled on the catalog. Text-to-video runs today on Veo 3 through the same OpenAI-style endpoint, and switching to Sora later is a one-word model change. Sora access is on the roadmap.
What does video generation cost?
Veo 3 is per-video, about 40–60% under Google's list: Lite from $0.16, Fast from $0.32, Quality from $1.92 per 8s 720p clip.
Does Kunavo support image-to-video?
Yes — pass image_url to /v1/video/generations, or a first/last frame pair for controlled transitions.
How long does generation take?
Minutes. Use the async /v1/videos task API and poll in production; see the video docs.