If you search in Korean for Veo 3 pricing, you usually end up with subscription information — Google AI Pro/Ultra plans and Flow credits. That is only half the story; the other half is missing. This article puts numbers on the missing side — how much it costs to call the API on a per-clip basis — and decides which option is better with one division.
Two pricing systems
| Route | Billing unit | Limits |
|---|---|---|
| Subscription (Google AI Pro/Ultra, Flow) | Monthly fee + credits | Stops when credits run out |
| API (pay-as-you-go) | Per clip | No monthly fee · No cap |
Subscription prices and credit amounts change frequently, so we do not reproduce them here. Instead, we provide only the division needed for comparison — monthly fee ÷ per-clip price = the break-even number of clips. In months when you create fewer than that, pay-as-you-go is cheaper.
Per-clip price — by tier
The rates below are read from the model catalog. If pricing changes, this table changes too.
| Tier | Per clip | Use case |
|---|---|---|
| Veo 3.1 Lite | $0.18+ | Drafts · prompt refinement · high-volume variations |
| Veo 3.1 Fast | $0.36+ | Typical deliverables |
| Veo 3.1 Quality | $1.60+ | Final output |
The biggest cost reduction comes from mixing tiers. Run the pre-finalization stage several times with Veo 3.1 Lite, then run only the finalized prompt once at a higher tier. The difference between $0.18+ and $1.60+ becomes your experimentation cost.
Calling — only the asynchronous nature matters
Unlike text, video is an asynchronous task. The request first returns a task id, and you poll that id while waiting for completion.
# 클립 하나를 만들고 결과를 기다리는 최소 예제.
# 구독도, Google Cloud 프로젝트도 없이 키 하나로 호출합니다.
import os, time, requests
KEY = os.environ["KUNAVO_API_KEY"]
# 제출하면 작업 id와 status "queued"가 바로 돌아옵니다.
job = requests.post(
"https://api.kunavo.com/v1/videos",
headers={"Authorization": f"Bearer {KEY}"},
json={
"model": "veo-3",
"prompt": "비 오는 서울 골목, 네온 간판, 카메라가 천천히 전진",
},
).json()
# 영상 생성은 비동기입니다 — 작업 id로 폴링합니다.
while True:
r = requests.get(
f"https://api.kunavo.com/v1/videos/{job['id']}",
headers={"Authorization": f"Bearer {KEY}"},
).json()
if r["status"] in ("completed", "failed"):
break
time.sleep(5)
# 완료되면 영상 URL은 output.url에 있습니다.
print(r["output"]["url"] if r["status"] == "completed" else r["error"])Failed requests are not billed. However, generating again because you dislike the result is a successful generation, so each one is billed.
Honestly — when this path is not the right fit
The gateway path lets you start without a Google account or Cloud project, but it uses shared capacity rather than dedicated project quota. If you need guaranteed quota or a contractual SLA at your scale, apply directly to Google. This page does not claim to replace that option.
Image pricing is covered in the Nano Banana API; detailed English documentation is available in Veo 3 API and Text-to-video API. Payment methods are covered in Claude API pricing and billing.
Frequently asked questions
How much does Veo 3 cost?
There are two pricing models. Subscriptions (Google AI Pro/Ultra and Flow credits) use a monthly fee with a generation limit, while the API is pay-as-you-go per clip. Kunavo’s API rates are Veo 3.1 Lite $0.18+, Veo 3.1 Fast $0.36+, and Veo 3.1 Quality $1.60+(per video). There is no monthly fee or minimum commitment.
Which is better: a subscription or the API?
It depends on how many you create. If you generate a high volume consistently every month, the subscription’s credit pricing is better; if you need only a few or usage fluctuates, pay-as-you-go per clip is better. The calculation is one division — monthly fee ÷ per-clip price = the break-even number of clips. In months when you create fewer than that, pay-as-you-go is cheaper.
Can I use Veo without a Google Cloud project?
Yes, through an OpenAI-compatible gateway. You can make calls with one key, without linking a Google account or billing account or creating a project. However, it uses shared capacity rather than dedicated project quota, so if you need guaranteed quota or a contractual SLA, apply directly to Google.
What is different between the Veo 3 tiers?
They differ in speed, quality, and per-clip price. Lite is the cheapest for drafts or high-volume variations, the standard tier is suitable for typical deliverables, and Quality is intended for final output. In practice, the biggest total-cost reduction comes from refining a prompt through several Lite runs and then running only the finalized prompt once at a higher tier — the difference between $0.18+ and $1.60+ becomes your experimentation cost.
Does video generation return a result immediately after a request?
No. Video is an asynchronous task: the request first returns a task id, and you poll that id while waiting for completion. Unlike text models, it does not finish in a single response, so your code should separate submission from retrieval.
Are failed requests billed too?
Failed requests are not billed through Kunavo. However, generating again because you dislike the result is a successful generation, so each one is billed. That is why we recommend using the cheapest tier while refining prompts.