Skip to content

API reference

Queue & members

A Queue holds inbound calls while they wait to be matched to an agent. TelVox's queues run on a real Redis-backed ACD with FIFO or longest-idle selection, hold music, configurable max size and max wait, overflow handling and ring-no-answer re-queue — the same engine Dial ships. You can fetch and list queues, tune their limits, and inspect or act on the calls waiting inside them via the Members subresource. The public Queue/Members REST shape is 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

Queue properties

A Queue resource has the following properties.

PropertyTypeDescription
sidstringUnique identifier for the queue, prefixed QU.
friendly_namestringA human-readable name for the queue, used to address it from your call flows.
current_sizeintegerNumber of calls currently waiting in the queue.
max_sizeintegerMaximum number of calls allowed to wait before new calls hit the overflow path.
max_waitintegerMaximum time in seconds a call may wait before it is sent to the overflow path.
selectionenumHow waiting calls are matched to agents: fifo or longest-idle.
hold_music_urlstring<uri>Answer-URL document played to waiting callers as hold music (MOH).
overflow_urlstring<uri>Answer-URL document run when a call exceeds max_size or max_wait.
average_wait_timeintegerRolling average wait, in seconds, for calls recently dequeued from this queue.
date_updatedstring<date-time>ISO 8601 timestamp for the last configuration change.

List queues

GET/v1/queues

Return a paginated list of the queues on your account.

Query parameterTypeDescription
friendly_namestringFilter to queues matching an exact friendly name.
page_sizeintegerNumber of results per page. Defaults to 50; cursor returned in the response.
GET/v1/queues
curl -G https://api.telvox.dev/v1/queues \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  --data-urlencode "page_size=25"
200 ok
200 — response
{
  "queues": [
    {
      "sid": "QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c",
      "friendly_name": "support-tier-1",
      "current_size": 4,
      "max_size": 50,
      "max_wait": 600,
      "selection": "longest-idle",
      "hold_music_url": "https://your.app/voice/moh",
      "overflow_url": "https://your.app/voice/overflow",
      "average_wait_time": 38,
      "date_updated": "2026-06-21T16:10:02Z"
    }
  ],
  "meta": {
    "page_size": 25,
    "next_cursor": null
  }
}

Fetch a queue

GET/v1/queues/{sid}

Retrieve a single queue by its SID, including its current size and average wait.

GET/v1/queues/{sid}
curl https://api.telvox.dev/v1/queues/QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c \
  -H "Authorization: Bearer $TELVOX_API_KEY"
200 ok
200 — response
{
  "sid": "QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c",
  "friendly_name": "support-tier-1",
  "current_size": 4,
  "max_size": 50,
  "max_wait": 600,
  "selection": "longest-idle",
  "hold_music_url": "https://your.app/voice/moh",
  "overflow_url": "https://your.app/voice/overflow",
  "average_wait_time": 38,
  "date_updated": "2026-06-21T16:10:02Z"
}

Update a queue

POST/v1/queues/{sid}

Tune a queue's limits and routing — max size, max wait, selection strategy, hold music and overflow target.

Body parameterTypeDescription
friendly_namestringRename the queue.
max_sizeintegerSet the maximum number of calls allowed to wait before overflow.
max_waitintegerSet the maximum wait in seconds before a call is sent to the overflow path.
selectionenumSet the matching strategy: fifo or longest-idle.
hold_music_urlstring<uri>Set the answer-URL document used for hold music.
overflow_urlstring<uri>Set the answer-URL document run when a call overflows.
POST/v1/queues/{sid}
curl -X POST https://api.telvox.dev/v1/queues/QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  -d max_size="75" \
  -d max_wait="900" \
  -d overflow_url="https://your.app/voice/overflow"
200 ok

Member subresource

A member is a call leg currently waiting in a queue, addressed by its call_sid. Members expose their queue position and how long they have waited.

PropertyTypeDescription
call_sidstringThe SID of the waiting call leg. Identifies the member within the queue.
queue_sidstringThe SID of the queue the call is waiting in.
positionintegerCurrent 1-based position of the call in the queue.
wait_timeintegerTime in seconds the call has been waiting in the queue.
date_enqueuedstring<date-time>ISO 8601 timestamp for when the call entered the queue.

List members

GET/v1/queues/{sid}/members

List the calls currently waiting in a queue, in position order.

GET/v1/queues/{sid}/members
curl https://api.telvox.dev/v1/queues/QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c/members \
  -H "Authorization: Bearer $TELVOX_API_KEY"
200 ok
200 — response
{
  "members": [
    {
      "call_sid": "CA1d7b9e3a6c2f48d0b5a1e9c7f2d0b8a4",
      "queue_sid": "QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c",
      "position": 1,
      "wait_time": 47,
      "date_enqueued": "2026-06-21T16:09:15Z"
    }
  ]
}

Update a member (dequeue / redirect)

POST/v1/queues/{sid}/members/{call_sid}

Act on a waiting call: dequeue it to connect to the next available agent, or redirect it to a new answer-URL document.

Body parameterTypeDescription
actionrequiredenumWhat to do with the waiting call: dequeue (connect to the next agent) or redirect (send to a new answer-URL document).
urlstring<uri>When action is redirect, the answer-URL document the call is sent to. Ignored for dequeue.
POST/v1/queues/{sid}/members/{call_sid}
curl -X POST https://api.telvox.dev/v1/queues/QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c/members/CA1d7b9e3a6c2f48d0b5a1e9c7f2d0b8a4 \
  -H "Authorization: Bearer $TELVOX_API_KEY" \
  -d action="redirect" \
  -d url="https://your.app/voice/callback-offer"
200 ok
200 — response
{
  "call_sid": "CA1d7b9e3a6c2f48d0b5a1e9c7f2d0b8a4",
  "queue_sid": "QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c",
  "action": "redirect",
  "url": "https://your.app/voice/callback-offer"
}

Queue callbacks

When a call enters a queue with a status_callback URL, TelVox issues a signed POST as the call is enqueued, dequeued, redirected, overflowed or abandoned — over the same signed, SSRF-safe egress as the rest of the platform.

FieldTypeDescription
QueueSidstringThe SID of the queue the event belongs to.
CallSidstringThe SID of the call leg that triggered the event.
QueueEventenumOne of enqueued, dequeued, redirected, overflowed or abandoned.
QueueTimeintegerSeconds the call spent in the queue, included on dequeue and overflow events.
POST your endpoint — dequeued
{
  "QueueSid": "QU3e8a1c6b9d2f470a8b5c1e3d7f0a2b9c",
  "CallSid": "CA1d7b9e3a6c2f48d0b5a1e9c7f2d0b8a4",
  "QueueEvent": "dequeued",
  "QueueTime": 47
}