AI video API pricing. From $0.021 a second.

Every video model on Zurelay, on one API key: Seedance, Kling, Veo, Wan, Grok Imagine, MiniMax H3 and more. One endpoint, POST /v1/videos, takes a prompt, first and last frames or reference images, and returns a video with generated sound. A video is charged only once it's delivered.

AI video models
12
From, per second
$0.021
Below the usual price
11–75%

Pricing

Every AI video model. Live prices, one key.

Each model's price per second of video, beside what the same second costs elsewhere.

AI video API prices on Zurelay
ModelMakesPriceCompared withYou save
Seedance 2.5seedance-2.5480p–1080p, 4 to 30 seconds
from $0.135
per second
$0.2149
fal.ai, 480p
37%off
Seedance 2.0seedance-2.0480p–4K, 4 to 15 seconds
from $0.097
per second
$0.1406
fal.ai, 480p
31%off
Seedance 2.0 Fastseedance-2.0-fast480p–720p, 4 to 15 seconds
from $0.074
per second
$0.1125
fal.ai, 480p
34%off
Seedance 2.0 Miniseedance-2.0-mini480p–720p, 4 to 15 seconds
from $0.047
per second
$0.0703
fal.ai, 480p
33%off
Gemini Omni Flashgemini-omni-flash360p–4K, 4 to 10 seconds
from $0.042
per second
$0.1014
Google, 720p
59%off
Kling 3.0kling-3.0720p–1080p, 3 to 15 seconds
from $0.125
per second
——
Wan 3.0wan-3.0480p–1080p, 2 to 30 seconds
from $0.05
per second
——
Veo 3.1 Fastveo-3.1-fast720p, 8 seconds
from $0.025
per second
$0.10
Google, 720p
75%off
Grok Imagine Video 1.5grok-imagine-video-1.5480p–720p, 1 to 15 seconds
from $0.071
per second
$0.08
xAI, 480p
11%off
Vidu Q3 Turbovidu-q3-turbo540p–1080p, 1 to 16 seconds
from $0.03
per second
$0.035
Vidu, 540p
14%off
PixVerse V6pixverse-v6360p–1080p, 1 to 15 seconds
from $0.021
per second
$0.035
PixVerse, 360p
14%off
MiniMax H3minimax-h3768p–2K, 4 to 15 seconds
from $0.065
per second
$0.08
MiniMax, 768p
19%off

Prices in US dollars, live from the catalog. Video is compared with fal.ai's price, or the lab's own where it sells video, per second at the resolution shown. Each model's own page has every price it charges.

Examples

Made with Seedance 2.5. Unedited, with sound.

Each clip is one generation from the prompt shown, not edited, then compressed for the web. Click one to watch it with sound.

Make your own
A slow dolly shot down a rain-soaked city street at night, neon reflections rippling in the puddles, a cyclist with a clear umbrella gliding through the frame, steam rising from a street grate, cinematic, photorealistic. Rain, distant traffic and a bicycle bell.
A golden retriever running along a sunny beach at sunset, waves rolling in, cinematic slow motion, photorealistic
Prompt

Vertical shot: a dancer in a flowing red dress spins on a rooftop at golden hour, the fabric swirling around her, a city skyline behind, the camera slowly orbiting, photorealistic. Wind and soft piano music.

Length
5 seconds
Resolution
720p
Aspect ratio
9:16
Size
720 × 1280
Frame rate
24 fps
Audio
Generated

Quickstart

One request. OpenAI's format.

Send a prompt to POST /v1/videos at https://api.zurelay.com/v1, with frames or reference images if you have them. You get an ID at once; poll it, or let a webhook tell you when the video is ready.

Add credit from $10, with no subscription. The quickstart has the rest.

video.py
import os, time, requests
API = "https://api.zurelay.com/v1"
headers = {"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}
res = requests.post(f"{API}/videos", headers=headers, json={
"model": "seedance-2.5",
"prompt": "A red fox trotting through fresh snow at dawn, cinematic",
"seconds": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
})
res.raise_for_status()
job = res.json()
# Takes a few minutes: poll until it's done
while job["status"] in ("queued", "in_progress"):
time.sleep(5)
job = requests.get(f"{API}/videos/{job['id']}", headers=headers).json()
if job["status"] == "failed":
raise SystemExit(job["error"]["message"])
video = requests.get(f"{API}/videos/{job['id']}/content", headers=headers)
with open("video.mp4", "wb") as f:
f.write(video.content)
print(f"Saved video.mp4 for ${job['cost']}")

Verified

The model you asked for. Tested before it serves.

Model capacity is often bought ahead, through prepaid credits, committed-spend contracts and volume tiers, and not all of it gets used. Sellers offer it below the usual price. Zurelay tests each route, pools several per model and sends every request to one that is available and verified.

Failed attempts move to another route, and you aren't billed for them. A video is charged only once it's delivered. How models are verified.

Live health for every model is on the status page.

FAQ

AI video API questions.

Anything else? Ask our team and we’ll answer by email.

How much does the AI video API cost?

On Zurelay: from $0.021 per second, across 12 models. There's no subscription or minimum spend: you add prepaid credit from $10 and pay for what you use. A video is charged only once it's delivered.

Are these the real models?

Yes. Each model is served over several routes run by independent sellers, and every route is tested before it serves requests and re-tested while it does. A video that fails costs nothing. If a result doesn't look right, send its x-request-id to support and we check the route that served it.

How do I start calling these models through Zurelay?

Create a key, then POST /v1/videos at https://api.zurelay.com/v1 with a model ID such as seedance-2.5 and a prompt. The video guide in the docs covers frames, reference images, polling and webhooks.

Am I charged for failed videos?

No. A video is charged only once it's delivered. If a generation fails, it costs nothing.

How do I make a video with the API?

POST /v1/videos with a model ID and a prompt returns the video's ID at once. Poll GET /v1/videos/{id} until it's done, or have Zurelay call your webhook the moment it's ready, then download it from GET /v1/videos/{id}/content.

Stop paying list price.
Start saving today.

Create a key in seconds, point the SDK you already use at Zurelay, and every request costs up to 90% less from the first token.