ModelSiteAPI

How video generation is billed

What each video model bills on (seconds or tokens), what counts and what does not, checked settlements, and how to estimate a job before you run it

Every video model works the same way: you create a task, then poll it. What differs is what the bill is based on. This page explains the rules and links to each model's own Billing section. It does not list prices, because they change: current unit prices are on the Models page.

Rules that apply to every video model

  • A failed task is not billed. Seedance also does not settle expired tasks.
  • Creating a task is not itself billed. A task that succeeds is settled on its actual usage.
  • Bill is based on what the poll response returns, not on what you requested. Look at usage.duration, usage.video_duration or usage.completion_tokens (see the table below). This matters when the model chooses the length (duration: -1) and when input video counts.
  • The amount charged is in usage.cost only if your organization returns cost. Then the poll of a finished task carries it, and a finished task is reported as still in progress (no result link) until the charge has been booked, at most about 5 minutes. Otherwise the amount is in your usage records. Create responses never carry it. See Platform extensions.
  • Creating a task needs enough balance. If the balance is not enough, the request returns 402 with error.type insufficient_quota. See Errors.

Billing at a glance

ModelBilled by (and what sets the rate)What counts
HappyHorse text / image / reference to videoGenerated seconds; the resolution tier sets the rateOutput seconds
HappyHorse video editingusage.durationInput video seconds plus output seconds, at the same rate
Wan 2.7 text to videoGenerated seconds; the resolution tier sets the rateOutput seconds
Wan 2.7 image to videoGenerated secondsOutput seconds; a continuation is billed by its total output duration
Wan 2.7 reference to videoGenerated secondsOutput seconds plus reference video seconds, at the same rate
Wan 3.0usage.durationOutput seconds plus input video seconds, at the same rate. With duration: -1 the model decides the length
Wan Animate-Mixusage.video_duration (fractional seconds); one rate, mode (wan-std / wan-pro) does not change itGenerated seconds
MiniMax video generationGenerated seconds × the unit price of the resolution tierOutput seconds. Input images are billed per image from the first one. On MiniMax-H3, input video seconds are billed at the output rate. Input audio is not billed separately
Seedance 2.0usage.completion_tokens × price per million tokens; the rate depends on output resolution and on whether a reference video is sent (with video is the lower rate)Tokens actually consumed

Checked against real settlements

These were verified charge by charge with a production test account on 2026-10-19 (the Seedance rows were also measured on that date).

JobWhat was sent and producedSettled as
HappyHorse video editing6.62 s of input video + 6.62 s of output, usage.duration 13.2413.24 seconds
Wan 2.7 reference to video5 s reference video + 2 s output, usage.duration 77 seconds
Wan 3.0 reference to video5 s reference video + 2 s output7 seconds
Wan 3.0 video editing5 s input + 5 s output10 seconds
Wan 2.7 image to video, continuation6 s continuation, usage.duration 66 seconds
Wan Animate-Mix, wan-stdusage.video_duration 5.25.2 seconds
MiniMax-H33 s reference video + 4 s output7 seconds
Seedance 2.0, 1080p, 5 sFormula estimate 243,000 tokens245,025 tokens measured
Seedance 2.0, 4K, 4 sFormula estimate 777,600 tokens785,700 tokens measured

Estimate a job before you run it

Models billed by seconds. Work out the billed seconds, then multiply by the unit price for your resolution tier:

cost  ≈  billed seconds  ×  unit price (for the resolution tier)

billed seconds = output seconds
               + input video seconds   (only for the models marked above)

For example, a Wan 2.7 reference-to-video job with a 5-second reference video and 2 seconds of output is billed as 7 seconds, not 2.

Seedance 2.0, billed by tokens. Estimate the tokens first, then price them:

tokens  ≈  width × height × fps × seconds / 1024      (add the input video's seconds when you send one)

cost    =  tokens × unit price per million tokens / 1,000,000

The measured usage.completion_tokens runs about 1% above this formula, so go by the returned value. When the input contains a video, the vendor sets a minimum token usage: below it, the minimum is billed.

Things that often surprise people

  • Input video seconds are billed on HappyHorse video editing, Wan 2.7 reference to video, Wan 3.0 and MiniMax-H3. An input video of 5 seconds and an output of 2 seconds is a 7-second bill.
  • Seedance 4K can have a lower price per token than 1080p and still cost more. That is the official pricing: a 4K job uses far more tokens (measured: 785,700 for 4 s at 4K versus 245,025 for 5 s at 1080p), so its total is higher.
  • Wan Animate-Mix has no price tier by mode. wan-std and wan-pro are billed at the same rate.
  • When the model chooses the length (duration: -1), Wan 3.0 bills the duration the poll response returns.

Where each rule comes from

Each model page has its own Billing section with the same rules in detail, and the verified examples above are quoted from there. If a model's page and this overview ever differ, the model page is the reference.

On this page