Skip to main content
GET
Stream recording media (target of a `proxied` URL)
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 with urlKind: 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

Range
string

Single byte range, e.g. bytes=0-65535.

Path Parameters

projectId
string
required

Project ID (not the slug). The key must be bound to this project.

Minimum string length: 1
recordingId
string
required
Minimum string length: 1
mediaToken
string
required

Signed media token issued inside a proxied URL.

Minimum string length: 1

Query Parameters

objectIndex
integer
default:0

File index within the recording. Must match the token.

Required range: x >= 0
disposition
enum<string>
default:attachment

Content-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.