PricingHow AI Video API Pricing Works: Per Second, Locked by a Quote
MakerNice Team · ·
MakerNice prices AI video per second: the cost of a request is a unit price multiplied by the duration you ask for. The unit price depends on the model, such as ByteDance's Seedance 2.5, Alibaba's Wan 3.0 or Kuaishou's Kling 3.0 Pro, plus the mode and the resolution. A quote locks that price for 12 minutes, and the money comes from a prepaid US dollar wallet.
How is the price of an AI video calculated?
Price equals unit price times seconds. For video the billing unit is second and the quantity is the duration, so with the model, mode and resolution fixed, a 10 second clip costs exactly twice a 5 second clip. If you leave duration out, the model default applies, which is 5 seconds for Seedance 2.5, Wan 3.0 and Kling 3.0 Pro. Amounts are strings of micro-USD, where 1,000,000 equal 1 US dollar, so parse them as integers or decimals, never as floating point numbers.
Which request fields change the price of a video?
Only the fields that pick a price row or set the quantity count. The quote records them, and create checks that they did not change:
| Field | Changes the price? | Why |
|---|---|---|
| model | Yes | Each model has its own unit prices |
| mode | Yes | t2v, i2v, flf and r2v are separate price rows |
| resolution | Yes | Each resolution is its own price row |
| duration | Yes | It is the quantity, in seconds |
| prompt | No | Not part of the price; edit it after quoting |
| aspect_ratio | No | A creative choice, not a price input |
What if a video model has no resolution option?
Some models let you choose the resolution and some do not. When a model lists no resolutions, the request must not include the field, otherwise you get 400 invalid_request, and the price comes from a single fixed tier. Duration limits differ per model too:
| Model | Resolution you can request | Duration range |
|---|---|---|
| Seedance 2.5 | 480p, 720p, 1080p, 4k (default 720p) | 4 to 30 seconds |
| Wan 3.0 | 480p, 720p, 1080p (default 720p) | 2 to 30 seconds |
| Kling 3.0 Pro | None, priced at 1080p | 3 to 15 seconds |
| Kling 3.0 Standard | None, priced at 720p | 3 to 15 seconds |
How does a quote lock the video price?
Before you create a generation, call POST /v1/generations/quote with the exact input. The response holds the amount, the price_version, an expires_at timestamp 12 minutes ahead and a facts object that shows what was priced. Create with that quote and you pay the quoted amount even if prices change in between. Each quote works for one generation only.
{
"id": "qt_...",
"amount": "<micro-USD as a string>",
"price_version": 3,
"expires_at": "<12 minutes after the quote>",
"facts": { "model": "seedance-2.5", "mode": "t2v", "resolution": "720p", "variant": "default", "unit": "second", "quantity": 5 }
}When is your wallet charged for a video?
Creating a generation holds the quoted amount from your balance, and the generation's billing field shows held. The final status decides what happens to that money:

| Status | billing | What happens to the money |
|---|---|---|
| queued or generating | held | The quoted amount is reserved |
| succeeded | charged | The held amount is charged on delivery |
| failed | released | The hold is returned in full |
| canceled (only while queued) | released | The hold is returned in full |
| checking | held | Stays held until the result is confirmed |
How do you fund the wallet and cap spending?
Top up from the console; a single top-up is between $15 and $1,000. Each API key can carry its own spend limit, so a leaked or runaway key cannot drain the wallet. When a hold would exceed the balance, create returns 402 insufficient_balance; a key over its limit returns 402 key_spend_limit_reached, and an account over its daily spend limit returns 402 daily_spend_limit_reached until it resets at 00:00 UTC.
For live unit prices, open the Pricing page or call GET /v1/pricing, which needs no key. The estimate your generation budget post shows how to turn those prices into a budget for a whole batch.
Frequently asked questions
Does a longer prompt cost more with Seedance 2.5?
How is Kling 3.0 Pro priced if it has no resolution parameter?
What does billing: released mean on a generation?
Why does create return 402 daily_spend_limit_reached?
Models in this post
VideoSeedance 2.5
ByteDance's flagship for long takes: up to 30 seconds, 480p to 4K, and up to 16 reference images to keep every shot on-model.
VideoWan 3.0
-21%The widest duration range on MakerNice — 2 to 30 seconds — at 480p, 720p or 1080p, with every input mode and up to 10 references.
VideoKling 3.0 Pro
-4%Video that ships with sound: Kuaishou's Kling 3.0 Pro adds audio to every 3–15 second clip, from text, a still or first and last frames. 1080p tier.