Skip to content

Queues ​

Routing a call to whichever member is free, and why it chose whom it did.

List queues, by slug ​

GET /v1/queues

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
limit?queryinteger1–100. Default 20.
cursor?querystringThe nextCursor of the previous page. 1–512 characters.

Response 200 — A page of queues.

FieldTypeDescription
dataQueue[]
nextCursorstring | nullThe cursor for the next page; null on the last.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
429rate_limited
500internal

Create a queue ​

POST /v1/queues

A slug unique within the application, a strategy (default fair_share) and its settings. voicemail overflow is refused until the platform records calls. Audited.

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Request body application/json

FieldTypeDescription
strategy?stringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
ringTimeoutSec?integer5–120. Default 30.
redirectDelayMs?integer0–60000. Default 2000.
maxAttempts?integer1–100. Default 20.
maxWaitSec?integer10–3600. Default 300.
overflowAction?stringvoicemail is in the schema and refused until the platform records calls. One of fail, webhook, push_offline_agents.
settings?QueueSettings
slugstringMatches ^[a-z0-9][a-z0-9_-]{0,62}$.

Response 201 — The queue.

FieldTypeDescription
idstring (uuid)
slugstring
strategystringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
ringTimeoutSecinteger
redirectDelayMsinteger
maxAttemptsinteger
maxWaitSecinteger
overflowActionstringvoicemail is in the schema and refused until the platform records calls. One of fail, webhook, push_offline_agents.
settingsQueueSettings
createdAtstring (date-time)
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
409conflict, room_full, room_closed, duplicate_identity, already_answered
413payload_too_large
429rate_limited
500internal

Read a queue ​

GET /v1/queues/{id}

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Response 200 — The queue.

FieldTypeDescription
idstring (uuid)
slugstring
strategystringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
ringTimeoutSecinteger
redirectDelayMsinteger
maxAttemptsinteger
maxWaitSecinteger
overflowActionstringvoicemail is in the schema and refused until the platform records calls. One of fail, webhook, push_offline_agents.
settingsQueueSettings
createdAtstring (date-time)
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Change a queue's strategy, timings or overflow ​

PATCH /v1/queues/{id}

Applies from each entry's next attempt, waiting entries included. settings, when given, replaces the settings whole. Audited: before and after.

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Request body application/json

FieldTypeDescription
strategy?stringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
ringTimeoutSec?integer5–120. Default 30.
redirectDelayMs?integer0–60000. Default 2000.
maxAttempts?integer1–100. Default 20.
maxWaitSec?integer10–3600. Default 300.
overflowAction?stringvoicemail is in the schema and refused until the platform records calls. One of fail, webhook, push_offline_agents.
settings?QueueSettings

Response 200 — The queue, as it now stands.

FieldTypeDescription
idstring (uuid)
slugstring
strategystringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
ringTimeoutSecinteger
redirectDelayMsinteger
maxAttemptsinteger
maxWaitSecinteger
overflowActionstringvoicemail is in the schema and refused until the platform records calls. One of fail, webhook, push_offline_agents.
settingsQueueSettings
createdAtstring (date-time)
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
413payload_too_large
429rate_limited
500internal

Remove a queue, its members and its line ​

DELETE /v1/queues/{id}

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Response 204 — Removed.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

List members, by identity ​

GET /v1/queues/{id}/members

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
limit?queryinteger1–100. Default 20.
cursor?querystringThe nextCursor of the previous page. 1–512 characters.

Response 200 — A page of members.

FieldTypeDescription
dataQueueMember[]
nextCursorstring | nullThe cursor for the next page; null on the last.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Add a member ​

POST /v1/queues/{id}/members

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Request body application/json

FieldTypeDescription
skills?string[]At most 32 items.
priority?integer0–100. Default 0.
pausedUntil?string (date-time) | null
identitystring1–200 characters.

Response 201 — The member.

