PricingEstimate Your AI Video and Image Budget with GET /v1/pricing
MakerNice Team · ·
To estimate what a batch of AI generations will cost on MakerNice, read the unit prices from the public GET /v1/pricing endpoint, multiply them by the seconds of video or the number of images you plan, and confirm a sample with a quote. This works the same for ByteDance's Seedance 2.5, Alibaba's Wan 3.0 and Alibaba's Qwen3 Image, with no price table copied by hand.
What does GET /v1/pricing return?
GET /v1/pricing needs no API key and lists the unit prices of the current price version. The response may be cached for up to 60 seconds, which is fine for planning. Each entry in data describes one combination:
| Field | What it holds |
|---|---|
| price_version | The price version the whole list belongs to |
| model | The model id, such as seedance-2.5 or wan-3.0 |
| mode | t2v, i2v, flf, r2v, t2i or i2i |
| resolution | The priced resolution, such as 720p or 1k |
| unit | second for video, request for images |
| unit_price | Price per unit in micro-USD, as a string |
| unit_price_usd | The same price in US dollars, as a string |
# Find the price row for the exact model, mode and resolution you plan to use
curl -s https://api.makernice.com/v1/pricing | jq '.data[] | select(.model == "seedance-2.5" and .mode == "t2v" and .resolution == "720p")'How do you turn unit prices into a budget?
Multiply the unit price by the quantity each generation consumes, then by how many generations you plan. Keep the arithmetic in integers or decimals, because amounts are micro-USD and 1,000,000 of them make one US dollar.
| Type | unit | Quantity per generation | Budget formula |
|---|---|---|---|
| Video | second | The duration in seconds | unit_price × seconds × clips |
| Image | request | 1 (one image per generation) | unit_price × images |
from decimal import Decimal
# row is the matching entry from GET /pricing; unit_price is micro-USD per second
unit_price = Decimal(row["unit_price"])
seconds_per_clip = 8
clip_count = 20
total_micro = unit_price * seconds_per_clip * clip_count
total_usd = total_micro / Decimal(1_000_000)
print(total_usd)
As a worked example in words: 20 clips of 8 seconds each is 160 seconds of video. Find the row for your model, mode and resolution, multiply its unit price by 160, and divide by 1,000,000 to get US dollars. If the batch mixes models or resolutions, repeat this per group and add the results. Models without a resolution field, such as Kling 3.0 Pro, have a single row per mode, so there is nothing to choose.
Why confirm the estimate with a quote?
The list is for planning; the quote is the binding number. POST /v1/generations/quote with your real input returns the exact amount for that request, valid for 12 minutes and for one generation. Request one quote for each distinct combination of model, mode, resolution and duration in your workload and compare it with your estimate. If they differ, compare the price_version in the quote with the one in the list to see whether prices changed.
How much balance does the wallet need for a batch?
- Money is held when a generation is created, so the wallet must cover every generation in flight, not only the final total.
- Failed generations, and generations canceled while queued, release their hold in full, so retrying failed jobs does not double the bill.
- A single top-up can be anywhere from $15 to $1,000. Plan top-ups around your largest batch.
- Give each key a spend limit that matches its job; over it, create returns 402 key_spend_limit_reached, and an account over its daily limit gets 402 daily_spend_limit_reached.
Prices change over time, which is why this post quotes none. Use the live list on the Pricing page or GET /v1/pricing, confirm with a quote, and read how video pricing works for the hold, charge and release rules.
Frequently asked questions
Do I need an API key to call GET /v1/pricing?
How do I estimate the cost of a 10 second Wan 3.0 clip?
Should I use unit_price or unit_price_usd for calculations?
What if my quote does not match the estimate from GET /v1/pricing?
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.
ImageQwen3 Image
-21%Everyday images and quick edits: Alibaba's Qwen3 Image at 1K or 2K, eight aspect ratios, up to 3 references.