Home › Guides › Pricing by resolution

How resolution changes what a video API costs

Updated 2026-10-02

Ask for the price of a video API and you will usually get one per-second number. That number belongs to a specific resolution tier, often the lowest one. Resolution is one of the two main drivers of cost (the other is duration), and the way it works is less uniform than most rate cards suggest.

Why resolution costs more

Higher resolution means more pixels to generate per frame, and typically more compute and more time per second of video. Providers pass that through as a higher per-second rate for higher tiers. The details of how they price are theirs, and we cannot see their cost structure. What you can observe is the pattern in the published rates, and that is what matters for planning.

The formula is simple:

job_cost = requested_seconds * rate(model, host, tier) * (1 + platform_fee)

On VideoRouter the fee is a flat 2% for image and video, the cost is charged once at creation from the requested duration, and polling is free. The pricing explainer covers that billing flow. This page focuses on the tier argument.

The live numbers

The table shows, for each model, the tier that is being compared, the cheapest and priciest host, and the percentage gap. Read the tier column first.

ModelCheapest hostPriciest hostCheapest isHosts
bytedance/seedance-2.5 (480p)OpenSand
$0.0525 / second
Fal-US
$0.2646 / second
80% lower9
bytedance/seedance-2.0 (2160p)MachGen
$0.59 / second
Fal
$1.5552 / second
62% lower9
alibaba/wan-3.0 (480p)Replicate
$0.025 / second
Alibaba
$0.05 / second
50% lower10
google/gemini-omni-flashGoogle
$0.1 / second
Fal
$0.13 / second
23% lower4
minimax/h3 (768p)MachGen
$0.04 / second
WaveSpeedAI-resell
$0.1 / second
60% lower14
alibaba/happyhorse-1.1 (720p)Pika
$0.098 / second
Alibaba
$0.14 / second
30% lower4
bytedance/seedance-2.0-fast (480p)Atlas Cloud
$0.027 / second
Fal
$0.2419 / second
89% lower9
bytedance/seedance-2.0-mini (480p)OpenSand
$0.0104 / second
Fal
$0.0721 / second
86% lower8
seedance-2-mini-unrestricted (480p)OpenSand
$0.0114 / second
SandBase
$0.0721 / second
84% lower3
kling-o3 (720p)SandBase
$0.0588 / second
Tencent TokenHub
$0.084 / second
30% lower4
minimax/h3-max (480p)SandBase
$0.01 / second
MiniMax
$0.05 / second
80% lower5
kling-v3 (2160p)SandBase
$0.294 / second
Tencent TokenHub
$0.42 / second
30% lower8

Per second, before VideoRouter's 2% platform fee. For tiered models each row compares the resolution tier with the widest host-to-host gap. Built 2026-10-02 from the live catalog.

Per-second, per-tier mechanics

Why host rankings change between tiers

If you choose a host from the lowest-tier column and then ship a higher tier, you may be on the wrong host. Three reasons the ranking reorders:

  1. Hosts price each tier independently, so a discount at one tier does not carry over.
  2. Coverage varies. At a tier offered by few hosts, the range is narrow and the cheapest host may be a different one.
  3. Rates do not scale by a fixed multiple from tier to tier.

So always read the column for the tier you will ship. The pricing page and each model's own page show the whole grid, and unpinned requests choose the cheapest healthy host for the request automatically.

Comparing across tiers fairly

To compare a model at two tiers, hold everything else fixed: same model, same host if you can, same duration. Then compute cost per clip at each tier and divide by the value you get. A practical way to think about it:

QuestionHow to answer
Do I need this tier at all?Find the largest display size the clip appears at. Delivering more pixels than the surface can show is waste.
Can I draft lower?Yes in most workflows. Judge motion at a low tier, render approved shots at the delivery tier.
Is upscaling cheaper than native?Compare the native higher tier to a lower tier plus a separate upscale step, using the live prices for both, and check that the result meets your acceptance bar.
Does the tier I asked for match what I got?Check the returned file. An unsupported resolution is ignored and the default is used, with no error.

What this means for a buyer

Three habits follow from all of this. First, always quote a price with its tier attached, for example in your internal docs and vendor comparisons, because a bare per-second number is ambiguous. Second, include the tier in the cache key and the cost log of your application, so spend reports can be sliced by tier. Third, treat a tier change as a pricing event: it may also move you to a different cheapest host, so re-run the comparison instead of editing one constant.

A tier-aware budget

If part of your volume is draft and part is final, budget them as separate lines with their own tier and rate, instead of averaging:

total = (draft_clips * draft_seconds * rate_draft_tier * attempts_draft
       + final_clips * final_seconds * rate_final_tier * attempts_final) * (1 + fee)

The retry multipliers differ by stage, and drafts at a low tier have a much lower cost per attempt, which is why exploration is cheap there. The budget estimation guide walks through the full method.

Checking the tier you got

Because a mismatch is silent, add a cheap assertion to your pipeline: after each job completes, read the video's dimensions and log them next to the requested tier. If they differ, you will see it in your logs before you see it on your invoice. See the quickstart for the request fields, and live clip costs on the cost page. A key takes a minute at videorouter.sh/signup.

Frequently asked questions

Why does higher resolution cost more per second?

Higher tiers generally need more compute per frame, and providers price each tier with its own per-second rate. The exact cost basis is each host's own.

Is the cheapest host the same at every resolution?

Not necessarily. Hosts price tiers independently and offer different tiers, so rankings can change. Read the column for the tier you will ship.

Do all video models bill per second?

No. The docs mention models that bill a flat amount per clip regardless of duration, so check the unit on the model page.

What happens if I request an unsupported resolution?

The request is not rejected. The unsupported value is ignored and the model's default resolution is used, so verify the output dimensions.

Keep reading

Using AI video 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 →