FieldTypeDescription
identitystring
skillsstring[]
priorityintegerLower is preferred.
pausedUntilstring (date-time) | null
createdAtstring (date-time)
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
409conflict, room_full, room_closed, duplicate_identity, already_answered
413payload_too_large
429rate_limited
500internal

Pause, resume, re-skill or re-tier a member ​

PATCH /v1/queues/{id}/members/{identity}

pausedUntil pauses until then; null resumes. A paused member is never offered a call.

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.

Request body application/json

FieldTypeDescription
skills?string[]At most 32 items.
priority?integer0–100. Default 0.
pausedUntil?string (date-time) | null

Response 200 — The member, as it now stands.

FieldTypeDescription
identitystring
skillsstring[]
priorityintegerLower is preferred.
pausedUntilstring (date-time) | null
createdAtstring (date-time)
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
413payload_too_large
429rate_limited
500internal

Remove a member ​

DELETE /v1/queues/{id}/members/{identity}

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.

Response 204 — Removed.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

The line, oldest first, and what became of each entry ​

GET /v1/queues/{id}/entries

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
limit?queryinteger1–100. Default 20.
cursor?querystringThe nextCursor of the previous page. 1–512 characters.
state?querystringOne of waiting, assigned, abandoned, overflowed, no_agents.

Response 200 — A page of entries.

FieldTypeDescription
dataQueueEntry[]
nextCursorstring | nullThe cursor for the next page; null on the last.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

The line now, and how today’s entries ended (UTC) ​

GET /v1/queues/{id}/stats

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Response 200 — The statistics.

FieldTypeDescription
waitinginteger
oldestWaitingSincestring (date-time) | null
membersinteger
onlineinteger
eligibleNowintegerMembers a call could be offered to now.
todayobject
  today.assignedinteger
  today.abandonedinteger
  today.unansweredintegerEnded with nobody eligible, or the loop spent.
  today.averageWaitSecnumber | null

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Rank the members for a caller, offering nothing ​

GET /v1/queues/{id}/simulate

Runs the live selection on live inputs: every eligible member with its score broken down by factor, every excluded one with the rule that excluded it.

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
callerquerystringThe identity placing the call. 1–200 characters.
skills?querystringComma-separated skills the call requires. At most 2048 characters.

Response 200 — The ranking a call would get now.

FieldTypeDescription
queueIdstring (uuid)
strategystringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
callerstring
requiredSkillsstring[]
atstring (date-time)
decisionobject
  decision.kindstringOne of offer, overflow, exhausted.
  decision.agent?string
  decision.action?string
  decision.reason?string
rankedobject[]
  ranked[].positioninteger
  ranked[].identitystring
  ranked[].scorenumberLowest wins.
  ranked[].factorsobject
excludedobject[]
  excluded[].identitystring
  excluded[].reasonstringOne of self, paused, offline, unavailable, busy, tried, skill_mismatch, not_pinned.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Why one member scored what it did for a caller ​

GET /v1/queues/{id}/explain

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
callerquerystringThe identity placing the call. 1–200 characters.
skills?querystringComma-separated skills the call requires. At most 2048 characters.
agentquerystring1–200 characters.

Response 200 — The member’s place and the inputs behind it.

FieldTypeDescription
queueIdstring (uuid)
strategystringOne of fair_share, round_robin, longest_idle, least_busy, skill_priority, pinned.
callerstring
agentstring
atstring (date-time)
eligibleboolean
excludedBystring | nullOne of self, paused, offline, unavailable, busy, tried, skill_mismatch, not_pinned.
positioninteger | null
ofintegerHow many members are eligible.
scorenumber | null
factorsobject | null
inputsobject
  inputs.onlineboolean
  inputs.availabilitystringWhat the person chose. Presence is what the platform sees. One of available, away, dnd.
  inputs.activeCallsinteger
  inputs.pausedUntilstring (date-time) | null
  inputs.skillsstring[]
  inputs.priorityinteger
  inputs.lastAssignedAtstring (date-time) | null
  inputs.completedTodayinteger
  inputs.rejectedCallerTodayboolean

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Talkline documentation