total_charge is the sum, for seeing a call’s full economics in one figure. Rates, credits, the ledger and what happens at zero balance are on pricing and credits.
How the platform fee is computed
- A call’s fee is its channel’s per-minute rate times its duration, prorated per second. Avatar time on a video call is provider cost, not part of the fee.
- A chat’s fee is per answered message: a message whose turn finished
done. Superseded (canceled) and failed (error) turns are free. - The fee is waived on a failed call; provider cost still applies. Which close reasons count as failed is listed on close reasons.
transferredis not a failure and is charged.
The five metered kinds
Each provider charge is priced from the catalog entry of the exact model that ran (GET /v1/catalog).
A call has either
llm + stt + tts or realtime, never both; avatar sits beside either. LLM lines carry purpose (conversation, or analysis for post-call analysis) and priority (the line ran in the priority lane at its higher rate). Noise cancellation is not metered.
One call’s cost
GET /v1/calls/{session_id} returns cost and session.billing_status.
A chat is priced as it goes:
GET /v1/chats/{chat_id} returns cost so far while it is open, final once it ends.
Workspace cost
GET /v1/observability (up to seven days; see observability) returns a cost section:
GET /v1/calls/stats gives total_spend and avg_cost_per_call over priced calls for a 30-day default window.
Agent task runs are not sessions and are in none of these totals; their cost is on each run (running tasks) and, for email drafting, on the batch.
In the dashboard
The call page’s Cost section shows where provider cost went, one row per priced line with quantities and rates (priority and analysis tagged), then provider cost, the platform fee with its formula or waived — the call failed, and the total. Amounts show six decimal places.
Pricing and credits
Rates, credits, the ledger, zero balance.
Provider keys
Which providers bill your keys.