bruxel.ai

Credits & billing

The API uses the same credits as the app: one pool per organization, with no surcharge for integrating.

Check your balance

With the credits:read scope, check your organization's current balance at any time:

GET /v1/credits
Authorization: Bearer bxk_…

{ "balance": 1234 }

What charges and what doesn't

Only generation costs credits. Everything else — reading, pushing catalog, exporting — is free.

OperationCharge
POST /v1/generationsCharges on success, per language generated. Failed languages don't charge.
POST /v1/batchesReserves credits on submit; when the result is ingested it charges successes and refunds the rest.
POST /v1/batches/{id}/cancelRefunds the batch's full reservation.
GET · PATCH · DELETE …Reads, upserts, edits and deletes don't charge.
GET /v1/export/catalog.csvExport doesn't charge: it was already paid when generating.
If your balance isn't enough, generation responds 402 BEFORE generating — you're never left halfway or with unexpected partial charges.

Same prices as the app

Generating via API costs exactly the same as from the app (async batches are cheaper than sync generation, just like in the app). The balance is shared: whatever you spend via API shows up in Credits inside the app, and vice versa.

The daily AI spend cap is also shared with the app. Once reached, generation responds 429 without a Retry-After header — retrying won't fix it; it resets the next day (UTC).

Buying credits

Credits are purchased from the app, in the Credits section (the API doesn't sell credits). Buying requires the operator role or above; API keys only consume them.

Credits & billing — Bruxel