transcriber, model and voice - can have a
fallback: a second one, from a different provider, that takes over if the first provider stops
responding during a call.
You set them with PATCH /v1/agents/{agent_id} (or on create), like
any other setting.
What to send
A model id belongs to exactly one provider, so for the transcriber and the model you only name the
model - a
provider you send is ignored. A voice id does not say whose voice it is, so the voice
backup needs both.
Pick values from the catalogues: GET /v1/transcribers,
GET /v1/models, and
GET /v1/voices?provider=.
Example
fallback back to confirm it was saved. If it comes back null, there is no backup.
Rules
The backup must be from a different provider
What fails during an outage is the provider - it is unreachable, the key is rejected, the region is down - and every model behind it fails together. So a backup on the same provider as the main engine is refused:Changing one field keeps the others
fallback merges like the rest of the body. { "voice": { "fallback": { "voice_id": "anushka" } } }
changes the backup voice and keeps its provider.
The exception is the voice backup’s provider: a voice belongs to its provider, so switching
provider without a voice_id clears the old voice and the request is refused until you name one.
Send both together:
Remove a backup with null
During a call
The backup is only used if the main provider stops responding. When it is, the agent switches for the rest of that call - it does not go back and forth.
A backup only has to support the agent’s primary language, which is why a failover returns the
conversation to it - see If a provider fails mid-call.
The call is billed at the engine it actually ran on.
Errors
A backup the configuration itself refuses reads
voice_config_invalid:
document_invalid: the field is real and the value well-formed, but
the agent cannot use it - the example above under Rules shows it in full.
A 422 lists every problem in the request - see
Validation errors.