Kinoseed

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: true only 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 credits with the balance from GET /credits and you know before spending whether a run fits, instead of finding out from a 402.

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

StatusBodyMeaning
200QuoteResponseThe price in credits and USD.
400ErrorEnvelopeBody failed validation, or the model is not in the catalog (unknown_model).
401ErrorEnvelopeMissing, invalid or revoked key.
429ErrorEnvelopeOver a rate budget; see Retry-After. Also too_many_running when the account already has 5 runs in progress.

Response fields

The 200 body.

FieldTypeDescription
creditsinteger
usdnumber
endpointstringThe provider endpoint the run would land on.
estimatedboolean

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

StatusBodyMeaning
200CreditsResponseBalance and plan.
401ErrorEnvelopeMissing, invalid or revoked key.
403ErrorEnvelopeThe key lacks credits:read.
429ErrorEnvelopeOver the key's request budget; see Retry-After.

Response fields

The 200 body.

FieldTypeDescription
balanceintegerCredits the account holds right now.
currency"credits"
creditUsdnumberWhat one credit costs at the headline price, in USD.
planobject | nullThe subscription, or null on an account without a plan.