Endpoints
Quote
The price of a run before you start it. Send the body you would send to POST /images or POST /videos, with a kind field, and get back what it would charge.
Why quote first
- It is the same function the generate call charges with, so the number is the charge, not an estimate of it. (
estimated: trueonly flags that the provider's own rate behind it is provisional.) - It is free and never starts anything, so an agent can quote as often as it likes.
- Compare
creditswith the balance from GET /credits and you know before spending whether a run fits, instead of finding out from a402.
Video prices move with duration, resolution, audio and whether frames or references are sent; image prices with count and references. See Pricing for worked examples.
Price a run
post/api/v1/quote
Bearer keyquote
What POST /images or POST /videos would charge for this body, without starting anything. Send the same body with a kind field. Any live key.
curl -X POST https://kinoseed.app/api/v1/quote \
-H "Authorization: Bearer ks_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "kind": "video", "prompt": "a lighthouse at dusk", "model": "kling-3", "duration": 10, "audio": true }'
Request body
application/json
No fields.
Responses
| Status | Body | Meaning |
|---|---|---|
| 200 | QuoteResponse | The price in credits and USD. |
| 400 | ErrorEnvelope | Body failed validation, or the model is not in the catalog (unknown_model). |
| 401 | ErrorEnvelope | Missing, invalid or revoked key. |
| 429 | ErrorEnvelope | Over a rate budget; see Retry-After. Also too_many_running when the account already has 5 runs in progress. |
Response fields
The 200 body.
| Field | Type | Description |
|---|---|---|
| credits | integer | |
| usd | number | |
| endpoint | string | The provider endpoint the run would land on. |
| estimated | boolean |
Credit balance
get/api/v1/credits
Bearer keycredits:readgetCredits
The account's credit balance and subscription. Needs the credits:read scope.
curl https://kinoseed.app/api/v1/credits \
-H "Authorization: Bearer ks_live_YOUR_KEY"
Responses
| Status | Body | Meaning |
|---|---|---|
| 200 | CreditsResponse | Balance and plan. |
| 401 | ErrorEnvelope | Missing, invalid or revoked key. |
| 403 | ErrorEnvelope | The key lacks credits:read. |
| 429 | ErrorEnvelope | Over the key's request budget; see Retry-After. |
Response fields
The 200 body.
| Field | Type | Description |
|---|---|---|
| balance | integer | Credits the account holds right now. |
| currency | "credits" | |
| creditUsd | number | What one credit costs at the headline price, in USD. |
| plan | object | null | The subscription, or null on an account without a plan. |