Skip to content

API reference

Conference & participants

A Conference bridges two or more call legs into a shared audio room. You can add participants to it, mute or hold any of them, and remove a leg without tearing down the room. Conferences run on the same ARI snoop-and-bridge engine that powers Dial's supervisor barge and transfer/conference today; the public Conference REST resource and its Participants subresource are in developer preview, so the fields and payloads below are illustrative and may change before GA.

Base URL https://api.telvox.dev

Authentication Authorization: Bearer $TELVOX_API_KEY

Conference properties

A Conference resource has the following properties.

PropertyTypeDescription
sidstringUnique identifier for the conference, prefixed CF.
friendly_namestringA name you assign when the conference is created, used to address it across calls.
statusenumCurrent state: init, in-progress or completed.
participant_countintegerNumber of participants currently bridged into the conference.
recordbooleanWhether the conference audio is being recorded, subject to your recording policy.
date_createdstring<date-time>ISO 8601 timestamp for when the conference was created.
date_updatedstring<date-time>ISO 8601 timestamp for the last state change.

List conferences

GET/v1/conferences

Return a paginated list of conferences on your account, most recent first. Combine the filters below to narrow the result set.

Query parameterTypeDescription
statusenumFilter by conference status (init, in-progress, completed).
friendly_namestringFilter to conferences matching an exact friendly name.
page_sizeintegerNumber of results per page. Defaults to 50; cursor returned in the response.
GET/v1/conferences
curl -G https://api.telvox.dev/v1/conferences \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  --data-urlencode "status=in-progress" \
  --data-urlencode "page_size=25"
200 ok
200 — response
{
  "conferences": [
    {
      "sid": "CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6",
      "friendly_name": "support-bridge-4821",
      "status": "in-progress",
      "participant_count": 3,
      "record": true,
      "date_created": "2026-06-21T17:42:09Z",
      "date_updated": "2026-06-21T17:44:55Z"
    }
  ],
  "meta": {
    "page_size": 25,
    "next_cursor": "eyJvIjoyNX0"
  }
}

Fetch a conference

GET/v1/conferences/{sid}

Retrieve a single conference by its SID, including its current participant count and status.

GET/v1/conferences/{sid}
curl https://api.telvox.dev/v1/conferences/CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6 \
  -H "Authorization: Bearer $TELVOX_API_KEY"
200 ok
200 — response
{
  "sid": "CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6",
  "friendly_name": "support-bridge-4821",
  "status": "in-progress",
  "participant_count": 3,
  "record": true,
  "date_created": "2026-06-21T17:42:09Z",
  "date_updated": "2026-06-21T17:44:55Z"
}

Update a conference

POST/v1/conferences/{sid}

Announce into a running conference, or end it by setting status to completed.

Body parameterTypeDescription
statusenumSet to completed to end the conference and disconnect every participant.
announce_urlstring<uri>An answer-URL document played to all participants once before resuming the conference.
POST/v1/conferences/{sid}
curl -X POST https://api.telvox.dev/v1/conferences/CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6 \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  -d status="completed"
200 okin-progress

Participant subresource

Each participant is a call leg bridged into a conference, addressed by its call_sid. Participants carry their own mute and hold state.

PropertyTypeDescription
call_sidstringThe SID of the call leg bridged into the conference. Identifies the participant.
conference_sidstringThe SID of the conference this participant is part of.
mutedbooleanWhether the participant's audio is muted into the conference.
holdbooleanWhether the participant is on hold and hearing hold audio instead of the conference.
coachingbooleanWhether the participant is whispering to a single other participant (supervisor coach).
statusenumParticipant state: connecting, in-progress or completed.

List participants

GET/v1/conferences/{sid}/participants

List the call legs currently bridged into a conference.

GET/v1/conferences/{sid}/participants
curl https://api.telvox.dev/v1/conferences/CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6/participants \
  -H "Authorization: Bearer $TELVOX_API_KEY"
200 ok
200 — response
{
  "participants": [
    {
      "call_sid": "CA2f9d6b1a8c3e47b0a5d1f2c8e9b0a4d6",
      "conference_sid": "CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6",
      "muted": false,
      "hold": false,
      "coaching": false,
      "status": "in-progress"
    }
  ]
}

Add a participant

POST/v1/conferences/{sid}/participants

Dial a new call leg and bridge it into the conference. TelVox places the outbound call and joins it once answered.

Body parameterTypeDescription
fromrequiredstringCaller ID for the new leg — an E.164 number assigned to your account.
torequiredstringThe E.164 destination, SIP URI or client identity to dial into the conference.
mutedbooleanWhether the participant joins muted. Defaults to false.
start_conference_on_enterbooleanWhether the conference begins when this participant joins. Defaults to true.
end_conference_on_exitbooleanWhether the conference ends when this participant leaves. Defaults to false.
status_callbackstring<uri>URL TelVox requests as the participant's call leg changes state.
POST/v1/conferences/{sid}/participants
curl -X POST https://api.telvox.dev/v1/conferences/CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6/participants \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  -d from="+14155550100" \
  -d to="+14155550188" \
  -d muted="false"
201 createdconnecting
201 — response
{
  "call_sid": "CA9b1e7d3a6f2c48e0b4a1d9c7e2f0b8a4",
  "conference_sid": "CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6",
  "muted": false,
  "hold": false,
  "coaching": false,
  "status": "connecting"
}

Update a participant (hold / mute)

POST/v1/conferences/{sid}/participants/{call_sid}

Mute or unmute a participant, or move them to and from hold, without disconnecting the leg.

Body parameterTypeDescription
mutedbooleanSet true to mute the participant into the conference, false to unmute.
holdbooleanSet true to move the participant to hold, false to return them to the conference.
hold_urlstring<uri>An answer-URL document played to the participant while on hold.
POST/v1/conferences/{sid}/participants/{call_sid}
curl -X POST https://api.telvox.dev/v1/conferences/CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6/participants/CA2f9d6b1a8c3e47b0a5d1f2c8e9b0a4d6 \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  -d muted="true" \
  -d hold="false"
200 ok

Remove a participant

DELETE/v1/conferences/{sid}/participants/{call_sid}

Drop a single participant from the conference. The leg is disconnected; the conference and other participants continue.

DELETE/v1/conferences/{sid}/participants/{call_sid}
curl -X DELETE https://api.telvox.dev/v1/conferences/CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6/participants/CA2f9d6b1a8c3e47b0a5d1f2c8e9b0a4d6 \
  -H "Authorization: Bearer $TELVOX_API_KEY"
204 no content

Conference status callbacks

When you pass a status_callback URL, TelVox issues a signed POST to your endpoint as participants join, leave, mute or hold, and as the conference starts and ends. Delivery uses the same signed, SSRF-safe egress as the rest of the platform.

FieldTypeDescription
ConferenceSidstringThe SID of the conference the event belongs to.
CallSidstringThe SID of the participant call leg that triggered the event.
StatusCallbackEventenumOne of conference-start, conference-end, participant-join, participant-leave, participant-mute, participant-hold.
Timestampstring<date-time>RFC 2822 timestamp for when the event occurred.
POST your endpoint — participant-join
{
  "ConferenceSid": "CF7c0a1e8b4d2f49a0b3e6c1d8f0a2b4c6",
  "CallSid": "CA9b1e7d3a6f2c48e0b4a1d9c7e2f0b8a4",
  "StatusCallbackEvent": "participant-join",
  "Timestamp": "Sun, 21 Jun 2026 17:44:55 +0000"
}