Call summaries¶
Use an API key or REST OAuth access token. Scopes and your current workspace permissions apply together. All examples are illustrative.
List stored call summaries¶
Scope: call-summaries:read
Reads stored call summaries for a time range.
- Selects by call start:
frominclusive,toexclusive. Include a timezone in both bounds. - Fetch every page. Results contain stored nonblank summaries and redacted records.
- Redacted entries have
nullsummary and phone numbers. No transcripts or newly generated summaries are returned.
An empty result does not prove there were no calls.
Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
from |
Query | string (date-time) |
Yes | Inclusive call-start bound with timezone. Example: 2026-11-02T00:00:00+01:00 |
to |
Query | string (date-time) |
Yes | Exclusive call-start bound with timezone; must be after from. Example: 2026-11-03T00:00:00+01:00 |
page |
Query | integer (int32) |
No | Page index, starting at 0. Rules: 0–100000Default: 0 |
size |
Query | integer (int32) |
No | Results per page. Rules: 1–100Default: 25 |
Response 200
Success.
| Header | Type | Description |
|---|---|---|
Cache-Control |
string |
The response must not be cached. Example: no-store |
application/json
| Field | Type | Description |
|---|---|---|
items |
List of object |
Results on this page. |
page |
integer (int32) |
Current page index, starting at 0. |
size |
integer (int32) |
Number of results requested per page. |
totalElements |
integer (int64) |
Total number of matching results. |
totalPages |
integer (int32) |
Total number of result pages. |
items — fields
| Field | Type | Description |
|---|---|---|
callRecordId |
string (uuid) |
ID of the call record. |
fromNumber |
string |
Stored caller number; null when redacted. |
toNumber |
string |
Stored destination number; null when redacted. |
startTime |
string (date-time) |
Start time of the call. |
endTime |
string (date-time) |
Call end time; null if the call has not ended. |
durationSeconds |
integer (int64) |
Call duration in seconds; null if it is not yet available. |
direction |
string |
Direction of the call. |
purpose |
string |
Purpose assigned to the call. Values: INBOUND_AI, OUTBOUND_CAMPAIGN, FORWARDING_LEG, SCREENING_LEG |
isForwarded |
boolean |
Whether the call was forwarded. |
isConferenceCall |
boolean |
Whether the call used a conference. |
excludedFromBilling |
boolean |
Whether this call is excluded from billing. |
piiRedacted |
boolean |
Whether personal call data was redacted. |
summary |
string |
Stored call summary; null when redacted. |
{
"items": [
{
"callRecordId": "00000000-0000-0000-0000-000000000001",
"fromNumber": null,
"toNumber": null,
"startTime": "2026-11-02T09:00:00Z",
"endTime": "2026-11-02T09:03:00Z",
"durationSeconds": 180,
"direction": "string",
"purpose": "INBOUND_AI",
"isForwarded": false,
"isConferenceCall": false,
"excludedFromBilling": false,
"piiRedacted": false,
"summary": "The caller requested a callback about a service appointment."
}
],
"page": 0,
"size": 25,
"totalElements": 1,
"totalPages": 1
}
Error responses
| Status | Meaning |
|---|---|
400 |
Invalid input, unsupported selection or time range. |
401 |
Missing, expired or invalid credential. The body may be empty. |
403 |
Required scope or current user permission missing. The body may be empty. |
429 |
Shared workspace budget exceeded. Honor Retry-After; do not blindly replay uncertain writes. |
503 |
Temporarily unavailable. Check uncertain writes before retrying. |
Error body
| Field | Type | Description |
|---|---|---|
status |
integer |
HTTP status code. |
error |
string |
Description of the error. |
details |
any |
Additional error details, when available. Rules: null allowed |
code |
string |
Machine-readable error code. |
params |
object |
Additional values associated with the error code. |
fieldErrors |
object |
Validation errors grouped by input field. |
For 429 or 503, honor the Retry-After header (seconds). Check uncertain writes before retrying.