config.tts.voice: an id from the chosen provider’s roster. Browse rosters with GET /v1/catalog/voices (catalog_voices over MCP) before writing an id; a wrong id fails at synthesis, on a live call. A realtime agent picks its voice on config.realtime from the model’s own roster.
The tts object
There is no
language on tts; the agent’s one language applies.
Browsing voices
Each voice has
id and, where the provider publishes them, name, gender, language, accent, country, locale, description, sample_url, image_url, tier and owner_id. Only id goes on the agent. The response also returns the facets the provider supports (languages, accents, genders); an empty list means no such filter. With a provider key saved, the listing runs on your key and workspace_key is true; for ElevenLabs your own account’s voices come first.
A
tts_cache_router model (model=elevenlabs/eleven_flash_v2_5) lists the underlying provider’s voices, through your router account when a router key is saved.
ElevenLabs voices need their settings
1
Find the voice
GET /v1/catalog/voices?provider=elevenlabs. A voice already in your ElevenLabs account has no owner_id; skip to step 3.2
Save a shared-library voice
POST /v1/catalog/voices/elevenlabs/add with voice_id, owner_id and name. It is added to your workspace’s ElevenLabs account; use the returned voice_id from here on.3
Read its settings
GET /v1/catalog/voices/elevenlabs/{voice_id}/settings returns stability and similarity_boost. An unsaved library id returns 404.4
Write all three onto tts and publish
voice, stability and similarity_boost together. null settings mean the voice has none of its own; leave them unset.catalog_voices, add_elevenlabs_voice and elevenlabs_voice_settings; all three take provider=tts_cache_router for an ElevenLabs voice behind the router.
The settings belong to one voice: re-read them when you change the voice, and clear them when you move to a model without supports_voice_settings, or the save is refused (text-to-speech model '…' has no stability setting - clear it, or pick one of: …).
Next
Expressive delivery
Laughs, whispers and pauses on the models that speak tags.
Language
The one language every speech model shares.