Docs · Credits
Credits and billing
One credit balance pays for every engine. Each engine has a credit price per unit, listed on its API page and in GET /v1/engines.
How a request is charged
- When a request starts we place a hold for its maximum cost. If your balance or spend cap can't cover it, you get HTTP 402 and nothing happens.
- On success we capture the actual cost and return the rest of the hold.
- On any failure (invalid input, blocks, timeouts, target errors, our errors) we release the full hold. Failed requests are never charged.
The response's credits.charged and credits.balance show exactly what happened.
Cached results at half price
Pass max_age (seconds) to accept a recent answer from our cache. If one exists, you pay 50% and cache.age_seconds tells you how old it is. With the default max_age=0 every call is fresh.
Monthly spend cap
Set a cap in Settings. Once the credits captured this calendar month plus open holds reach the cap, requests return 402 spend_cap_reached until you raise it or the month ends.
Expiry
Pack credits never expire. Subscription credits roll over for one month, up to twice the plan's monthly credits. See pricing.