MATRIX model × provider · 2026-10-17

Video Generation API

Generate AI video from code. One HTTP endpoint reaches Kling, Veo, Seedance, Wan, MiniMax and dozens more — with live cross-provider pricing and automatic failover when a host is down.

Video model price matrix

WaveSpeedAISandBaseMachGenAtlas CloudFalReplicateTOAPISPikaOpenSand
minimax/h3per second @ 768p$0.08$0.048$0.05$0.08$0.06$0.08$0.08$0.08$0.053
seedance-2.5-officialper second @ 480p$0.18$0.153$0.085$0.14$0.221$0.103$0.1—$0.091
wan-3.0per second @ 1080p$0.2$0.12$0.162$0.16$0.2$0.1$0.12$0.13—
seedance-2.0per second @ 480p$0.12$0.102$0.059$0.09$0.135$0.08$0.066—$0.06
seedance-2.0-fastper second @ 480p$0.1$0.085$0.043$0.027$0.242$0.07$0.053—$0.048
kling-video-v3per second @ 720p$0.084$0.059$0.068———$0.06$0.068—
seedance-2.0-miniper second @ 480p$0.06$0.054$0.028$0.011$0.072—$0.033—$0.03
veo-3.1per second @ 720p$0.4$0.2$0.4——$0.2—$0.2—
veo-3.1-fastper second @ 720p$0.15$0.08$0.1——$0.1—$0.08—
wan-3.0-primeper second @ 480p$0.075$0.041—$0.061$0.068——$0.051—
minimax/h3-maxper second @ 480p—$0.04—$0.048$0.05—$0.05——
gemini-omni-flashper second$0.13——$0.125$0.13————
happy-horse-1.1per second @ 720p——$0.112——$0.14—$0.098—
kling-video-v3-omniper second @ 720p$0.084$0.059$0.068——————

Green = cheapest host for that model at that resolution, red = priciest. — = host does not list it. Most widely hosted video models shown; built 2026-10-17.

Four ways to call a video generation API

Text-to-video

A prompt in, a clip out. The baseline every model supports.

Image-to-video

Animate a starting frame with start_image_url.

Reference-to-video

Guide generation with several images, clips or audio via input_references.

Video editing

Modify an existing clip with input_video_url on editing models.

Calling it

curl https://videorouter.sh/api/v1/videos \
  -H "Authorization: Bearer $VIDEOROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "minimax/h3", "prompt": "a paper airplane gliding over a city", "duration_secs": 5}'
# -> {"id": "video_...", "status": "queued"}
curl https://videorouter.sh/api/v1/videos/$ID -H "Authorization: Bearer $VIDEOROUTER_API_KEY"
import time, requests
H = {"Authorization": "Bearer llmr_sk_live_..."}
job = requests.post("https://videorouter.sh/api/v1/videos", headers=H, json={
    "model": "minimax/h3", "prompt": "a paper airplane gliding over a city", "duration_secs": 5}).json()
while job["status"] not in ("completed", "failed"):
    time.sleep(5)
    job = requests.get(f"https://videorouter.sh/api/v1/videos/{job['id']}", headers=H).json()
print(job["data"][0]["url"] if job["status"] == "completed" else job["error"])
const H = { Authorization: "Bearer llmr_sk_live_...", "Content-Type": "application/json" };
let job = await (await fetch("https://videorouter.sh/api/v1/videos", { method: "POST", headers: H,
  body: JSON.stringify({ model: "minimax/h3", prompt: "a paper airplane gliding over a city", duration_secs: 5 }) })).json();
while (!["completed", "failed"].includes(job.status)) {
  await new Promise(r => setTimeout(r, 5000));
  job = await (await fetch(`https://videorouter.sh/api/v1/videos/${job.id}`, { headers: H })).json();
}
console.log(job.data?.[0]?.url ?? job.error);

Full walkthrough in the quickstart.

Guides

What Is a Video Generation API? How It Works and What It Costs

Plain-English explanation of video generation APIs: the job lifecycle, how pricing works per second, why one model has several hosts, and how to choose.

Video Generation API Use Cases and the Workflow Each Needs

Real video generation API use cases (product clips, social ads, previs, asset prototyping, localised variants) and the input mode and workflow each one needs.

Text-to-Video vs Image-to-Video vs Reference-to-Video (API)

Compare text-to-video, image-to-video and reference-to-video in a video generation API: request fields, when to use each, and the pitfalls that cost money.

Build vs Buy Video Generation: Hosted API or Self-Hosting?

Self-hosting video models versus a hosted video generation API: GPU ops, queueing, failover and cost modelling, plus what you still have to build either way.

Best Video Generation APIs: How to Evaluate Them (Checklist)

Criteria-based guide to evaluating video generation APIs: reliability, failover, input modes, pricing model, data terms, async design and a one-day bake-off.

Text-to-Video API Request Anatomy: Fields, Job Lifecycle, Billing

A text-to-video API call field by field: model, prompt, duration_secs, aspect_ratio, resolution, provider hints, the job lifecycle and what gets billed.

Video Generation API for E-commerce Product Videos

A concrete workflow for e-commerce product videos via API: image-to-video variants, automated checks, human review, publishing, cost control and pitfalls.

Video Generation API for Social Ad Variations at Scale

Generate social ad variations with a video API: prompt templating, 9:16, 1:1 and 16:9 sets, draft-then-final rendering, deduping and spend caps.

FAQ

What is a video generation API?

An HTTP interface that turns a text prompt (and optionally a start image or reference clip) into a generated video file. You submit a job, wait for it to finish, then download the result.

How is video generation priced?

Almost always per second of output video, and often per resolution tier. The same model can differ several-fold in price depending on which host serves it — see the live pricing page.

Which models can I call?

Kling, Veo, Seedance, Wan, MiniMax, Runway, Vidu, LTX, PixVerse and more. The pricing page lists every video model currently in the catalog.

Do I need a separate account per provider?

No. One VideoRouter API key covers every model and host in the catalog, billed from one prepaid balance.

Using video generation is one part of the job.

VideoRouter puts it next to dozens of other video and image models behind one API key, so you can compare providers, prices and fail over automatically. Compare providers on VideoRouter →