AI voice agent pricing: billing formulas, worked examples and a calculator
Voice providers bill for different things: an open session, tokens, audio in each direction, platform minutes, containers or GPU hours. Convert each to cost per connected minute before you compare them.
Billing units by architecture
A voice agent's cost depends first on what the provider meters. Two services can quote similar numbers and still produce very different bills for the same call, because one charges for silence and the other charges for every token of history.
| Billing model | You pay for | Example rates | What grows the bill |
|---|---|---|---|
| Flat session | Seconds the session is open | GPT-Live 1: $0.05/min. Duplex: $0.01/connected min. .wave Nemotron VoiceChat beta: $0.005/min, 120-second sessions, no tools. | Silence, tool waits, sessions left open |
| Bundled connection | WebSocket connection time, with STT, LLM and TTS included by tier | Deepgram Voice Agent Standard: $0.075/min | Open connections; higher tiers |
| Token | Input and output tokens per response, by modality | GPT-Realtime-2.1: audio $32/M in, $0.40/M cached, $64/M out; text $4/M in, $24/M out | History sent again on every response; reasoning; transcription |
| Directional audio | Input audio and output audio at separate rates | Gemini 3.8 Live: about $0.005/input min, $0.018/output min | Context re-billed each turn; listening time; transcription text |
| Managed platform | Platform minutes plus the models you select | Vapi: $0.05/min plus models at cost. Retell: $0.055/min plus voice and LLM | Add-ons, concurrency, numbers, telephony |
| Orchestration only | Agent session or container minutes | LiveKit Cloud: $0.01/min after included minutes. Pipecat Cloud agent-1x: $0.01/min active, $0.0005/min reserved | Model providers billed separately; reserved instances bill all day |
| Self-hosted GPU | GPU hours, whether slots are busy or not | Your rental quote | Idle capacity |
The formulas
Each model needs its own formula. A single "audio minute" rate applied to all of them gives wrong answers.
flat session = connected_seconds / 60 × rate
+ backend model and tool usage + telephony
token = Σ responses ( uncached_in × in_rate
+ cached_in × cached_rate
+ out × out_rate ) per modality
+ transcription
directional = input_audio_min × in_rate + output_audio_min × out_rate
+ retained context billed again each turn
+ transcription text at the text output rate
managed = minutes × (platform + stt + llm + tts + add_ons)
+ minutes × telephony
+ monthly numbers, concurrency and plan fees
orchestration = max(0, session_min - included) × session_rate
+ reserved_min × reserved_rate
+ model providers + transport
gpu per conversation-hour = gpu_hourly / (concurrent_slots × utilization)
Some details change the inputs. OpenAI counts GPT-Live silence and backend work as active session time. Creating a WebRTC session bills 15 seconds during initialization, credited against the running session, so you don't add it again. Usage events report cumulative seconds. Record the final usage.seconds once instead of summing snapshots.
For Realtime, user audio counts one token per 100 ms and assistant audio one token per 50 ms: 600 and 1,200 tokens a minute. The whole conversation is input to each new response, and caching is best-effort. Google re-bills retained Gemini context on every turn, charges transcription at the text output rate, and keeps proactive audio permanently on for Gemini 3.8 Live, so listening time costs input tokens even when the model stays quiet.
One ten-minute call, priced eight ways
Assume ten connected minutes: the user speaks for four, the agent speaks for four, and two pass in silence or tool waits.
| Service | Arithmetic | Cost | Not included |
|---|---|---|---|
| Duplex Compute | 10 × $0.01 | $0.10 | Your tool handlers, telephony |
| GPT-Live 1 | 10 × $0.05 | $0.50 | Backend model and tools |
| GPT-Realtime-2.1 | 2,400 input tokens × $32/M + 4,800 output tokens × $64/M | $0.384 | History re-sent each turn, text, reasoning, transcription |
| Gemini 3.8 Live | 10 listening min × $0.005 + 4 output min × $0.018 | $0.122 | Context re-billing, transcription, grounding |
| Deepgram Voice Agent Standard | 10 × $0.075 | $0.75 | Telephony |
| LiveKit Cloud, phone call | 10 × $0.0479 (LiveKit calculator default) | $0.479 | Plan base; included minutes would lower it |
| Retell, Platform Voices + GPT-4.1 mini | 10 × $0.0828 + 10 × $0.015 telephony | $0.978 | Add-ons, numbers, extra concurrency |
| Vapi, calculator range | 10 × ($0.0818 to $0.1289) | $0.82 to $1.29 | Carrier minutes, extra lines |
The Realtime and Gemini rows are floors. They count only audio introduced in this call. Each later response also pays for earlier turns, so a ten-minute conversation costs more than ten one-minute ones. The Duplex row is a voice-session rate. It does not show that a task costs 80% less end to end than on GPT-Live. That depends on the backend, retries and whether the task succeeds.
Provider notes break these down further: LiveKit pricing, Retell AI pricing, Gemini Live API pricing and the live voice API rate reference.
Fixed monthly costs
Per-minute rates hide the costs that arrive whether or not anyone calls. LiveKit's Ship plan costs $50 a month and includes 5,000 agent-session minutes and 20 concurrent sessions. Vapi's usage plan includes four concurrent calls and charges $10 per extra line per month. Retell includes 20 and charges $8 for each additional one.
Reserved capacity bills around the clock. A warm Pipecat Cloud instance accrues 1,440 reserved minutes a day, and each instance runs one session at a time. One reserved agent-1x at $0.0005 a minute costs $0.72 a day, or $21.60 over 30 days, before any call.
Self-hosting moves the same problem to GPUs. A $2-per-hour GPU serving four simultaneous conversations at full use costs $0.50 per conversation-hour. At 25% average slot use it costs $2. Both the $2 rate and the four slots are assumptions for the arithmetic, not a quote or a measured model capacity. What does an hour of conversation cost? works through the break-even.
Monthly cost calculator
Enter per-minute rates for each line you pay. The defaults show a GPT-Live-style setup: $0.05 a minute for voice and an assumed $0.01 a minute of backend model usage. The backend figure is a placeholder for your own logs, not an OpenAI rate. For a token-billed API, divide a representative session's token cost by its connected minutes and enter that as the voice rate. A field left at zero means you have no such charge, so fill in every line your stack really pays.
Results are estimates from list prices and your assumptions, not invoices. To model Duplex, set the voice rate to 0.01 and keep your own backend, tool and telephony costs.
Check the estimate against your logs
For each session, keep connected seconds, speaking time on each side, token usage per response with the cached share, the exact model version, tool calls and telephony minutes. Store them apart so you can see which line moved.
Then divide total spend across all attempts by the number of tasks completed. OpenAI's cost guide recommends the same cost-per-successful-task view, with failed attempts and retries left in. A cheaper configuration that completes fewer tasks can cost more per result. Voice agent evaluation describes how to count completions.
Related notes
- LiveKit pricing for voice agents
- Retell AI pricing
- Gemini Live API pricing
- Live voice API pricing reference
- What does an hour of conversation cost?
- Vapi alternatives for developers
Pricing a voice feature?
Duplex is a full-duplex voice API with tool calling at $0.01 per connected minute, so the voice line of your estimate stays small and predictable. Tell us your expected voice hours, the tools your agent calls and the provider you use now.
Request access