DEV Community

Viddra Team
Viddra Team

Posted on

One API key for 20 AI video models: real pricing, working code, and a $1 free tier

Every AI video provider ships its own SDK, its own auth scheme, its own billing quirks, and its own job-polling loop. Want a Kling clip, a Veo shot, and a Wan generation in the same app? That's three accounts, three key rotations, and three polling implementations — before you've generated a single frame.

I've been benchmarking video APIs over the past few weeks (Hailuo H3 vs Kling, Wan 3.0 deep dive). This post covers the unified-API approach I settled on (Viddra — full disclosure at the bottom): one key, one OpenAI-style request shape, and per-second billing across 20+ models.

The actual price table

All prices are per second, pulled live from the model directory (GET /v1/models) rather than marketing pages:

Model Provider Price Notes
Hailuo 2.3 MiniMax $0.0933/s (768P) · $0.15/s (1080P) budget flagship tier
Hailuo H3 MiniMax $0.12/s (768P) · $0.20/s (2K) 2K flagship, 4–15s
Seedance 1.0 Pro ByteDance $0.13/s efficient budget tier
Seedance 2.0 Mini ByteDance $0.15/s (720p) 4–15s
Wan 2.6 Alibaba $0.16/s (720p) · $0.24/s (1080p) solid all-rounder
Kling 3.0 Kuaishou $0.18/s quality flagship, 3–15s, optional audio
Veo 3.1 Fast Google $0.20/s native audio, speed-optimized
Wan 3.0 Alibaba $0.25/s (480p) · $0.50/s (720p) · $1.00/s (1080p) 2–30s, native audio, i2v + 10 reference inputs
Veo 3.1 Google $0.35/s ($0.60/s with audio) premium tier
Seedance 2.0 ByteDance $0.47/s (720p) 480p–4K
Seedance 2.5 ByteDance $0.68/s (720p) long-form, up to 30s, 50 reference inputs

The spread between the cheapest and priciest flagship output is roughly 7x — which is exactly why a unified price table matters before you commit code to one provider.

The request shape

One endpoint handles every model. Auth is a standard bearer key:

curl -X POST https://api.viddra.com/v1/video/generations \
  -H "Authorization: Bearer $VIDDRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling3.0",
    "prompt": "A golden retriever puppy playing in autumn leaves, slow motion",
    "duration": 5
  }'
Enter fullscreen mode Exit fullscreen mode

The call returns 202 Accepted with a task id. Billing works on hold-then-settle: the estimated cost is held when the task starts, and on failure the hold is refunded automatically — no support ticket, no expired credits.

Polling in 12 lines of Python

import os, time, requests

KEY = os.environ["VIDDRA_API_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

r = requests.post("https://api.viddra.com/v1/video/generations", headers=H,
                  json={"model": "veo3.1-fast",
                        "prompt": "Drone shot flying over neon-lit city streets at night",
                        "duration": 5})
task_id = r.json()["task_id"]

while True:
    d = requests.get(f"https://api.viddra.com/v1/video/generations/{task_id}", headers=H).json()
    if d["status"] in ("succeeded", "failed"):
        print(d["status"], d.get("video_url") or d.get("error"))
        break
    time.sleep(10)
Enter fullscreen mode Exit fullscreen mode

Swap "model" to kling3.0, wan3.0-video, hailuo-h3, seedance2.5, veo3.1 — the request shape doesn't change. Image-to-video uses the same endpoint with an image_url field. There's also a zero-dependency Node.js version of this flow in the quickstart docs.

The billing details that actually matter

  • $1 free credit on signup — enough to test 5–8 real generations across models, no card required
  • +10% bonus on every top-up
  • Per-second billing with no monthly minimum; balance never expires
  • Auto-refund on failure — failed tasks return the full hold
  • Rate limit: 100 req/min per IP, which is enough for production batch jobs

When a unified API is the wrong choice

Fair question. If you're all-in on a single provider and need their deepest params (e.g. Wan 3.0's full reference-input matrix), the native SDK will always have the newest knobs first. The unified layer shines when you're routing by price/quality per shot — cheap Seedance Mini drafts, Kling or H3 for finals — or when you don't want to wire up a new provider every time a benchmark shifts.


Full disclosure: Viddra is the unified API used for the benchmarks and pricing above, and I'm affiliated with the project. All prices were pulled from the live model directory, and the code samples run as written. Test it with the $1 free credit before trusting any of this.

Top comments (0)