Skip to main content
Every agent speaks in one voice, set by voice.voice_id. Which voices exist depends on the tier, because the tiers speak through different engines.

t3 — the default

t3 speaks through a premium third-party catalogue (Sarvam). There is no short allowlist to memorise: pass the vendor’s voice id, e.g. ashutosh.
On t3 voice is required when you create an agent. There is no safe default to pick from somebody else’s catalogue, so an agent without one is a 400.

t1 — exactly two voices

t1 speaks through our own stack, and it loads exactly two voices: Anything else is rejected at agent-create time, and the error names both so you are not left guessing:
400 Bad Request
The same agent can be run at either tier — tier is set per call and per campaign, not on the agent. If you create an agent with a t3 voice and then place a t1 call with it, the voice will not be one t1 can say. Keep one agent per tier when you use both.

Hearing them first

There is no GET /v2/voices yet. The live catalogue is the voice picker in the console — open Agent Studio and you can hear each voice before you commit to one. The name in the picker is the voice_id, and the catalogue grows monthly; treat the picker, not this page, as the source of truth.
Listen before you pick. Voice choice moves answer-through rates more than prompt wording does.

Setting a voice on an agent

Change it later with PATCH /v2/agents/{id}:
See the Agents reference for the full agent shape.

The language caveat

voice.language is recorded, not yet appliedIt is validated, stored, echoed back and carried with the call payload — but the voice renders in the agent’s top-level language. Set both to the same value and you get what you expect; set them differently and the top-level one wins.
Keep voice.language and the agent’s language identical.