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 fee | 2.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
| Status | Code | Meaning | What to do |
|---|---|---|---|
402 | insufficient_credit | The account has no credit left | Top up |
402 | budget_exceeded | The key reached its monthly spend cap | Raise the cap, or wait for the next month. See Key restrictions and spend caps |
429 | rate_limited | Too many requests right now | Back 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.
| Outcome | Billed |
|---|---|
| Completed | Yes |
Cut off after content was sent (the stream ends with truncated) | Yes, for what was sent |
| You disconnected after content was sent | Yes, for what was sent |
| Failed before any content, including an empty reply | No |
Refused before it ran: a 4xx, a policy, a spend cap or no credit | No |
| Timed out | Only 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.