voice takes one of two shapes: a composed pipeline of three
named models, or one realtime model that does the whole conversation. This
page is about the first. For the shapes themselves, see
Voice engines.
The shape
provider/model pair. All three stages are required:
a pipeline missing one cannot hold a conversation, and defaulting it would
silently bill you for a model you never chose.
Which models you can name
Only models in the price book. The book is the meter’s source of truth, so “no price, no call” is enforced when the agent is created — not on the first call, where the failure would land on your customer. Name something unpriced and the answer is a400 that lists what is available for that stage:
GET /v1/engines: each engine
carries its models, with the unit each is billed in and the price per unit.
Prefer it to hardcoding ids — a model whose provider is degraded disappears
from that list before your calls start failing.
Per-minute figures assume 15 synthesised characters, 40 input tokens and 8 output tokens per second, and exclude the flat $0.012 per minute platform fee. A language model is billed in two units, so its line appears twice.
One family per pipeline
The three stages must come from the same family, because each family runs on its own pipeline:
The
stt provider decides which pipeline runs: a Deepgram model selects the
classic pipeline, a Sarvam model selects the Sarvam one. That pipeline then
runs its own family end to end. A tts from another family passes pricing
validation but is not what that pipeline speaks with, so keep all three
together.
Variants and language
Within a family the pipeline picks the exact variant for the agent’slanguage: the classic pipeline uses ElevenLabs Turbo for English and Flash
for everything else, and Nova-3 in the matching language mode. What you are
billed is the model that actually ran, at its own rate — the estimate at
admission reserves for the dearest variant in the family, and the settle
charges for the one used.
What it costs
A composed minute is the sum of its stages plus the flat platform fee, at typical speech rates: 15 characters of synthesised speech, 40 input tokens and 8 output tokens per second. Each stage is metered in its own unit — seconds of audio, tokens, characters — every few seconds while the call is live, so a quiet call costs less than the estimate and a talkative one more. The pricing page has a builder that prices any mix and writes the JSON for it. Prices are frozen when a call is admitted, so a change to the book never moves a running meter. See Credits for how the balance works.Or hand the whole turn to one model
stt or llm;
the API refuses a config that names both.
