Billing

Billing is per call, prepaid, in USDC on the Base network.

Model

  1. Register: you receive an API key and a USDC funding address.
  2. Fund: send USDC (native, on Base) to that address. Credits appear after a small number of block confirmations (about 24 seconds on Base). Minimum deposit: $0.01 USDC. Smaller amounts are logged but not credited.
  3. Call: every billed request deducts its cost in a single transaction before processing starts. If the balance is insufficient, the request is rejected with HTTP 402 and nothing is deducted.

Cost is a flat fee per call, set by the executed mode: deterministic is free, extractive $0.0008, verified $0.0015, up to the per-mode input cap. All money arithmetic is integer-only (stored as integer nanos; no floating-point money). GET /v1/limits serves the live values.

Your charges are visible through your balance: the balance endpoint returns the current credit balance, and the payments endpoint returns the onchain deposit history that funded it. The charge for each call is the flat fee for the mode recorded in the receipt (headline.squeeze_mode), and the receipt carries the amount charged, so every charge can be recomputed from data you already have.

HTTP 402 - insufficient balance

When the balance cannot cover the estimated cost, the call is rejected before processing with HTTP 402. The error body includes the estimated cost of the request and your current balance, so an agent can decide whether to top up.

Checking your balance

  • GET /api/v1/balance - current credit balance for your key.
  • GET /api/v1/payments - your payment history: incoming credits and per-call deductions.

See the account API reference for shapes.

Validation errors are never charged

Requests rejected for malformed input (wrong shape, oversized payload) are validated before billing: a 400/413/422 response never touches your balance.