Billing and credits
How the prepaid GBP credit wallet works, what each endpoint costs, when requests are refused for credit, and how to cap spend.
On this page
The credit wallet
Each organization has a prepaid credit wallet in GBP. API, CLI and console usage all draw from it. Top up, view invoices and manage payment methods in the console under Settings, Billing & Credits.
Before an LLM request reaches a model, BreachLine checks that the organization has spendable credit. If it has none, the request gets 402 and nothing runs. After the request, usage is metered per token and charged to the wallet.
Prices
GET /api/v1/llm/v1/models returns the live price for each model, in GBP per million input and output tokens. Read prices from that endpoint rather than hard-coding them. For plans, see Pricing on breachline.io.
| Endpoint | How it is metered |
|---|---|
| Chat completions, Responses, Messages | Input and output tokens at the Nebula rate. |
| Embeddings | Input only, estimated at about 4 characters per token, at the Nebula input rate. |
| Rerank | Input only, at the Nebula input rate. |
| Batches | The full Nebula price, charged once when final results are fetched. There is no batch discount. |
| Token counting (Messages) | Free. Rate limited like chat. |
Output-token ceiling
An explicit max_tokens (or max_completion_tokens) is clamped to the platform maximum, 32,000 tokens by default, so a single request cannot run up an unbounded bill. Omit it to use the model’s own default for the task.
Spend cap
You can set your own ceiling on retail spend per day or per month. Once spending in the window reaches the cap, LLM requests get 402 until the window resets or you raise the cap.
curl -X PUT "https://api.breachline.io/api/v1/usage/me/budget/cap?max_gbp=50&window=day" \
-H "Authorization: Bearer $BREACHLINE_API_KEY"
Reading the cap needs the usage:read member scope; setting or removing it needs settings:write. See Usage and spend cap.
Watching usage
GET /api/v1/usage/mereturns your token, request and GBP totals for a window, by day.GET /api/v1/usage/me/logslists recent requests with token counts, status and latency. It holds metadata only; prompts and responses are never stored in it.- The console shows the same data under Settings, Dashboard.
When a request is refused for credit
A 402 is not retried by SDKs and should not be retried by your code. Top up the wallet, or raise or remove the spend cap, then send the request again.