Stream recording media (target of a `proxied` URL)
curl --request GET \
--url https://{host}/api/projects/{projectId}/recordings/{recordingId}/media/content/{mediaToken}"<string>""<string>"{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "INVALID_RECORDING_MEDIA_TOKEN",
"message": "Invalid media token"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "RECORDING_NOT_READY",
"message": "Recording media is not ready"
}
}Stream a recording
Stream a recording.
GET
/
api
/
projects
/
{projectId}
/
recordings
/
{recordingId}
/
media
/
content
/
{mediaToken}
Stream recording media (target of a `proxied` URL)
curl --request GET \
--url https://{host}/api/projects/{projectId}/recordings/{recordingId}/media/content/{mediaToken}"<string>""<string>"{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "INVALID_RECORDING_MEDIA_TOKEN",
"message": "Invalid media token"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "RECORDING_NOT_READY",
"message": "Recording media is not ready"
}
}The Call Recording API provides read-only access to server-side call recordings associated with a conversation session. It returns recording metadata and media URLs for available audio files, supporting automated workflows such as compliance archiving, quality assurance, and analytics.
A session can produce multiple recordings, such as when a call is transferred. Each recording can contain multiple files, such as separate caller and agent channels. The API does not return transcripts or other conversation text.
Authenticate when retrieving session recordings using a project-bound platform API key (
abl_...) with the recordings.read scope. Send the key in either the x-api-key header or the Authorization: Bearer header. Studio user JWTs, JWT App assertions, and public pk_ keys are not accepted.
Stream recording media
Use this endpoint to stream a recording when the session recordings endpoint returns a file withurlKind: proxied. Prefix the returned relative URL with the API host and send a GET request to the complete URL. Don’t construct the URL on your own.
The mediaToken embedded in the URL is the credential for this request. Do not send an x-api-key or Authorization header. The token is short-lived and bound to the tenant, project, recording, file index, disposition, and issuing API key.
This endpoint supports HTTP range requests for seeking or retrieving part of a file. Send a Range header, such as Range: bytes=0-65535, to request a byte range.
Response behavior
200 OK: Returns the full media file.206 Partial Content: Returns the requested byte range.302 Found: The file is hosted at an external URL; follow the redirect.
Errors
400: Invalid file index or media disposition.401: The media token is invalid, expired, or does not match the request.404: The recording or requested file is not found, or the stored media object is missing.409: The recording is not yet complete (RECORDING_NOT_READY).416: The requested byte range cannot be satisfied.504: Streaming did not finish within five minutes.
Headers
Single byte range, e.g. bytes=0-65535.
Path Parameters
Project ID (not the slug). The key must be bound to this project.
Minimum string length:
1Minimum string length:
1Signed media token issued inside a proxied URL.
Minimum string length:
1Query Parameters
File index within the recording. Must match the token.
Required range:
x >= 0Content-Disposition for the media response: attachment (download, the default) or
inline (play in a browser). It is built into each issued URL.
Available options:
inline, attachment Response
The full media file.
The response is of type file.
Was this page helpful?