---
title: "Agent session ended"
method: POST
path: "agent.disconnected"
---

# Agent session ended

`POST agent.disconnected` (webhook)

## Payload

- object: Event envelope delivered via HTTP POST to registered webhook URLs. Event-specific fields are flattened into the top-level object (no "data" wrapper). Includes X-Signature-256 header when a secret is configured, and an X-Event-Id header equal to the event_id field.
  - `type` 'leg.ringing' | 'leg.early_media' | 'leg.connected' | 'leg.disconnected' | 'leg.joined_room' | 'leg.left_room' | 'leg.muted' | 'leg.unmuted' | 'leg.deaf' | 'leg.undeaf' | 'leg.hold' | 'leg.unhold' | 'leg.command_failed' | 'leg.ice_interrupted' | 'leg.ice_restored' | 'leg.stream_added' | 'leg.stream_removed' | 'leg.stream_rejected' | 'leg.stream_failed' | 'leg.stream_room_changed' | 'leg.stream_role_changed' | 'siprec.session_started' | 'siprec.session_ended' | 'siprec.metadata_updated' | 'siprec.participant_joined' | 'siprec.participant_left' | 'dtmf.received' | 'rtt.received' | 'speaking.started' | 'speaking.stopped' | 'playback.started' | 'playback.finished' | 'playback.error' | 'tts.started' | 'tts.finished' | 'tts.error' | 'tts.staged' | 'tts.discarded' | 'recording.started' | 'recording.finished' | 'recording.paused' | 'recording.resumed' | 'leg.transfer_initiated' | 'leg.transfer_requested' | 'leg.transfer_progress' | 'leg.transfer_completed' | 'leg.transfer_failed' | 'room.created' | 'room.deleted' | 'room.bridged' | 'room.bridge_updated' | 'room.unbridged' | 'room.routing_changed' | 'leg.role_changed' | 'stt.text' | 'stt.turn' | 'agent.connected' | 'agent.disconnected' | 'agent.user_transcript' | 'agent.agent_response' | 'amd.result' | 'amd.beep' | 'sip.registration_attempt' | 'sip.registration_active' | 'sip.registration_expired' | 'sip.outbound_registration_active' | 'sip.outbound_registration_failed' | 'sip.outbound_registration_expired' | 'sip.trunk_up' | 'sip.trunk_down', required
  - `timestamp` string, date-time, required
  - `event_id` string, uuid: Stable per-event idempotency key; identical across delivery retries and across all subscribers of the event.
  - `instance_id` string: Instance identifier
  - `custom_data` unknown
  - `leg_id` string: Leg identifier
  - `room_id` string: Room identifier
  - `app_id` string

---

[API](https://skmtc.dev/voiceblender/apis/voiceblender-api.md) - [All operations](https://skmtc.dev/voiceblender/apis/voiceblender-api/llms.txt) - [OpenAPI document](https://skmtc.dev/voiceblender/apis/voiceblender-api/revisions/fa6da4e6a00b?raw)
