5video families
SeedanceWanKlingMiniMaxGemini OmniFor AI image & video products
Video generation APIs at production prices.
Kling, Seedance, Wan, MiniMax and more video models behind one OpenAI-compatible key, with Gemini, Qwen and GPT image models on the same bill. Per-second and per-image pricing, rate limits that scale with your traffic, and no platform fee on top-ups.
Custom pricingCustom discounts on video and image models- No card required
- OpenAI-compatible
- switch by changing one line of base URL
30sec
Longest clipSeedance 2.5Wan 3.04Kmax
Top outputSeedance 2.0Kling 3.0Gemini Omni250+models
One API keyOne key for every video and image model · 250+ models in total
Real outputs
See what each model actually makes.
Real clips and images from the models on our API, as published by the teams that built them. Open one to see what it shows, which inputs the model takes, its model ID and where it was published.
Custom pricing
Custom discounts on the video and image models you run.
Tell us which models you call and how much you generate each month. We quote a discount for each specific video and image model, based on your volume.
- Model by modelA separate price for each video or image model you use, not one blanket rate.
- From $1k a monthVolume pricing starts at $1k a month in usage.
- Quote in 24 hoursModel names and monthly volumes are enough to start.
Custom discounts available on
Pick a model to start your quote
- Seedance 2.5→
- Seedance 2.0→
- Wan 3.0→
- Wan 3.0 Prime→
- Kling 3.0→
- Kling 3.0 Omni→
- MiniMax H3→
- Gemini Omni Flash→
- Nano Banana Pro→
- Nano Banana 2→
- GPT-Image-2→
- Qwen-Image 2.0→
Running another model? Ask about any model on MixRoute.
Integration
Your code barely changes.
Submit the job
POST /v1/video/generationsreturns atask_idright away.Poll the task
GET /v1/video/generations/{task_id}every 10 to 15 seconds.Save the video
Read the result URL when it succeeds. Result links are temporary, so save the file promptly.
Every example follows the MixRoute docs for that model. Kling uses its own native endpoints under /kling/, and image models answer in a single call.
Python · requests · wan3.0-video
import os, time, requests API = "https://api.mixroute.ai/v1/video/generations"KEY = {"Authorization": f"Bearer {os.environ['MIXROUTE_API_KEY']}"} # 1. Submit: a task_id comes back right awaytask = requests.post(API, headers=KEY, json={ "model": "wan3.0-video", "metadata": { "input": {"prompt": "A red ceramic mug slowly rotates"}, "parameters": {"resolution": "720P", "duration": 5}, },}).json() # 2. Poll until the video is readyurl = f"{API}/{task['task_id']}"while True: job = requests.get(url, headers=KEY).json()["data"] if job["status"] == "SUCCESS": print(job["result_url"]) break if job["status"] in ("FAILURE", "failed", "expired"): raise RuntimeError(job.get("fail_reason")) time.sleep(15)
curl · Seedance 2.5 · async · docs ↗
curl https://api.mixroute.ai/v1/video/generations \ -H "Authorization: Bearer $MIXROUTE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "dreamina-seedance-2-5-260628", "prompt": "Steampunk clockwork opens into a canyon of books", "asset": false, "metadata": { "content": [{"type": "text", "text": "Steampunk clockwork opens into a canyon of books"}], "resolution": "720p", "ratio": "16:9", "duration": 15, "generate_audio": true } }'# Then poll GET /v1/video/generations/{task_id}; the video is at content.video_url
curl · Kling 3.0 Omni · native endpoint · docs ↗
curl https://api.mixroute.ai/kling/omni-video/kling-3.0-omni \ -H "Authorization: Bearer $MIXROUTE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [ {"type": "prompt", "text": "Restyle @video_1 as a gothic castle at night, like @image_1"}, {"type": "base_video", "url": "https://example.com/blockout.mp4", "id": "video_1"}, {"type": "refer_image", "url": "https://example.com/style.png", "id": "image_1"} ], "settings": {"resolution": "1080p", "duration": 8, "audio": "off"} }'# Then poll GET /kling/tasks?task_ids={data.id}; read url from data[0].outputs where type is video
curl · MiniMax H3 · async · docs ↗
curl https://api.mixroute.ai/v1/video/generations \ -H "Authorization: Bearer $MIXROUTE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "MiniMax-H3", "prompt": "Extreme macro of a crested gecko", "metadata": { "content": [{"type": "text", "text": "Extreme macro of a crested gecko"}], "resolution": "2K", "duration": 6, "ratio": "16:9" } }'# Then poll GET /v1/video/generations/{task_id}; the video is at data.result_url
curl · Gemini Omni Flash · async · docs ↗
curl https://api.mixroute.ai/v1/video/generations \ -H "Authorization: Bearer $MIXROUTE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-omni-1.1-flash", "prompt": "A forest at sunrise becomes the same forest in snow under the stars" }'# Then poll GET /v1/video/generations/{task_id} until it succeeds
OpenAI SDK · Python · gpt-image-2
# Same OpenAI SDK. One line changes.base_url = "https://api.openai.com/v1"base_url = "https://api.mixroute.ai/v1" response = client.images.generate( model="gpt-image-2", prompt="product shot, studio lighting")
Why teams switch
Cost per successful result, not per request.
A failed generation costs you twice: the tokens and the retry. Your real cost is per successful output, and that's what our pricing is built around.
0% platform fee
No top-up fee on card or crypto. Your whole budget goes to tokens. Balance never expires.
Higher concurrency
Rate limits of 6,000+ RPM on request and up to 300K RPM on Enterprise, with Reserved Capacity for guaranteed throughput. Launch-day traffic and batch renders run in parallel.
Volume pricing
From $1k+/month, per-model pricing. Video and image models are where our pricing is most competitive.
Proof
More models. Higher limits. Their own price.
Two teams running video and image generation in production, and what changed when they moved to MixRoute.
- Many models, one key
- Higher concurrency
- Custom pricing
-
AI video team · Seedance + MiniMax
Video generation that holds up when a trend takes off.
A consumer AI video app used by creators around the world. Its traffic spikes without warning, so it runs Seedance and MiniMax through one MixRoute key, with higher rate limits for the peaks and a custom price on each model. Cut model costs by about 10% compared with buying direct from the providers.
- Seedance + MiniMax on one key
- Higher rate limits at peak
- Custom per-model pricing
-
AI image generation company
Image generation at the throughput they needed.
They moved image generation from Vertex AI to MixRoute for higher concurrency, and it ran smoothly at the throughput they needed.
- Higher concurrency
- Image models on one key
Customer names withheld. Clips and images are sample outputs from each model's maker, not these customers' work.
Business & Enterprise pricing
BUSINESS
$1,000 - $20,000/mo
- Up to 6,000 RPM, with TPM sized to your workload
- Dedicated account manager
- Prepaid by card, USDT / USDC or bank transfer
- Doesn't stack with top-up bonuses
ENTERPRISE
$20,000+/mo
- Up to 300K RPM and 300M TPM
- Custom SLA & terms
- Priority response
- Or a single top-up from $30,000
FAQ
Before you ship
Can you discount specific video or image models?
Yes. We set custom, per-model discounts on video and image generation models such as Seedance, Wan, Kling, MiniMax, Gemini and GPT-Image, based on which models you run and your monthly volume. Send us your usage and we’ll price each model within 24 hours. Get my custom discount
How is video billed?
Per generated second, with the rate set by the model, the resolution and whether the clip has sound. Seedance is billed per video token, which also scales with resolution and length. Each model’s current rates are on its page at mixroute.ai/models.
How do video API calls work?
Video generation is asynchronous. You submit a task to POST /v1/video/generations and get a task_id back right away, then poll GET /v1/video/generations/{task_id} every 10 to 15 seconds until it succeeds and returns the video URL. Kling uses its own native endpoints under /kling/. Each submission is a separate paid task, so don’t resubmit automatically after a timeout, and save results promptly because result links are temporary.
Which video and image models can I use?
Video: Seedance 2.5 and 2.0 (plus 2.0 Fast and Mini); Wan 3.0 and 3.0 Prime, plus 2.7 and 2.6; Kling 3.0 and 3.0 Omni, plus 3.0 Turbo, O1, 2.6 and 2.5 Turbo; MiniMax H3; Gemini Omni Flash. Image: Nano Banana Pro, Nano Banana 2 and 2.1; Qwen-Image 2.0 and 2.0 Pro; GPT-Image-2.5 and GPT-Image-2; Grok Imagine 2.0. Exact IDs are on our models page.
Can I send my own video in?
Yes. Seedance 2.5 and 2.0, Wan 3.0 and 3.0 Prime, Kling 3.0 Omni, MiniMax H3 and Gemini Omni Flash all accept video as an input, for references, editing or extending a clip. Limits differ by model, for example Seedance 2.5 takes up to 10 reference videos and 30 seconds in total. Each model’s limits are in the video API docs.
Are the samples on this page made by MixRoute?
No. Each clip and image was published by the team that built the model, and links to its source. Videos are compressed for the web. MixRoute serves the same models by ID through one API key, so you can run your own prompts and compare.
Can I get higher rate limits for a launch?
Yes. Any team can request 6,000 RPM, usually the same day, and Enterprise customers can go up to 300K RPM and 300M TPM. Tell us your expected peak and the models you’ll call, and we’ll confirm what we can provide.
What does the $5 free credit cover?
Free models right away, no card needed. Top up to unlock all 250+ models, and the credit works on all of them too.
Do you store my prompts?
No. Your prompts and outputs are not stored and not used for training. We keep usage data, such as token counts and timestamps, for billing. Each upstream provider applies its own data policy.
Video generation APIs at production prices.
Per-second and per-image pricing, rate limits that scale with your traffic, and no platform fee on top-ups.



