API Docs

Billing & rate limits

When credits are charged, and when they come back.

How billing works

API calls and browser sessions share one ledger: the same account, the same price list, one transaction history under Wallet, with the source distinguishable.

  • Images: selected tier price × count. Models without tiers and tiers priced at 0 cannot be called.
  • Video: per_sec models use tier price × duration; per_unit models charge the tier price once. See billing and specs in /v1/models.
  • Chat: per token, with separate input and output rates, rounded up, minimum 1 credit per call.
  • Images and video are charged at submit time rather than on completion, so concurrent submissions cannot overdraw. Text can only be counted once the tokens exist, so it is charged afterwards (a balance check gates the call up front).

What gets refunded

  • Rejected by the renderer at submit time — refunded immediately.
  • Failed during rendering — refunded when the task turns failed.
  • Abandoned with nobody polling — the background sweeper finalises and refunds it.
  • You dislike the result — not refunded. Same as in the studio; the render itself cost real money.

Rate limits

Each key allows 120 calls per minute; beyond that you get 429 rate_limit_exceeded. The threshold exists to stop runaway scripts, not real traffic — just poll at the suggested intervals rather than in a tight loop.

Account-level concurrency and daily generation quotas also apply, set by your plan, and surface as 429 concurrency_limit_reached.

Back off on 429 (exponentially is fine). Retrying instantly just hits the same wall.