Vidu Q3 Turbo

ViduVideo

The fast tier of Vidu Q3: 540p–1080p clips up to 16 seconds from text or a frame, with audio.

Our price
$0.065
per second
Official
$0.077
15% vs official

First request

import time, requests

BASE, KEY = "https://api.altrouter.ai/v1", "ar-..."
h = {"Authorization": f"Bearer {KEY}"}

# 1. запускаем рендер - ответ приходит сразу, со статусом queued
job = requests.post(f"{BASE}/videos", headers=h, json={
    "model": "vidu-q3-turbo",
    "prompt": "a drone shot over a coastline",
}).json()

# 2. опрашиваем, пока не готово (рендер занимает минуты)
while job["status"] in ("queued", "in_progress"):
    time.sleep(10)
    job = requests.get(f"{BASE}/videos/{job['id']}", headers=h).json()

print(job["url"])

The interface is OpenAI-compatible: in existing code only the base_url, the key and the model id change — nothing else.

Vidu Q3 Turbo against its price neighbours

Vidu Q3 Turbo and its closest neighbours by price: prices and parameters from the AltRouter AI catalog
ModelPriceUnitDiscount
PixVerse V6PixVerse$0.041second−8%Open
Seedance 2.0 MiniByteDance$0.061second−60%Open
Vidu Q3 Turbothis pageVidu$0.065second−15%
MiniMax H3 MaxMiniMax$0.087secondOpen
Kling 3.0Kling$0.087secondOpen

Prices and parameters come from the same catalog as the price above; this is not a benchmark, it is comparable billing terms.

Limits

Rendering is asynchronous: POST /v1/videos returns immediately in queued and you poll GET /v1/videos/{id}. Funds are held when the job is created and captured only for a completed render — a failed one is not charged. At $0.065 per second, length multiplies the bill directly.

There is no subscription: every successful request is billed at the price above, and a failed one is not billed at all. That price is already 15% below the vendor's official one — the official price is shown struck through next to it so it can be checked. No Vidu account of your own is needed, and no VPN: requests go to api.altrouter.ai and we make the upstream call.

Rate limiting is shared across models and counted per key: 600 requests per minute by default, and a 429 with retry-after: 60 above it. An individual key can get its own limit and a spending cap per day, week, month or lifetime in the dashboard.

Full limits and credits

When to pick Vidu Q3 Turbo, and when a neighbour

The cheaper neighbour is Seedance 2.0 Mini: $0.061 per second of video against $0.065 for Vidu Q3 Turbo. On the same volume the bill comes out 1.1× smaller. It is the sensible pick where the task is repetitive and high-volume — labelling, classification, short templated answers — the kind of work where quality is bounded by the prompt rather than the model.

The dearer neighbour is MiniMax H3 Max: $0.087 per second of video, or 1.3× the price. On catalog parameters it offers the same capabilities and the same order of context, so the premium is only justified if Vidu Q3 Turbo falls short on your own task.

Guessing is more expensive than checking: the table above is prices and parameters, not a benchmark, and it cannot tell you which model does better on your own prompt. Switching costs one line — the model id in the request changes, the base_url and the key stay — so running both on your own data takes minutes.

API

An asynchronous endpoint: the call returns immediately in queued, and you poll GET /v1/videos/{id} for the result. The finished mp4 is re-hosted on our CDN, and only a completed render is charged.

POST/v1/videos
Body parameters
modelstringrequired"vidu-q3-turbo"
The model id.
promptstringrequired
The text description of the scene.
secondsinteger
Clip length; `duration` is accepted as an alias.
imagestringURL or base64
A reference frame - its presence routes to the model’s image-to-video variant.
durationnumber1–16default 5
Clip length in seconds (affects price).
resolutionenum540p · 720p · 1080pdefault 720p
Resolution tier (affects price).
aspect_ratioenum16:9 · 9:16 · 4:3 · 3:4 · 1:1default 16:9
Output aspect ratio.
audiobooleandefault true
seednumber0–4294967295
Seed for reproducibility.
Response

The same object comes back from GET /v1/videos/{id}; the finished file is also served directly from GET /v1/videos/{id}/content.

idstring
The render id (vid_…) - this is what you poll.
statusenumqueued · in_progress · completed · failed
The state of the render.
urlstring
The finished mp4 on our CDN - appears at status: completed.
secondsinteger
The clip length the price was computed on.
errorobject
Why it failed at status: failed: { code, message }.
Example
cURLPythonJavaScriptJSON
curl https://api.altrouter.ai/v1/videos \
  -H "Authorization: Bearer ar-..." \
  -H "Content-Type: application/json" \
  -d '{
  "model": "vidu-q3-turbo",
  "prompt": "a drone shot over a rocky coastline at sunrise",
  "resolution": "720p",
  "aspect_ratio": "16:9"
}'
Errors
400Invalid request.
401Missing or invalid API key.
402Insufficient credits, or the key’s spending cap is exhausted.
404Model not found.
429Rate limit exceeded.

More from Vidu