curl "https://api.tracklysms.com/api/v1/voice/calls?status=active&limit=50" \
-H "X-Api-Key: trk_your_api_key_here"
{
"calls": [
{
"id": "665f1e2a9c4b1a0012ab34cd",
"direction": "outbound",
"state": "established",
"legKind": "primary",
"from": "+18005551234",
"to": "+14155551234",
"connectTo": "+14155559876",
"queueId": null,
"conferenceId": "665f1e2a9c4b1a0012ab34ce",
"parentCallId": null,
"bridgedCallId": "665f1e2a9c4b1a0012ab34cf",
"monitorRole": null,
"record": true,
"recordingState": "started",
"recordingFileIds": [],
"customData": { "caseId": "abc-123" },
"error": null,
"startedAt": "2026-08-21T18:00:00.000000Z",
"answeredAt": "2026-08-21T18:00:12.000000Z",
"endedAt": null,
"createdAt": "2026-08-21T18:00:00.000000Z"
}
]
}
Voice Calls (v1)
List Calls
List your voice calls newest-first, filterable by status and queue.
GET
/
v1
/
voice
/
calls
curl "https://api.tracklysms.com/api/v1/voice/calls?status=active&limit=50" \
-H "X-Api-Key: trk_your_api_key_here"
{
"calls": [
{
"id": "665f1e2a9c4b1a0012ab34cd",
"direction": "outbound",
"state": "established",
"legKind": "primary",
"from": "+18005551234",
"to": "+14155551234",
"connectTo": "+14155559876",
"queueId": null,
"conferenceId": "665f1e2a9c4b1a0012ab34ce",
"parentCallId": null,
"bridgedCallId": "665f1e2a9c4b1a0012ab34cf",
"monitorRole": null,
"record": true,
"recordingState": "started",
"recordingFileIds": [],
"customData": { "caseId": "abc-123" },
"error": null,
"startedAt": "2026-08-21T18:00:00.000000Z",
"answeredAt": "2026-08-21T18:00:12.000000Z",
"endedAt": null,
"createdAt": "2026-08-21T18:00:00.000000Z"
}
]
}
Returns your account’s voice calls, most recent first. Filter by lifecycle status or queue, and page through results with the cursor returned on each response.
Requires the
voice_calls.read scope and the Voice Calls product entitlement.
Query Parameters
string
Filter by lifecycle state. Pass
active for all non-terminal calls, or a specific state (e.g. established). See Call states.string
Return only calls associated with this queue id.
string
A pagination cursor. Pass the
nextCursor from the previous response to fetch the next page.integer
default:50
Maximum number of calls to return. Maximum
100.Response Fields
array
The matching calls, newest first.
Hide Call properties
Hide Call properties
string
The call’s unique identifier.
string
inbound or outbound.string
Lifecycle state. See Call states.
string
primary, bridge, or monitor.string
The calling number.
string
The destination number.
string | null
The resolved bridge target, if any.
string | null
The queue this call is parked in, if any.
string | null
The provider conference id once a bridge or monitor leg is attached.
string | null
For a bridge/monitor leg, the primary call it belongs to.
string | null
For a primary call, the currently bridged agent leg.
string | null
MONITOR or ADVISOR for a monitor leg.boolean
Whether recording was requested.
string | null
requested, started, stopped, ready, failed, or deleted.array
Provider file ids for completed recordings.
object
The metadata attached to the call.
string | null
A machine-readable reason when the call failed.
string | null
ISO 8601 timestamp when the call started.
string | null
ISO 8601 timestamp when the call was answered.
string | null
ISO 8601 timestamp when the call ended.
string | null
ISO 8601 timestamp when the record was created.
string
Returned whenever the page is full (the number of results equals
limit), indicating there may be more. Pass it back as the cursor query parameter to fetch the next page; a page that comes back with fewer results than limit (or empty) is the end.Examples
curl "https://api.tracklysms.com/api/v1/voice/calls?status=active&limit=50" \
-H "X-Api-Key: trk_your_api_key_here"
{
"calls": [
{
"id": "665f1e2a9c4b1a0012ab34cd",
"direction": "outbound",
"state": "established",
"legKind": "primary",
"from": "+18005551234",
"to": "+14155551234",
"connectTo": "+14155559876",
"queueId": null,
"conferenceId": "665f1e2a9c4b1a0012ab34ce",
"parentCallId": null,
"bridgedCallId": "665f1e2a9c4b1a0012ab34cf",
"monitorRole": null,
"record": true,
"recordingState": "started",
"recordingFileIds": [],
"customData": { "caseId": "abc-123" },
"error": null,
"startedAt": "2026-08-21T18:00:00.000000Z",
"answeredAt": "2026-08-21T18:00:12.000000Z",
"endedAt": null,
"createdAt": "2026-08-21T18:00:00.000000Z"
}
]
}
Error Codes
| Status | Code | Meaning |
|---|---|---|
| 422 | invalid_status | The status value is not active or a known call state. |
| 422 | invalid_queue | queue is not a valid queue id. |
| 422 | invalid_cursor | cursor is not a valid pagination cursor. |
| 403 | voice_not_entitled | Voice calling is not enabled for your account. |