# Payment & credits
Source: https://docs.boson.ai/account-billing/payment-and-credits
How Boson AI billing works: prepaid credits, payment methods, auto-reload, and invoices.
Boson AI billing is **prepaid**: you add credits to your balance, and API usage draws the balance down at the standard [pricing](/pricing) rates. When the balance reaches zero, requests are refused until you add more — see [Common error types](/api-reference/errors).
New accounts start with [free trial credit](/free-trial-credit); everything below applies once you're ready to go beyond it.
## Add credits
Buy credits from [billing overview](https://www.boson.ai/workspace/billing/overview). Each purchase is between \$5 and \$100 — pick a preset or enter a custom amount. Taxes are estimated at checkout and may differ from the final amount.
## Payment methods
Add and manage cards on the [billing payment page](https://www.boson.ai/workspace/billing/payment). Card details are handled by Stripe; Boson AI does not store your card number.
## Auto-reload
Turn on auto-reload from [billing overview](https://www.boson.ai/workspace/billing/overview) so service never stops because a balance quietly ran out mid-project. You configure two values:
* **When balance below** — the threshold that triggers a reload. The minimum is \$5.
* **Bring balance up to** — the balance target a reload restores. The maximum is \$100, and the target must sit \$30 or more above the threshold.
Whenever your balance falls below the threshold, it is automatically recharged up to the target using your saved payment method, and you're notified by email whether the reload succeeded or failed. The workspace also warns you when your balance runs low either way.
## Invoices and transactions
The [billing payment page](https://www.boson.ai/workspace/billing/payment) also holds your **transactions** and **invoices** history.
## When payment lapses
If your balance is empty (or a [spend cap](/account-billing/usage-and-limits) is hit), API requests fail with a `429` `insufficient_quota` error, and Realtime sessions receive an `error` event and close with code `4429`. Add credits to resume service.
# Usage & limits
Source: https://docs.boson.ai/account-billing/usage-and-limits
Track spend, set a monthly cap, and understand what happens when a limit is reached.
## Track your usage
The [usage page](https://www.boson.ai/workspace/billing/usage) shows your spend over time and a summary by model. Your current balance and recent activity are on [billing overview](https://www.boson.ai/workspace/billing/overview).
## Spend limits
From the usage page you can set:
* a **monthly cap** — a hard ceiling on monthly spend, and
* a **warning threshold** — you're alerted when spend crosses it, before the cap is reached.
While a monthly cap is reached, requests are refused even if your balance is positive. The cap resets at the beginning of each month (UTC); to resume sooner, raise or remove the cap.
## What a refusal looks like
Whether the cause is an empty balance or a reached cap, the API responds the same way:
* REST requests fail with **`429`** and an error body with `"type": "insufficient_quota"`.
* Realtime sessions receive an `error` event (`type: "insufficient_quota"`) with the upstream message, then close with WebSocket code `4429`.
See [Common error types](/api-reference/errors) for the full error reference, and [Payment & credits](/account-billing/payment-and-credits) for how to add credits.
## Concurrency
Realtime connections are also subject to a concurrency limit: exceeding it closes the WebSocket with code `1013` (retry later). See the [Realtime API overview](/api-reference/realtime/overview) for the close-code table.
# Create a speech
Source: https://docs.boson.ai/api-reference/audio/create-a-speech
/openapi.json post /v1/audio/speech
Generate speech audio from text. Returns an audio file, or a stream of raw PCM chunks when `stream` is `true`. The body may be JSON or `multipart/form-data` — the latter lets you upload `ref_audio` as a raw file instead of base64-encoding it.
# Create a voice
Source: https://docs.boson.ai/api-reference/audio/create-a-voice
/openapi.json post /v1/audio/voices
Register a reusable reference voice for cloning. Identical audio re-registered under the same API key returns the existing voice. Pass the returned `voice` ID to the `voice` field of `POST /v1/audio/speech` instead of sending `ref_audio` on every request.
# Get a voice
Source: https://docs.boson.ai/api-reference/audio/get-a-voice
/openapi.json get /v1/audio/voices/{voice}
Fetch a single reference voice by ID.
# List voices
Source: https://docs.boson.ai/api-reference/audio/list-voices
/openapi.json get /v1/audio/voices
List the reference voices registered under your API key.
# Common error types
Source: https://docs.boson.ai/api-reference/errors
HTTP statuses, the error body shape, and every error code with its fix.
## Error format
REST API errors return a JSON body with a single `error` object:
```json theme={null}
{
"error": {
"message": "Your API key is not linked to an active billing account. Please go to Boson.ai to set up billing and purchase credits.",
"type": "insufficient_quota",
"param": null,
"code": "no_billing_account"
}
}
```