Skip to main content
POST
Generate speech

Voice Mapping

voice is normalized by provider with an internal alias map:
  • openai: common voices (for example alloy, ash, ballad, coral, echo, fable, onyx, nova, sage, shimmer, verse, cedar, marin).
  • google (AI Studio / Gemini TTS): canonical prebuilt voices: Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat.
  • elevenlabs: common public starter voices are mapped (for example rachel, domi, bella, antoni, elli, josh, arnold, adam, sam).
For eleven-labs/eleven-v4 and eleven-labs/eleven-v4-turbo, pass any 20-character ElevenLabs voice library ID, including a custom clone. Set config.elevenlabs.voice_settings.stability and similarity_boost as needed. Eleven v4 does not support speed or voice_settings.style. If a provided voice is not valid for the routed provider/model mapping, the request returns 400 invalid_request_error with param: "voice".

Provider Overrides

You can still pass provider-native voice settings:
  • ElevenLabs: config.elevenlabs.voice_id / config.elevenlabs.voice / config.elevenlabs.voiceName
  • Google: config.google.voice_name / config.google.voiceName
Top-level voice should be your default for portability.

Voice Samples

Authorizations

Authorization
string
header
required

Bearer token authentication

Body

application/json
model
string
required
input
string
required
models
string[]

Optional ordered fallback models tried after model. model is required and is always the primary model. When an attempt fails with 429, 500, 502, 503, or 504, the next entry is tried; other errors are returned unchanged. Accepts up to 25 model IDs or presets; duplicates and entries equal to model are ignored. Each attempt is validated, logged, and billed as its own request, and the response model field and routing trace show the model that served the request. Streaming requests fall back only before the first byte, and video and music jobs fall back only at submission. Batch, realtime, and council requests reject models. Fallbacks set on a dynamic route take precedence, and phaseo/auto cannot be combined with models.

Required array length: 1 - 25 elements
Minimum string length: 1
Example:
voice
string
speed
number
Required range: 0.25 <= x <= 4
format
enum<string>
Available options:
mp3,
wav,
ogg,
aac
provider
object

Provider routing preferences for gateway selection.

config
object

Response

200 - audio/mpeg

Audio file

The response is of type file.

Last modified on October 18, 2026