stt, llm and tts each take an optional fallback: a second provider and model the agent switches to mid-call when the primary starts returning errors. It is off by default. There is no fallback on realtime, avatar, noise_cancellation or analysis.model.
Set fallback to null to remove it. A fallback carries its own stage settings and inherits nothing from the primary: a tts fallback its own voice, speed, expressive and voice settings; an llm fallback its own reasoning_effort, priority, builtin_tools and hosts.

How a failover behaves

Both models are built when the session starts. The fallback takes over once the primary errors, and keeps the call from then on.
Because both are built up front, a fallback whose provider has no key breaks every call, not only the failover. Publishing refuses it.

Rules

Errors block the write; the provider key is checked at publish. Warnings come back from POST /v1/agents/{agent_id}/validate. A fallback with fewer provider tools, or none, is allowed.

Billing

Usage is metered per model, so a call that failed over shows a line for each provider covering the part it served, on your own keys. The platform fee is per minute and does not change. The editor’s per-minute estimate prices the primary only.

Next

Models

The catalog and the settings on each slot.

Validation

How errors and warnings come back.