Call Transcriptions API
This API allows you to retrieve AI-generated call transcriptions and summaries for calls associated with your account. Results are returned using cursor-based pagination.
Base URL https://api.cytracom.net/v1.0/insights/transcriptions
API Endpoint
| VERB | URL PATH | ABOUT |
|---|---|---|
| GET | /insights/transcriptions | Retrieve call transcriptions and summaries |
Retrieve Call Transcriptions
/insights/transcriptions
Returns transcription records within a specified date range. Results are paginated and can be retrieved using the cursor returned in the previous response.
The following query parameters are supported:
| Field | Description | Mandatory |
|---|---|---|
| from_date | Start of the date range. Supports ISO-8601 format (2026-06-04T00:00:00Z) or Unix timestamp (seconds or milliseconds). | Yes |
| to_date | End of the date range. Must be after from_date and cannot be in the future. | Yes |
| page_size | Number of records returned per page. Default: 50. Maximum: 100. | No |
| cursor | Pagination cursor returned by the previous response. Omit on the first request. | No |
Date Range Limits
| Rule | Limit |
|---|---|
| Maximum date range | 1 day |
| Historical lookback | 90 days |
| Future dates | Not allowed |
| Page size | 1–100 |
If you need data spanning multiple days, make separate requests for each day.
Example cURL Request (First Page)
curl --request GET \ --url 'https://api.cytracom.net/v1.0/insights/transcriptions?from_date=2026-06-04T00:00:00Z&to_date=2026-06-04T23:59:59Z&page_size=2' \ --user token:<<YOUR-TOKEN>>
Example JSON Response
{
"code": 200,
"data": {
"page_size": 2,
"next_cursor": "eyJzYSI6WzE3NDk0NzgyMDAwMDAsIjE3NDk0NzgyMDAuMTIzNDU2Il19",
"transcriptions": [
{
"linked_id": "1749478200.123456",
"start_time": "2026-06-04T10:15:00Z",
"created_at": "2026-06-04T10:20:00Z",
"transcript": "Agent: Thank you for calling...",
"summary": "Customer requested billing assistance.",
"duration_seconds": 184,
"status": "completed",
"sentiment": "positive",
"caller": "+15125550100",
"callee": "+15125550200",
"labels": {
"queue": "support"
},
"has_transcription": true
}
]
}
}
Retrieve Next Page
If the response contains a value in next_cursor, use that value in the next request to retrieve additional records.
Example cURL Request (Next Page)
curl --request GET \ --url 'https://api.cytracom.net/v1.0/insights/transcriptions?from_date=2026-06-04T00:00:00Z&to_date=2026-06-04T23:59:59Z&page_size=2&cursor=eyJzYSI6WzE3NDk0NzgyMDAwMDAsIjE3NDk0NzgyMDAuMTIzNDU2Il19' \ --user token:<<YOUR-TOKEN>>
Continue requesting pages until next_cursor is null.
Response Fields
| Field | Description |
|---|---|
| page_size | Number of records returned in the response. |
| next_cursor | Cursor used to retrieve the next page. Null indicates no additional results. |
| transcriptions | Array of transcription records. |
| linked_id | Unique identifier for the call. |
| start_time | Call start time. |
| created_at | Time the transcription record was created. |
| transcript | Full transcript text. |
| summary | AI-generated summary. |
| duration_seconds | Duration of the call in seconds. |
| status | Transcription processing status. |
| sentiment | Sentiment classification. |
| caller | Calling party number. |
| callee | Called party number. |
| labels | Custom metadata associated with the call. |
| has_transcription | Indicates whether transcript text is available. |
Error Responses
All errors return a JSON response containing a code, error_code, and message.
Example:
{
"code": 400,
"error_code": "invalid_date_range",
"msg": "from_date must be before to_date"
}
Common Error Codes
| HTTP Code | Error Code | Description |
|---|---|---|
| 400 | missing_from_date | from_date is required. |
| 400 | missing_to_date | to_date is required. |
| 400 | invalid_from_date | Invalid from_date value. |
| 400 | invalid_to_date | Invalid to_date value. |
| 400 | invalid_date_range | from_date must be before to_date. |
| 400 | to_date_in_future | to_date cannot be in the future. |
| 400 | window_too_large | Date range exceeds 1 day. |
| 400 | retention_exceeded | Requested data exceeds the 90-day retention window. |
| 400 | invalid_page_size | page_size must be between 1 and 100. |
| 400 | bad_cursor | Cursor is malformed. |
| 401 | — | Authentication required. |
| 403 | — | Invalid or expired token. |
| 500 | — | Internal server error. |
Notes
- Only calls with available transcription data are returned.
- Calls without transcription data are omitted from the results.
- Keep from_date, to_date, and page_size the same while paging through results.
- Treat cursor values as opaque and do not modify them.
- Pagination only moves forward.
- Use error_code rather than msg when handling errors programmatically.