---
title: "List all active legs"
method: GET
path: "/legs"
tags: ["Legs"]
---

# List all active legs

`GET /legs`

## Response `200`

Array of legs

- Leg[]
  - `instance_id` string — Instance identifier
  - `id` string, required — Unique leg identifier (UUID)
  - `type` 'sip_inbound' | 'sip_outbound' | 'webrtc' | 'whatsapp_in' | 'whatsapp_out' | 'websocket_in' | 'websocket_out' | 'moq_in' | 'livekit_publish' | 'livekit_participant', required — Leg type
  - `state` 'ringing' | 'early_media' | 'connected' | 'held' | 'hung_up', required — Leg state
  - `room_id` string — Room ID if the leg is in a room, empty otherwise
  - `muted` boolean, required — Whether the leg is muted (cannot be heard by others)
  - `deaf` boolean, required — Whether the leg is deaf (cannot hear others)
  - `accept_dtmf` boolean, required — Whether the leg receives DTMF digits broadcast from other legs in the same room. Defaults to true.
  - `held` boolean, required — Whether the call is on hold (SIP legs only)
  - `role` string — Routing role used by the room's audio routing matrix (e.g. "customer", "agent", "supervisor"). Empty string means unroled (full mesh).
  - `app_id` string — Application identifier for event stream filtering.
  - `sip_headers` object — Deprecated: X-* headers from the inbound INVITE. Only present on sip_inbound legs. Use `headers` for new code; it carries the same map plus surfaces handshake headers for websocket legs.
  - `headers` object — Custom protocol headers exposed by the leg's transport — X-/P- headers from a SIP INVITE, the WebSocket upgrade request, or supplied at outbound dial time.
  - `custom_data` unknown

## Changes

- **2026-09-01** `89ff267f0958` — 1 info
  - added the optional property `items/custom_data` to the response with the `200` status
- **2026-06-08** `2c5256108234` — 3 warning
  - added the new `livekit_participant` enum value to the `items/type` response property for the response status `200`
  - added the new `livekit_publish` enum value to the `items/type` response property for the response status `200`
  - added the new `moq_in` enum value to the `items/type` response property for the response status `200`
- **2026-05-21** `98f1f6130e2c` — 1 info
  - added the optional property `items/role` to the response with the `200` status
- **2026-05-13** `97117ab6a5c4` — 2 warning, 1 info
  - added the new `websocket_in` enum value to the `items/type` response property for the response status `200`
  - added the new `websocket_out` enum value to the `items/type` response property for the response status `200`
  - added the optional property `items/headers` to the response with the `200` status
- **2026-04-29** `6a046e0fe815` — 2 warning
  - added the new `whatsapp_in` enum value to the `items/type` response property for the response status `200`
  - added the new `whatsapp_out` enum value to the `items/type` response property for the response status `200`

[Full history](https://skmtc.dev/voiceblender/apis/voiceblender-api/changes/legs/get.md)

---

[API](https://skmtc.dev/voiceblender/apis/voiceblender-api.md) · [All operations](https://skmtc.dev/voiceblender/apis/voiceblender-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/voiceblender/voiceblender-api/revisions/89ff267f0958/schema)
