The Rate
The default rate is $0.35 per minute of talk time, billed per second and rounded up to the whole second. Your account’s rate israte.per_minute_micros in GET /v1/balance. Nothing else is metered on a call.
Starter Credit
A new team gets $10 of starter credit for real calls before paying anything. It pays for calls only: it can’t be transferred to another team or spent on extra concurrency slots. Calls spend starter credit first, then purchased credit.How a Call Holds Credit
Placing a call holds credit for its fullmax_duration, not the time it uses. The unused part comes back when the call ends. Overlapping calls each hold their maximum, so a new call has less to draw on than your balance suggests. A shorter max_duration holds less.
Running Out
If the hold doesn’t fit,POST /v1/calls returns 402 with code: insufficient_quota. Nothing is charged or queued. Insufficient quota shows the error body.
Campaign start, resume and test calls also return 402 unless available credit covers one call’s full max_duration.
In a running campaign, a dial that doesn’t fit waits if calls in progress are holding the credit it needs. If your whole balance can’t cover it, every running campaign on the account pauses with pause_reason: quota_exceeded. Add credit, then resume.
A call booked with scheduled_at holds nothing until it’s due. If the hold doesn’t fit then, it ends failed with error_message “Insufficient credit at scheduled time”, uncharged and not retried.
Checking Your Balance
GET /v1/balance reports credit in integer microdollars ($1 = 1,000,000), plus the per-minute rate, concurrency slots and auto-recharge settings.
GET /v1/usage/movements lists the ledger Billing shows. Each row has kind, a signed amount_micros (a call spend is negative), balance_after_micros, talk_seconds on a call and source_id (the call id for a spend). Holds for calls in progress aren’t listed.
The API reference has both endpoints and the scope they need.
Concurrency
Every account includes 20 concurrent calls. Extra slots cost $15 a month each, paid from purchased credit. The per-minute rate stays the same however many calls run. Inbound calls use slots too but never get a429. They have their own cap of 5 at a time per account, and further callers are declined. A campaign waits for a free slot by itself. A single call or campaign test call placed while every slot is busy returns 429 with code: concurrency_limit.
Auto-recharge and Alerts
Auto-recharge buys credit when you run low, so a long campaign doesn’t stop partway. Alerts only notify you. Both start off; turn them on in Billing.Next Steps
Making Calls
Placing calls, and handling the 402 when credit runs out.
API Reference
Read your remaining credit with
GET /v1/balance.