Skip to content
Esc
↑↓navigate↵open⌘Jpreview

List call log reports

Returns the enriched reporting representation of the phone system’s calls across one bounded time window — the values a recurring export needs, without a detail request per call. Select the window with timeField (createdAt for historical extraction, updatedAt to pick up changed rows) plus the required half-open [dateFrom, dateTo) bounds. Rows are ordered ascending by the selected timestamp then by id; traverse by sending nextCursor back unchanged until hasMore is false. The cursor is opaque, is valid only for the same phone system, time field, and window, and carries no authorization — every page is reauthorized. limit and includeTranscripts are per-request delivery controls and may change on a continuation. Rows carry stable IDs and codes alongside the display values they currently resolve to; refresh renamed values through the dimensions operation. Recording audio and signed media URLs are not included — they remain governed by recordings. Requires a tenant-wide calls grant.

GET/customer/phone-systems/{phoneSystemId}/call-log-reports
Authorization
X-API-KeyAPI key · headerrequired
API key (sk_phones_* prefix) for programmatic access
Path parameters
phoneSystemIdstring<uuid>required
Phone system identifier, discoverable via the accessible phone systems operation.
Query parameters
timeFieldstring
Which timestamp the window filters and orders by: createdAt for historical extraction, updatedAt to pick up changed rows.
default: "createdAt"
Allowed:createdAtupdatedAt
dateFromstring<date-time>required
Inclusive lower bound of the window (ISO 8601 UTC). Required.
dateTostring<date-time>required
Exclusive upper bound of the window (ISO 8601 UTC). Required.
limitinteger
Rows to return: at most 100, or 25 when transcripts are included.
min 1 · max 100 · default: 25
includeTranscriptsstring
Include transcript text and turns. Omitted entirely when false, so a metadata page never reads a transcript body.
default: "false"
Allowed:truefalse
cursorstring
Continuation token from a previous response’s nextCursor.
min length 1 · max length 512
Responses
200One page of report rows plus the continuation token for the rest of the window.
dataobject[]required
One page of report rows.
Show properties
Array of object
answeredByExtensionobject | anyrequired
Extension that answered the call.
Show properties
Any of:
object
idstring<uuid>required
Stable identifier; join report rows on this, not on the name.
namestringrequired
Current display name, as of this response.
numberstring | anyrequired
Dialable number, when the resource has one.
Show properties
Any of:
string
string
any
any
any
any
callGroupobject | anyrequired
Call group the call was routed through.
Show properties
Any of:
object
idstring<uuid>required
Stable identifier; join report rows on this, not on the name.
namestringrequired
Current display name, as of this response.
numberstring | anyrequired
Dialable number, when the resource has one.
Show properties
Any of:
string
string
any
any
any
any
callOutcomeCodestring | anyrequired
Stable business outcome code, when recorded.
Show properties
Any of:
string
string
any
any
callSidstringrequired
Call identifier, as delivered in webhook payloads.
categoryobjectrequired
Call category code and its current label.
Show properties
codestring | anyrequired
Stable category code; null when the call was not analyzed.
Show properties
Any of:
string
string
any
any
labelstring | anyrequired
Current display label for the code, resolved for this phone system.
Show properties
Any of:
string
string
any
any
conversionValuestring | anyrequired
Conversion amount as an exact decimal string, so no precision is lost in JSON.
Show properties
Any of:
string
string
any
any
createdAtstring<date-time>required
When the call log row was created.
customerSentimentobjectrequired
Customer sentiment code, label, and score.
Show properties
codestring | anyrequired
Stable sentiment code; null when the call was not analyzed.
Show properties
Any of:
string
string
any
any
labelstring | anyrequired
Current display label for the code, resolved for this phone system.
Show properties
Any of:
string
string
any
any
scorenumber | anyrequired
Score recorded when the call was analyzed.
Show properties
Any of:
number
number
any
any
directionstringrequired
Call direction.
Allowed:inboundoutboundinternal
durationSecondsinteger | anyrequired
Call duration in seconds.
Show properties
Any of:
integer
integer
any
any
employeeSentimentobjectrequired
Employee sentiment code, label, and score.
Show properties
codestring | anyrequired
Stable sentiment code; null when the call was not analyzed.
Show properties
Any of:
string
string
any
any
labelstring | anyrequired
Current display label for the code, resolved for this phone system.
Show properties
Any of:
string
string
any
any
scorenumber | anyrequired
Score recorded when the call was analyzed.
Show properties
Any of:
number
number
any
any
endTimestring<date-time> | anyrequired
When the call ended.
Show properties
Any of:
string<date-time>
string<date-time>
any
any
forwardedFromstring | anyrequired
Number the call was forwarded from, when known.
Show properties
Any of:
string
string
any
any
fromstringrequired
Calling party.
fromDisplaystring | anyrequired
Stored display form of the calling party.
Show properties
Any of:
string
string
any
any
fromExtensionobject | anyrequired
Extension the call originated from.
Show properties
Any of:
object
idstring<uuid>required
Stable identifier; join report rows on this, not on the name.
namestringrequired
Current display name, as of this response.
numberstring | anyrequired
Dialable number, when the resource has one.
Show properties
Any of:
string
string
any
any
any
any
fromNamestring | anyrequired
Caller name, when known.
Show properties
Any of:
string
string
any
any
fromNumberstring | anyrequired
Stored dialable form of the calling party.
Show properties
Any of:
string
string
any
any
hasRecordingbooleanrequired
Whether a recording exists for this call.
idstring<uuid>required
Call log identifier — the callLogId carried by webhook payloads.
isConvertedboolean | anyrequired
Whether the call was marked converted.
Show properties
Any of:
boolean
boolean
any
any
isEditedbooleanrequired
Whether the call log has been edited.
isEmergencybooleanrequired
Whether the call was an emergency call.
outcomestring | anyrequired
Call outcome (answered, missed, abandoned, voicemail, transferred, …).
Show properties
Any of:
string
string
any
any
outcomeSourcestring | anyrequired
What recorded the outcome.
Show properties
Any of:
string
string
any
any
overallSentimentobjectrequired
Overall sentiment code, label, and score.
Show properties
codestring | anyrequired
Stable sentiment code; null when the call was not analyzed.
Show properties
Any of:
string
string
any
any
labelstring | anyrequired
Current display label for the code, resolved for this phone system.
Show properties
Any of:
string
string
any
any
scorenumber | anyrequired
Score recorded when the call was analyzed.
Show properties
Any of:
number
number
any
any
parentCallSidstring | anyrequired
Parent call identifier when this row is a transferred or forwarded leg.
Show properties
Any of:
string
string
any
any
phoneSystemIdstring<uuid>required
Phone system this call belongs to.
recordingDurationSecondsinteger | anyrequired
Recording duration in seconds.
Show properties
Any of:
integer
integer
any
any
recordingSidstring | anyrequired
Recording identifier — audio is fetched through the recordings operations.
Show properties
Any of:
string
string
any
any
representativeobjectrequired
Representative attribution for the call.
Show properties
confidencenumber | anyrequired
Attribution confidence, when attribution ran.
Show properties
Any of:
number
number
any
any
idstring<uuid> | anyrequired
Attributed representative, when one was identified.
Show properties
Any of:
string<uuid>
string<uuid>
any
any
namestring | anyrequired
Current display name of the attributed representative.
Show properties
Any of:
string
string
any
any
sourcestring | anyrequired
What produced the attribution.
Show properties
Any of:
string
string
any
any
statestringrequired
identified when a representative was attributed, unknown when attribution ran and matched no one, not_analyzed when attribution never ran.
Allowed:identifiedunknownnot_analyzed
routeSummarystring | anyrequired
Stored summary of the path the call took.
Show properties
Any of:
string
string
any
any
scorecardScorenumber | anyrequired
Scorecard score, when the call was scored.
Show properties
Any of:
number
number
any
any
sentimentSourcestring | anyrequired
What produced the sentiment values.
Show properties
Any of:
string
string
any
any
startTimestring<date-time> | anyrequired
When the call started.
Show properties
Any of:
string<date-time>
string<date-time>
any
any
statusstringrequired
Call status (completed, no-answer, busy, failed, canceled).
tagsobject[]required
Tags as they were applied to this call.
Show properties
Array of object
colorstring | anyrequired
Tag color as it was when the tag was applied.
Show properties
Any of:
string
string
any
any
confidencenumber | anyrequired
Confidence, for an automatically applied tag.
Show properties
Any of:
number
number
any
any
groupstringrequired
Tag group as it was when the tag was applied.
idstring<uuid>required
Stable tag identifier; join on this rather than on the name.
namestringrequired
Tag name as it was when the tag was applied.
sourcestringrequired
What applied the tag.
tostringrequired
Called party.
toDisplaystring | anyrequired
Stored display form of the called party.
Show properties
Any of:
string
string
any
any
toNumberstring | anyrequired
Stored dialable form of the called party.
Show properties
Any of:
string
string
any
any
transcriptobject | any
Present only when includeTranscripts=true, and null there when no transcript text is currently stored.
Show properties
Any of:
object
textstringrequired
Canonical transcript text.
turnsobject[]required
Diarized turns. Empty when the call has canonical text but no usable structured detail.
Show properties
Array of object
confidencenumber | anyrequired
Recognition confidence, when the provider reported one.
Show properties
Any of:
number
number
any
any
endSecondsnumber | anyrequired
Offset from the start of the call, in seconds, when the provider reported one.
Show properties
Any of:
number
number
any
any
speakerobjectrequired
Vendor-neutral speaker identity.
Show properties
One of:
object
kindstringrequired
rolestringrequired
The party this speaker was resolved to.
Allowed:agentcustomer
object
kindstringrequired
ordinalintegerrequired
1-based position in the transcript’s order of first appearance.
min 1
object
kindstringrequired
startSecondsnumber | anyrequired
Offset from the start of the call, in seconds, when the provider reported one.
Show properties
Any of:
number
number
any
any
textstringrequired
What was said in this turn.
any
any
transcriptionStatusstringrequired
Whether transcript text is retrievable right now: completed, processing (keep polling), failed, or unavailable.
Allowed:completedprocessingfailedunavailable
updatedAtstring<date-time>required
When the call log row last changed; the watermark an update-time window selects on.
hasMorebooleanrequired
Whether more rows remain in the requested window.
nextCursorstring | anyrequired
Opaque continuation token, or null at the end of the window. Send it back unchanged; its contents are not a supported contract and it is valid only for the same phone system, time field, and window.
Show properties
Any of:
string
string
any
any
400Validation failure: a missing or malformed window bound, dateTo at or before dateFrom, a limit above the applicable ceiling, an unknown query parameter, or a cursor that does not continue this request. Field problems are itemized in errors[].
codestringrequired
Stable machine identifier to branch on.
correlationIdstringrequired
Request identifier to quote to support.
detailstringrequired
User-safe explanation. Display it if you must; never match on it.
errorsobject[]
Field-level validation problems. Present on validation failures.
Show properties
Array of object
codestringrequired
Per-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequired
Human-readable description of the field problem.
pointerstringrequired
JSON Pointer to the offending request field.
paramsobject
Extra primitive detail about the condition, such as a limit that was hit.
retry_afterinteger
Seconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequired
Whether this condition is transient. Derived from code.
statusintegerrequired
Mirrors the HTTP status code.
titlestringrequired
Short human summary of the problem type.
typestringrequired
URL identifying the problem type. An identifier to match, not a link.
401The API key is missing, malformed, expired, or revoked.
codestringrequired
Stable machine identifier to branch on.
correlationIdstringrequired
Request identifier to quote to support.
detailstringrequired
User-safe explanation. Display it if you must; never match on it.
errorsobject[]
Field-level validation problems. Present on validation failures.
Show properties
Array of object
codestringrequired
Per-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequired
Human-readable description of the field problem.
pointerstringrequired
JSON Pointer to the offending request field.
paramsobject
Extra primitive detail about the condition, such as a limit that was hit.
retry_afterinteger
Seconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequired
Whether this condition is transient. Derived from code.
statusintegerrequired
Mirrors the HTTP status code.
titlestringrequired
Short human summary of the problem type.
typestringrequired
URL 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.
codestringrequired
Stable machine identifier to branch on.
correlationIdstringrequired
Request identifier to quote to support.
detailstringrequired
User-safe explanation. Display it if you must; never match on it.
errorsobject[]
Field-level validation problems. Present on validation failures.
Show properties
Array of object
codestringrequired
Per-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequired
Human-readable description of the field problem.
pointerstringrequired
JSON Pointer to the offending request field.
paramsobject
Extra primitive detail about the condition, such as a limit that was hit.
retry_afterinteger
Seconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequired
Whether this condition is transient. Derived from code.
statusintegerrequired
Mirrors the HTTP status code.
titlestringrequired
Short human summary of the problem type.
typestringrequired
URL identifying the problem type. An identifier to match, not a link.
404The phone system does not exist or is not covered by the key.
codestringrequired
Stable machine identifier to branch on.
correlationIdstringrequired
Request identifier to quote to support.
detailstringrequired
User-safe explanation. Display it if you must; never match on it.
errorsobject[]
Field-level validation problems. Present on validation failures.
Show properties
Array of object
codestringrequired
Per-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequired
Human-readable description of the field problem.
pointerstringrequired
JSON Pointer to the offending request field.
paramsobject
Extra primitive detail about the condition, such as a limit that was hit.
retry_afterinteger
Seconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequired
Whether this condition is transient. Derived from code.
statusintegerrequired
Mirrors the HTTP status code.
titlestringrequired
Short human summary of the problem type.
typestringrequired
URL identifying the problem type. An identifier to match, not a link.
413The page is too large to deliver. params carries the measured response size as actualBytes and maxBytes, or — when a transcript page was refused before its bodies were read — the stored measurement as guard, storedBytes, limitBytes, and rowCount. No rows are truncated in either case: retry with a smaller limit, or with includeTranscripts=false. A single transcript that overflows on its own cannot be delivered here, but retrying the same cursor without transcripts continues the traversal.
codestringrequired
Stable machine identifier to branch on.
correlationIdstringrequired
Request identifier to quote to support.
detailstringrequired
User-safe explanation. Display it if you must; never match on it.
errorsobject[]
Field-level validation problems. Present on validation failures.
Show properties
Array of object
codestringrequired
Per-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequired
Human-readable description of the field problem.
pointerstringrequired
JSON Pointer to the offending request field.
paramsobject
Extra primitive detail about the condition, such as a limit that was hit.
retry_afterinteger
Seconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequired
Whether this condition is transient. Derived from code.
statusintegerrequired
Mirrors the HTTP status code.
titlestringrequired
Short human summary of the problem type.
typestringrequired
URL identifying the problem type. An identifier to match, not a link.
429The per-key reporting request budget for this operation is exhausted, or the limiter could not be consulted. Retry after the interval in retry_after.
codestringrequired
Stable machine identifier to branch on.
correlationIdstringrequired
Request identifier to quote to support.
detailstringrequired
User-safe explanation. Display it if you must; never match on it.
errorsobject[]
Field-level validation problems. Present on validation failures.
Show properties
Array of object
codestringrequired
Per-field machine code (REQUIRED, TOO_SMALL, …).
detailstringrequired
Human-readable description of the field problem.
pointerstringrequired
JSON Pointer to the offending request field.
paramsobject
Extra primitive detail about the condition, such as a limit that was hit.
retry_afterinteger
Seconds to wait before retrying, when a meaningful delay exists.
retryablebooleanrequired
Whether this condition is transient. Derived from code.
statusintegerrequired
Mirrors the HTTP status code.
titlestringrequired
Short human summary of the problem type.
typestringrequired
URL 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-log-reports?dateFrom=2024-01-01T00%3A00%3A00Z&dateTo=2024-01-01T00%3A00%3A00Z" \
  -H "X-API-Key: YOUR_API_KEY"
