Live
Connect
Create session
Models
ClientEvent = SessionStartEvent { session, type, event_id } | SessionUpdateEvent { session, type, event_id } | InputAudioAppendEvent { audio, type, event_id } | 12 moreClient events for Live. Initialize a primary WebSocket with session.start and wait for session.started. WebRTC creation already starts the session. Audio append is primary WebSocket-only. See the Live prompting guide before writing frontend instructions and delegation policies.
Client events for Live. Initialize a primary WebSocket with session.start and wait for session.started. WebRTC creation already starts the session. Audio append is primary WebSocket-only. See the Live prompting guide before writing frontend instructions and delegation policies.
ForkSessionConfig { audio, client, delegation, store } Overrides for a stored session after connecting to the fork WebSocket. An empty object inherits the stored configuration; do not supply a new model. audio.format applies only to the new WebSocket connection. client overrides are only supported for WebRTC forks.
Overrides for a stored session after connecting to the fork WebSocket. An empty object inherits the stored configuration; do not supply a new model. audio.format applies only to the new WebSocket connection. client overrides are only supported for WebRTC forks.
InstructionsAppendEvent { content, delegation_id, type, event_id } Append developer instructions to the Live conversation while it is running, optionally associating them with an existing client delegation. Rejected while an audio fixture is active. These instructions remain in conversation history through compaction and are included in future backend delegations. For external audio, describe content already delivered so the assistant does not repeat it.
Append developer instructions to the Live conversation while it is running, optionally associating them with an existing client delegation. Rejected while an audio fixture is active. These instructions remain in conversation history through compaction and are included in future backend delegations. For external audio, describe content already delivered so the assistant does not repeat it.
MediaSessionConfig { model, audio, client, 5 more } Startup configuration for a Live media session. Follow the Live prompting guide when writing frontend instructions and the backend prompt under delegation.responses.instructions.
Startup configuration for a Live media session. Follow the Live prompting guide when writing frontend instructions and the backend prompt under delegation.responses.instructions.
MediaSessionForkConfig { client, delegation, store } Optional overrides for a stored Live session. Omitted settings are inherited. The model, voice, frontend instructions, and prior conversation come from the stored session. WebRTC negotiates its audio format; audio.format is only supported on WebSocket forks.
Optional overrides for a stored Live session. Omitted settings are inherited. The model, voice, frontend instructions, and prior conversation come from the stored session. WebRTC negotiates its audio format; audio.format is only supported on WebSocket forks.
OutputAudioFixturePlayEvent { audio, type, event_id } Play one complete audio fixture through the session output. Send this event over the primary WebSocket or a server sideband. Audio must be raw mono PCM16 little-endian at 24 kHz, regardless of the session audio format, and at most 30 seconds. The entire payload is validated before model speech is interrupted and input is muted. Only one fixture can be active. fixture.playing acknowledges acceptance and fixture.played reports server mixer drain. These notifications are not exact transport-media boundaries. Input arriving during playback is dropped and not replayed.
Play one complete audio fixture through the session output. Send this event over the primary WebSocket or a server sideband. Audio must be raw mono PCM16 little-endian at 24 kHz, regardless of the session audio format, and at most 30 seconds. The entire payload is validated before model speech is interrupted and input is muted. Only one fixture can be active. fixture.playing acknowledges acceptance and fixture.played reports server mixer drain. These notifications are not exact transport-media boundaries. Input arriving during playback is dropped and not replayed.
OutputAudioFixturePlayedEvent { event_id, type, client_event_id } The complete audio fixture has drained from the server mixer and normal inference has resumed. Transport buffers may still contain audio; this event does not prove listener-side completion. The optional client_event_id echoes the play command. This event is not emitted for canceled or failed playback.
The complete audio fixture has drained from the server mixer and normal inference has resumed. Transport buffers may still contain audio; this event does not prove listener-side completion. The optional client_event_id echoes the play command. This event is not emitted for canceled or failed playback.
ServerEvent = SessionStartedEvent { event_id, session, type, client_event_id } | SessionUpdatedEvent { event_id, session, type, client_event_id } | InputAudioMutedEvent { event_id, type, client_event_id } | 25 moreServer events for Live. Response lifecycle events are wrapped inside response.event; dispatch the nested event by its full type and tolerate new response event types. Follow the Live prompting guide when designing the conversation and delegation policy.
Server events for Live. Response lifecycle events are wrapped inside response.event; dispatch the nested event by its full type and tolerate new response event types. Follow the Live prompting guide when designing the conversation and delegation policy.
LiveForks
Connect
Models
ForkClientEvent = ForkSessionStartEvent { session, type, event_id } | SessionUpdateEvent { session, type, event_id } | InputAudioAppendEvent { audio, type, event_id } | 12 moreClient events for a Live fork WebSocket. First send session.start with an overrides object (which may be empty), then wait for session.started before sending other commands. The model and conversation are inherited from the stored session.
Client events for a Live fork WebSocket. First send session.start with an overrides object (which may be empty), then wait for session.started before sending other commands. The model and conversation are inherited from the stored session.
ForkServerEvent = SessionStartedEvent { event_id, session, type, client_event_id } | SessionUpdatedEvent { event_id, session, type, client_event_id } | InputAudioMutedEvent { event_id, type, client_event_id } | 25 moreServer events for Live. Response lifecycle events are wrapped inside response.event; dispatch the nested event by its full type and tolerate new response event types. Follow the Live prompting guide when designing the conversation and delegation policy.
Server events for Live. Response lifecycle events are wrapped inside response.event; dispatch the nested event by its full type and tolerate new response event types. Follow the Live prompting guide when designing the conversation and delegation policy.
LiveSessions
Accept call
Download recording
Fork session
Hang up session
Transfer call
Reject call
LiveSideband
Connect
Models
ConnectClientEvent = SessionUpdateEvent { session, type, event_id } | InputAudioMuteEvent { type, event_id } | InputAudioUnmuteEvent { type, event_id } | 11 moreClient events accepted by an attached Live sideband WebSocket. The session has already started. Send input audio over the primary connection.
Client events accepted by an attached Live sideband WebSocket. The session has already started. Send input audio over the primary connection.
ConnectServerEvent = SessionStartedEvent { event_id, session, type, client_event_id } | SessionUpdatedEvent { event_id, session, type, client_event_id } | InputAudioMutedEvent { event_id, type, client_event_id } | 25 moreServer events received by an attached Live sideband WebSocket, including reflected input and output audio and transport notifications.
Server events received by an attached Live sideband WebSocket, including reflected input and output audio and transport notifications.