OP Inference

Credits and billing

How prepaid credit works and what is billed.

OP Inference is prepaid. You buy credit on the dashboard's Billing page, and each request is charged against it. There is no invoice at the end of the month and no card on a running tab.

Buying credit

Smallest top-up$5
Largest top-up$1,000
Largest first top-up$100
Payment processing fee2.9% + $0.30 per top-up, shown as its own line

Before you pay, the form shows the total, for example $50.00 credits + $1.75 payment processing fee = $51.75, plus VAT where it applies. The fee covers card processing and is not credit. The checkout page expires after 30 minutes if you do not complete it.

Auto top-up

Auto top-up buys credit for you when your balance falls below a threshold.

  • Set a threshold and an amount on the Billing page. They default to $10 and $50. The threshold must be zero or more, and less than the amount.
  • It charges the card saved at your last top-up, with the same processing fee. Top up once by hand before you turn it on.
  • The balance is checked about once a minute, so a burst of traffic can spend past the threshold before the top-up lands.
  • After 3 failed charges in a row, auto top-up switches itself off and the Billing page says so. Check the card, then save the settings again to turn it back on.

When credit runs out

When your account's balance reaches zero, every key in the account is refused with 402 insufficient_credit:

{
  "error": {
    "code": "insufficient_credit",
    "message": "this account's prepaid credit is used up; top up in the console",
    "kind": "terminal",
    "scope": "request",
    "type": "invalid_request_error"
  }
}

The refusal lifts shortly after you top up. Retrying before then gets the same 402.

A request already running when the balance reaches zero finishes and is billed, so the balance can end slightly below zero. The difference comes out of your next top-up.

402 and 429 are different

StatusCodeMeaningWhat to do
402insufficient_creditThe account has no credit leftTop up
402budget_exceededThe key reached its monthly spend capRaise the cap, or wait for the next month. See Key restrictions and spend caps
429rate_limitedToo many requests right nowBack off and retry. See Rate limits

Do not retry a 402 in a loop: it does not clear on its own.

What is billed

Text

You pay for the tokens of a generation that produced content.

OutcomeBilled
CompletedYes
Cut off after content was sent (the stream ends with truncated)Yes, for what was sent
You disconnected after content was sentYes, for what was sent
Failed before any content, including an empty replyNo
Refused before it ran: a 4xx, a policy, a spend cap or no creditNo
Timed outOnly if content was sent before the timeout

A request that fails over to a second endpoint is billed once, for the endpoint that answered.

Media

A media job is billed only when it succeeds and has output. A job that fails, is cancelled, or expires costs nothing.

Prices

Each model's price is on /models and in GET /v1/models under pricing. Prices are in US dollars.

  • Up to marks the most a request can be billed at that unit.
  • Typically marks a price that follows the cost of the endpoint that serves the request, so the amount you pay can differ between requests. The figure shown is what a request usually costs.

Your usage and the cost of each request are on the dashboard's Usage page.