List call logs
Returns the phone system’s call logs, newest first (ordered by createdAt descending with id as the tiebreak, so paging is deterministic). Filter by an inclusive createdAt window (dateFrom/dateTo) or by the exact callSid delivered in a call webhook — the follow-up fetch for webhook consumers. Requires the calls scope.
GET
/customer/phone-systems/{phoneSystemId}/call-logsAuthorization
X-API-KeyAPI key · headerrequiredAPI key (sk_phones_* prefix) for programmatic access
Path parameters
phoneSystemIdstring<uuid>requiredPhone system identifier, discoverable via the accessible phone systems operation.
Query parameters
pageinteger1-indexed page number.
min 1 · default: 1
pageSizeintegerRows per page; at most 100.
min 1 · max 100 · default: 25
dateFromstring<date-time>Inclusive lower bound (ISO 8601 UTC) on the row creation time.
dateTostring<date-time>Inclusive upper bound (ISO 8601 UTC) on the row creation time.
callSidstringExact-match filter on the call identifier from a webhook payload.
min length 1 · max length 64
Responses
200One page of call logs with the total row count for the filter.
dataobject[]requiredShow propertiesHide properties
Array of
objectcallSidstringrequiredCall identifier, as delivered in webhook payloads.
createdAtstring<date-time>requiredWhen the row was created; lists are ordered by this, descending.
directionstringrequiredCall direction.
Allowed:
inboundoutboundinternaldurationinteger | anyrequiredCall duration in seconds.
Show propertiesHide properties
Any of:
integer
integerany
anyendTimestring<date-time> | anyrequiredWhen the call ended.
Show propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anyfromstringrequiredCalling party.
fromNamestring | anyrequiredCaller name, when known.
Show propertiesHide properties
Any of:
string
stringany
anyidstring<uuid>requiredCall log identifier — the callLogId carried by webhook payloads.
outcomestring | anyrequiredCall outcome (answered, missed, abandoned, voicemail, transferred, …).
Show propertiesHide properties
Any of:
string
stringany
anyparentCallSidstring | anyrequiredParent call identifier when this row is a transferred or forwarded leg.
Show propertiesHide properties
Any of:
string
stringany
anyphoneSystemIdstring<uuid>requiredPhone system this call belongs to.
recordingDurationinteger | anyrequiredRecording duration in seconds.
Show propertiesHide properties
Any of:
integer
integerany
anyrecordingSidstring | anyrequiredRecording identifier when the call was recorded — fetch via the recordings operations.
Show propertiesHide properties
Any of:
string
stringany
anystartTimestring<date-time> | anyrequiredWhen the call started.
Show propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anystatusstringrequiredCall status (completed, no-answer, busy, failed, canceled).
tostringrequiredCalled party.
pageintegerrequiredmin 1
pageSizeintegerrequiredmin 1 · max 100
totalintegerrequiredmin 0
totalPagesintegerrequiredmin 0
400Validation failure: an unknown query parameter, a malformed date, or a pageSize above 100. Field problems are itemized in errors[].
codestringrequiredStable machine identifier to branch on.
correlationIdstringrequiredRequest identifier to quote to support.
detailstringrequiredUser-safe explanation. Display it if you must; never match on it.
errorsobject[]Field-level validation problems. Present on validation failures.
Show propertiesHide properties
Array of
objectcodestringrequiredPer-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequiredHuman-readable description of the field problem.
pointerstringrequiredJSON Pointer to the offending request field.
paramsobjectExtra primitive detail about the condition, such as a limit that was hit.
retry_afterintegerSeconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequiredWhether this condition is transient. Derived from code.
statusintegerrequiredMirrors the HTTP status code.
titlestringrequiredShort human summary of the problem type.
typestringrequiredURL identifying the problem type. An identifier to match, not a link.
401The API key is missing, malformed, expired, or revoked.
codestringrequiredStable machine identifier to branch on.
correlationIdstringrequiredRequest identifier to quote to support.
detailstringrequiredUser-safe explanation. Display it if you must; never match on it.
errorsobject[]Field-level validation problems. Present on validation failures.
Show propertiesHide properties
Array of
objectcodestringrequiredPer-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequiredHuman-readable description of the field problem.
pointerstringrequiredJSON Pointer to the offending request field.
paramsobjectExtra primitive detail about the condition, such as a limit that was hit.
retry_afterintegerSeconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequiredWhether this condition is transient. Derived from code.
statusintegerrequiredMirrors the HTTP status code.
titlestringrequiredShort human summary of the problem type.
typestringrequiredURL identifying the problem type. An identifier to match, not a link.
403The key lacks the calls:read scope, or is not a tenant API key.
codestringrequiredStable machine identifier to branch on.
correlationIdstringrequiredRequest identifier to quote to support.
detailstringrequiredUser-safe explanation. Display it if you must; never match on it.
errorsobject[]Field-level validation problems. Present on validation failures.
Show propertiesHide properties
Array of
objectcodestringrequiredPer-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequiredHuman-readable description of the field problem.
pointerstringrequiredJSON Pointer to the offending request field.
paramsobjectExtra primitive detail about the condition, such as a limit that was hit.
retry_afterintegerSeconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequiredWhether this condition is transient. Derived from code.
statusintegerrequiredMirrors the HTTP status code.
titlestringrequiredShort human summary of the problem type.
typestringrequiredURL identifying the problem type. An identifier to match, not a link.
404The phone system does not exist or is not covered by the key.
codestringrequiredStable machine identifier to branch on.
correlationIdstringrequiredRequest identifier to quote to support.
detailstringrequiredUser-safe explanation. Display it if you must; never match on it.
errorsobject[]Field-level validation problems. Present on validation failures.
Show propertiesHide properties
Array of
objectcodestringrequiredPer-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequiredHuman-readable description of the field problem.
pointerstringrequiredJSON Pointer to the offending request field.
paramsobjectExtra primitive detail about the condition, such as a limit that was hit.
retry_afterintegerSeconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequiredWhether this condition is transient. Derived from code.
statusintegerrequiredMirrors the HTTP status code.
titlestringrequiredShort human summary of the problem type.
typestringrequiredURL identifying the problem type. An identifier to match, not a link.
Request
curl -X GET "https://api.steerphones.com/v1/customer/phone-systems/%3Cuuid%3E/call-logs" \
-H "X-API-Key: YOUR_API_KEY"Response
{
"data": [
{
"callSid": "string",
"createdAt": "2024-01-01T00:00:00Z",
"direction": "inbound",
"duration": 0,
"endTime": "2024-01-01T00:00:00Z",
"from": "string",
"fromName": "string",
"id": "<uuid>",
"outcome": "string",
"parentCallSid": "string",
"phoneSystemId": "<uuid>",
"recordingDuration": 0,
"recordingSid": "string",
"startTime": "2024-01-01T00:00:00Z",
"status": "string",
"to": "string"
}
],
"page": 0,
"pageSize": 0,
"total": 0,
"totalPages": 0
}{
"code": "string",
"correlationId": "string",
"detail": "string",
"errors": [
{
"code": "string",
"detail": "string",
"pointer": "string"
}
],
"params": {},
"retry_after": 0,
"retryable": true,
"status": 0,
"title": "string",
"type": "string"
}{
"code": "string",
"correlationId": "string",
"detail": "string",
"errors": [
{
"code": "string",
"detail": "string",
"pointer": "string"
}
],
"params": {},
"retry_after": 0,
"retryable": true,
"status": 0,
"title": "string",
"type": "string"
}{
"code": "string",
"correlationId": "string",
"detail": "string",
"errors": [
{
"code": "string",
"detail": "string",
"pointer": "string"
}
],
"params": {},
"retry_after": 0,
"retryable": true,
"status": 0,
"title": "string",
"type": "string"
}{
"code": "string",
"correlationId": "string",
"detail": "string",
"errors": [
{
"code": "string",
"detail": "string",
"pointer": "string"
}
],
"params": {},
"retry_after": 0,
"retryable": true,
"status": 0,
"title": "string",
"type": "string"
}