Response
{
  "data": [
    {
      "answeredByExtension": {
        "id": "<uuid>",
        "name": "string",
        "number": "string"
      },
      "callGroup": {
        "id": "<uuid>",
        "name": "string",
        "number": "string"
      },
      "callOutcomeCode": "string",
      "callSid": "string",
      "category": {
        "code": "string",
        "label": "string"
      },
      "conversionValue": "string",
      "createdAt": "2024-01-01T00:00:00Z",
      "customerSentiment": {
        "code": "string",
        "label": "string",
        "score": 0
      },
      "direction": "inbound",
      "durationSeconds": 0,
      "employeeSentiment": {
        "code": "string",
        "label": "string",
        "score": 0
      },
      "endTime": "2024-01-01T00:00:00Z",
      "forwardedFrom": "string",
      "from": "string",
      "fromDisplay": "string",
      "fromExtension": {
        "id": "<uuid>",
        "name": "string",
        "number": "string"
      },
      "fromName": "string",
      "fromNumber": "string",
      "hasRecording": true,
      "id": "<uuid>",
      "isConverted": true,
      "isEdited": true,
      "isEmergency": true,
      "outcome": "string",
      "outcomeSource": "string",
      "overallSentiment": {
        "code": "string",
        "label": "string",
        "score": 0
      },
      "parentCallSid": "string",
      "phoneSystemId": "<uuid>",
      "recordingDurationSeconds": 0,
      "recordingSid": "string",
      "representative": {
        "confidence": 0,
        "id": "<uuid>",
        "name": "string",
        "source": "string",
        "state": "identified"
      },
      "routeSummary": "string",
      "scorecardScore": 0,
      "sentimentSource": "string",
      "startTime": "2024-01-01T00:00:00Z",
      "status": "string",
      "tags": [
        {
          "color": "string",
          "confidence": 0,
          "group": "string",
          "id": "<uuid>",
          "name": "string",
          "source": "string"
        }
      ],
      "to": "string",
      "toDisplay": "string",
      "toNumber": "string",
      "transcript": {
        "text": "string",
        "turns": [
          {
            "confidence": 0,
            "endSeconds": 0,
            "speaker": {
              "kind": "role",
              "role": "agent"
            },
            "startSeconds": 0,
            "text": "string"
          }
        ]
      },
      "transcriptionStatus": "completed",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "hasMore": true,
  "nextCursor": "string"
}