Credits & billing

API usage draws from the same credit balance as your Whalli account. There is no separate API bill — top up or upgrade in one place.

How charging works#

Before each request the API checks you have enough credits and reserves an estimate. After the model responds, the actual cost is settled — for chat this is based on the real input/output token counts, for fixed-cost services (images, speech, sfx, music) on a per-request price, and for video on duration and resolution.

Async jobs (music, sfx, video) are charged on successful completion. A job that fails does not consume credits.

Running out#

When your balance is too low for a request the API returns 402 with code insufficient_credits:

json
{
  "error": {
    "message": "Insufficient credits. Top up or upgrade your plan to continue using the API.",
    "type": "insufficient_quota",
    "code": "insufficient_credits"
  }
}

Topping up#

Add credits or change your plan from your account, then manage keys and watch per-key usage in the Console.

Tracking usage#

Every API request is logged and attributed to the key that made it, so you can see exactly how each key is spending. Per-request token counts are returned in the usage object on chat responses.