Credits & Metering
betool charges on a usage basis in credits: 1 credit = $0.0001 (one ten-thousandth of a dollar). You top up your balance in advance; each execution debits the corresponding cost.
Why credits
The credit system enables:
- Fine granularity — an API call costing $0.000003 is measurable without rounding.
- Price stability — your per-unit prices in credits do not change when a provider revises its rates.
- Per-organisation isolation — each org has its own balance and its own alerts.
What is billed?
See the details in Pricing. Summary:
- LLM — per input / output token. Included with BYOK (you pay your provider directly; betool takes nothing on tokens).
- Voice — ASR per second, TTS per character.
- Phone minutes — based on the destination number.
- HTTP / DB / transform operators — not metered.
Topping up your balance
Two modes:
- Manual — from Administration → Billing → Balance, add a one-time amount.
- Auto top-up — automatic reload when the balance drops below a threshold. Recommended to avoid service interruptions.
On the Enterprise plan, billing can switch to monthly post-payment with a minimum commitment.
Tracking consumption
Administration → Billing → Consumption:
- Current balance
- Consumption over 7 days / 30 days / custom range
- Top 10 most expensive pipelines / agents
- Breakdown by resource type
The table is exportable as CSV for integration with your internal reporting.
Alerts
Configure up to 5 alert thresholds per organisation:
- Low balance — when the balance drops below X credits, notify Y (email, Mattermost, webhook).
- Usage spike — when hourly consumption exceeds Z, alert immediately.
- Expensive pipeline — when a specific pipeline consumes more than expected.
Pre-call refusal
If your balance is insufficient to execute a LLM call or a phone call, betool refuses the execution before any debit. You will see an explicit message in the history, and the pipeline is marked out_of_credits.
No overcharge is possible: a call never starts without available credit.
For developers
If you are calling the admin API, the /api/admin/billing/balance endpoint returns your balance and credit limit. Any caller that catches Exception must re-raise OutOfCreditsError first — it is a billing signal, not a business error.