Get started
What happens to your tokens
- 1
Quote
When you create a job, the API returns quoted_token_cost and your remaining balance. If the balance is too low you get insufficient_balance and nothing is reserved.
- 2
Reserve
The quoted tokens are held while the job runs, so two jobs can never spend the same tokens.
- 3
Charge on completion
When the clip completes, finalTokenCost is set and the tokens are spent. It is never more than the quote.
- 4
Release on failure
If the job fails, is declined or runs out of time, finalTokenCost is 0 and the reserved tokens return to your balance.
Job status and what you pay
| Status | Tokens |
|---|---|
| created, queued, processing | Tokens reserved, nothing spent yet |
| completed | Charged, never more than the quote |
| failed (including a declined prompt or reference) | Not charged; reserved tokens released |
| canceled or blocked | Not charged |
| Rejected request (4xx, no job created) | Nothing reserved, nothing charged |
Seedance API price per second on KreatorFlow
Seedance 2.0 and 2.5 at 720p and above on the KreatorFlow API: price per second, tokens per 5-second clip, and clips per prepaid top-up.
| Model · resolution | Tokens | 5 s clip | List rate per second | $20 top-up · 400 tokens | $50 top-up · 1,000 tokens | $100 top-up · 2,000 tokens | $250 top-up · 5,000 tokens |
|---|---|---|---|---|---|---|---|
| Seedance 2.0 · 720p | 11/5s | $0.55 | $0.110/s | 36 | 90 | 181 | 454 |
| Seedance 2.0 · 1080p | 24/5s | $1.20 | $0.240/s | 16 | 41 | 83 | 208 |
| Seedance 2.0 · 4K | 58/5s | $2.90 | $0.580/s | 6 | 17 | 34 | 86 |
| Seedance 2.5 · 720p | 21/5s | $1.05 | $0.207/s | 19 | 47 | 95 | 238 |
| Seedance 2.5 · 1080p | 45/5s | $2.25 | $0.444/s | 8 | 22 | 44 | 111 |
| Seedance 2.5 · 4K | 100/5s | $5.00 | $0.999/s | 4 | 10 | 20 | 50 |
Seedance 2.0 and 2.5, 720p and above. List rate per second is the rate card price; a clip is billed at that rate and its total rounded up to whole tokens ($0.05), which is why a 5-second clip can cost a cent or two more than rate x 5. Top-up columns: 5-second clips each top-up covers, without a video input. A 10-second clip uses about twice the tokens.
What exactly am I charged for?
Seconds of finished video at the resolution you asked for, from the rate card. One token is $0.05. A request that takes video in (a reference clip or the source of an edit) is billed on the input seconds plus the output seconds at 60% of the normal per-second rate, never less than the same job without video, and the quote shows it before the job runs.
You are not charged for time spent in the queue, for polling, for downloading the output or for requests that never become a job.
- Completed clips: charged at the quoted price or less
- Failed, declined, canceled or timed-out jobs: not charged
- Requests rejected before a job is created (bad parameters, missing scope): not charged
- A resent request with the same Idempotency-Key: returns the original job, no second charge
A worked example
A 5 second Seedance 2.0 clip at 720p is quoted at 11 tokens ($0.55). When you send it, 11 tokens are held. If the clip completes, they are spent. If it fails, all 11 come back. The smallest top-up, $20, covers 36 such clips.
Create response (shape)
{ "data": { "job": { "id": "JOB_ID", "status": "queued" }, "quoted_token_cost": 11, "balance_tokens": BALANCE_AFTER_THE_HOLD, "idempotent_replay": false } }
Is a declined prompt or reference charged?
No. A prompt or reference that is declined (for example a photo of a real person used as a reference) ends the job without a charge. Change the prompt or reference and create a new job with a new Idempotency-Key.
What about a reference that is still in review?
A reference KreatorFlow has not seen before is reviewed on first use. If a job needs it before the review is done, the job ends with reference_asset_pending, nothing is charged, and errorData.retry_after says how many seconds to wait. Resubmit with the same upload_id and a new Idempotency-Key. Reusing the same upload_id later skips the review.
How do I avoid paying twice for one clip?
Send an Idempotency-Key header with every create. If your request times out and you send it again with the same key, you get the original job back (idempotent_replay is true) instead of a second one. Use a new key only when you really want a new clip, and store the key next to your own record of the clip.
Python: a create call that is safe to resend
import os, uuid, requests API = "https://kreatorflow.ai/v1" HEADERS = {"Authorization": f"Bearer {os.environ['KREATORFLOW_API_KEY']}"} def create_clip(body, key=None): key = key or str(uuid.uuid4()) # store it with your own record of the clip for attempt in range(3): try: r = requests.post(f"{API}/videos", json=body, timeout=90, headers={**HEADERS, "Idempotency-Key": key}) data = r.json() if r.status_code == 402: # insufficient_balance: nothing reserved raise RuntimeError("Top up first: " + str(data)) r.raise_for_status() return data["data"] # job, quoted_token_cost, balance_tokens except requests.Timeout: continue # same key: you get the original job, never a second charge raise RuntimeError("Could not reach the API")
Do volume discounts change the quote?
Yes. When your paid top-ups over the last 30 days reach a volume tier, the Seedance video quote already includes the discount (up to 10% off at Enterprise). You never claim it afterwards: the price in the quote is the price you pay.
How do I keep an eye on spend?
Every create response carries balance_tokens, and the console's Billing and Logs tabs show top-ups and every job with its cost. Top-ups are prepaid, so you can never be billed more than you added.
- Log quoted_token_cost and the job id with every create
- Use webhooks to record the final status (completed, failed, canceled or blocked) as soon as a job ends
- Alert yourself when balance_tokens drops below a day of normal traffic
- Reconcile against the Logs tab, which lists every job with its cost
Volume pricing for the Seedance API
The more you top up, the less Seedance video costs. Your tier comes from the token top-ups you paid for in the last 30 days. It lowers the per-second price of Seedance video and raises your video request limit, automatically, with no contract and no sales call. If your top-ups drop, the tier moves back down.
Every job's quote shows your price before it runs; a few low-priced settings get a smaller discount. Smaller top-ups add up toward a tier too. Price comparisons on this site use list prices unless a price is marked as at volume. Need more volume? Custom pricing for committed monthly spend: email harry@kreatorflow.ai.
- Standard: Any · List price · 20 video requests / minute
- Scale: $1,000+ · up to 5% off · 60 video requests / minute
- Growth: $2,500+ · up to 7.5% off · 120 video requests / minute
- Enterprise: $5,000+ · up to 10% off · 300 video requests / minute
Frequently asked questions
Do failed Seedance jobs cost money on KreatorFlow?
No. Failed, declined, canceled and timed-out jobs are not charged; the reserved tokens go back to your balance.
When are tokens taken?
They are reserved when the job is accepted and spent only when the clip completes.
Can I be charged more than the quote?
No. The job is charged at the quoted price or less.
Can I go into debt?
No. The API is prepaid; if the balance is too low the request returns insufficient_balance.
How do I get a refund for a failed Seedance generation?
You do not need to ask. A failed job's reserved tokens go back to your balance on their own, and the job shows a final cost of 0.
Am I charged if my prompt is declined?
No. A declined prompt or reference ends the job without a charge. Change it and send a new job with a new Idempotency-Key.
Does a timeout cost money?
No. A job that runs out of time is not charged. If your own HTTP call timed out, resend it with the same Idempotency-Key to get the original job back.
Is the Seedance API priced per clip or per second?
Per second of finished video, by model and resolution. Each job is quoted as one total before it runs.
Do I pay for polling or downloads?
No. Only finished video is charged. Polling and downloads count against rate limits, not your balance.
Is there volume pricing for the Seedance API?
Yes. Once your paid top-ups in the last 30 days reach $1,000, Seedance video costs up to 5% less per second, rising to up to 10% off at $5,000 (Enterprise), and your video request limit goes up with each tier. It applies automatically, with no contract, and each job's quote shows your price before it runs. For more volume than that, email harry@kreatorflow.ai.



