Skip to main content
LITE Mode events are sent and received over a WebSocket connection returned when the session starts.

Command Events (you send)

EventPayloadDescription
agent.interrupt{"type": "agent.interrupt"}Interrupts and clears all scheduled speaking events.
agent.speak{"type": "agent.speak", "audio": "<base64>"}Adds audio to the avatar’s playback buffer. Audio must be PCM 16-bit 24KHz encoded as Base64. Recommended chunk size: ~1 second. Max 1MB per packet.
agent.speak_end{"type": "agent.speak_end", "event_id": "<id>"}Signals the end of a speaking event.
agent.start_listening{"type": "agent.start_listening", "event_id": "<id>"}Transitions the avatar to a listening state.
agent.stop_listening{"type": "agent.stop_listening", "event_id": "<id>"}Transitions the avatar from listening to idle.
session.keep_alive{"type": "session.keep_alive", "event_id": "<id>"}Keeps the session alive beyond the 5-minute idle timeout. Send periodically to extend the session.

Response Events (you receive)

EventPayloadDescription
session.state_updated{"state": "connected" | "connecting" | "closed" | "closing"}Tracks session state transitions. Wait for "connected" before sending events.
agent.speak_started{"event_id": "<id>", "task": {"id": "<id>"}}The avatar began speaking. event_id matches the triggering agent.speak command.
agent.speak_ended{"event_id": "<id>", "task": {"id": "<id>"}}The avatar finished speaking. Always follows an agent.speak_started event.
Wait for session.state_updated with state "connected" before sending any command events.