Sora is OpenAI’s text-to-video model, and the “Sora API” is a way to generate videos programmatically rather than through a consumer application. On Kunavo, text-to-video currently runs on Google Veo 3 through one OpenAI-style video endpoint — Sora support is on the roadmap, and because the endpoint is model-independent, moving to Sora later requires changing only one word. This guide shows the workflow with Veo 3 so every example runs immediately.
What is the Sora API?
Sora (Sora 2 and Sora 2 Pro) turns text prompts or still images into short video clips, with synchronized audio in Sora 2. In API form, you can script generation into a pipeline: marketing cuts, product animations, b-roll, or storyboard previews. Modern video models all follow the same pattern: send prompts and parameters, and receive a hosted video URL.
Video currently available on Kunavo: Veo 3
Kunavo provides video generation through one OpenAI-style endpoint /v1/video/generations. Sora has not yet been enabled in the catalog, and the currently available text-to-video model is Google Veo 3, which creates cinematic clips with native audio. The examples below use veo-3 — when Sora is added, the only field you need to change is model.
Text-to-video quickstart
One POST request with your Kunavo key is all you need. Generation can take several minutes, so a 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": "빨간 종이학이 펼쳐지는 영화적인 돌리인, 부드러운 조명",
"aspect_ratio": "16:9",
},
timeout=600, # 생성에 몇 분이 걸릴 수 있습니다
)
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 add motion to a still image, pass image_url (an https URL or a file uploaded to /v1/files) with the prompt. For controlled motion, you can pass the first and last frames using image_urls and image_mode: "frame". The full example is in the video documentation.
Asynchronous task lifecycle
In production, do not keep a 10-minute connection open. Submit the task to /v1/videos and immediately receive a task ID; poll GET /v1/videos/{id} until completion. The result URL is permanent.
# 프로덕션: 작업을 제출한 뒤 폴링 — 장시간 연결을 유지하지 않습니다.
task = requests.post(
"https://api.kunavo.com/v1/videos",
headers={
"Authorization": f"Bearer {API_KEY}",
"Idempotency-Key": "my-task-uuid", # 약 24시간 내 재시도 안전
},
json={"model": "veo-3", "prompt": "...", "aspect_ratio": "16:9"},
timeout=60,
).json()
# 이후 완료될 때까지 GET /v1/videos/{task["id"]} 폴링Video documentation covers the complete polling loop, idempotency keys, and webhook delivery.
Price
Veo 3 is billed per video (here, based on an 8-second 720p clip) and is approximately 50~70% cheaper than Google’s list price. Higher resolutions cost more — see the pricing page for the complete tier table.
| Model | Starting price (720p / 8 seconds) | Google list price | 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.
- Specify the aspect ratio —
16:9for landscape and9:16for portrait/social. - Every Veo clip is 8 seconds long. Plan each shot to fit, and stitch multiple generations for longer sequences.
- Use reference frames (image-to-video). This is useful when you need a specific character or product to remain consistent.
Frequently asked questions
Can I use the Sora API on Kunavo right now?
Sora has not yet been enabled in Kunavo’s catalog. Text-to-video currently runs on Google Veo 3 through the same OpenAI-style /v1/video/generations endpoint. Because the endpoint is model-independent, switching to Sora later requires changing one word in the model field. Sora support 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 programmatically from text prompts or still images — with synchronized audio in Sora 2 — rather than through a consumer application.
How much does video generation cost on Kunavo?
Veo 3 is billed per video and is approximately 50~70% cheaper than Google’s list price: Veo 3 Lite starts at $0.18, Veo 3 Fast at $0.36, and Veo 3 Quality 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 add motion to a still image. You can also provide the first and last frames for a controlled transition.