The price list
Priced per call. The unpaid 402 returns the exact price for the body you send.
| Model | Worked price | Good at | Rate |
|---|---|---|---|
Seedance 1.5 proseedance-1.5-pro |
$0.1565s · 720p | The previous generation, and the cheapest way to get a competent shot. The only model here that can carry its own audio. | $0.00288 per 1k tokens with audio, $0.00144 without |
Hailuo 02 standardhailuo-02-standard |
$0.3246s · 768p | The cheap seat, and it holds a subject well. 768p only — do not ask it for a 4k plate. | $0.054 per second at 768p |
Kling 2.5 turbo prokling-2.5-turbo-pro |
$0.425s · 1080p | Faces and hands that survive a second look. Flat 5s block price, then per extra second. | $0.42 for 5 seconds, $0.84 for 10 |
Seedance 2.0 miniseedance-2.0-mini |
$0.9295s · 720p | Draft passes and volume. Priced per second flat, so a ten-second look costs exactly twice a five-second one. | $0.08652 per second at 480p, $0.18564 at 720p |
Seedance 2.0seedance-2.0 |
$1.8155s · 720p | The flagship. Physical camera moves, coherent motion, the one to reach for when the shot has to hold up. | $0.0168 per 1k video tokens ((h×w×24×s)/1024) |
Seedance 2.5seedance-2.5 |
$2.7745s · 720p | The expensive one, and it looks it. Prompt adherence on complicated staging, up to a native 30-second single shot. | $0.02568 per 1k video tokens |
ElevenLabs TTSelevenlabs-tts |
$0.12500 characters | Narration for the picture. Send the text, get quoted from its exact character count, pay, get audio back. | $0.00024 per character |
First prints
Every frame below came out of this endpoint, at the price in its caption.
How an agent buys
Four requests, no signup step anywhere in them.
-
01
Ask, unpaid. The answer is the quote.
curl -sS -X POST https://kino402.com/v1/generate \ -H 'content-type: application/json' \ -d '{"model":"seedance-2.0","prompt":"a slow dolly through fog, anamorphic","duration_s":5,"resolution":"720p"}'HTTP/1.1 402 Payment Required payment-required: <base64 x402 v2 envelope> { "x402Version": 1, "error": "X-PAYMENT header is required", "quote": { "usd": "$1.815", "atomic_usdc": "1815000", "asset": "USDC on Base" }, "accepts": [ { "scheme": "exact", "network": "base", "maxAmountRequired": "1815000", ... } ] }Free to read. The price is for the body you just sent.
-
02
Pay it. Any x402 client will do.
# <payment> below is the base64 x402 payload your client builds from the # envelope above — x402-fetch (npm) and the CDP SDK each do it in one call; # it is a signed EIP-3009 transfer authorization, not an API key. curl -sS -X POST https://kino402.com/v1/generate \ -H 'content-type: application/json' \ -H 'x-payment: <payment>' \ -d '{"model":"seedance-2.0","prompt":"a slow dolly through fog, anamorphic","duration_s":5,"resolution":"720p"}'{ "job_id": "k3n8s1v0w2x9", "status": "queued", "status_url": "https://kino402.com/v1/jobs/k3n8s1v0w2x9", "price": { "usd": "$1.815", "atomic_usdc": "1815000" } }Verified before the job is placed, settled after. Same number both times.
-
03
Poll. Free, unauthenticated, yours because you know the id.
curl -sS https://kino402.com/v1/jobs/k3n8s1v0w2x9{ "job_id": "k3n8s1v0w2x9", "status": "running", "retries": 0 }Queued, running, completed, failed. Nothing else.
-
04
Collect the file.
curl -sS https://kino402.com/v1/jobs/k3n8s1v0w2x9 | jq -r .video_url | xargs curl -O{ "status": "completed", "video_url": "https://cdn.example.net/9f2c1d/output.mp4?expires=1774051200" }The result URL is a plain https link; no credentials.
The terms, plainly
The 402 is the quote
An unpaid POST is answered with the exact price for that body, in x402 v1 and v2. Reading it is free.
You pay at submission
Settlement happens when the job is accepted, not when the file lands. A job that fails is resubmitted once, automatically.
Failures are reported, not hidden
A job that fails after its automatic retry says so in its status, with the reason. Write to support@kino402.com with the job id.