Get a presigned recording download URL

View as Markdown
Returns a presigned S3 URL for the call's recording. Hand the URL straight to the customer or pull bytes server-side. The presigned URL is **time-limited** to 15 minutes; do not cache or embed it, request a fresh one each time you need the recording. Use `channel=mono` (default) for the composite recording (agent + caller mixed). Use `channel=dual` for a stereo recording (agent on one channel, caller on the other), which is available only when the call was captured with per-side audio. `?channel=dual` returns `404` when the dual URL is missing; retry with `?channel=mono` in that case. Errors: - `400 Invalid call ID format` if you pass a Mongo `_id` instead of the `callId` string. - `400 Invalid channel. Expected 'mono' or 'dual'` if `channel` is anything else. - `401 Unauthorized` if no API key or dashboard cookie is present. - `404 Call log not found` if the call is missing or belongs to another organization. (The literal `Call not found` string is only returned when the call itself is missing entirely; the util maps both to the same 404.) - `404 Dual-channel recording not found` if `channel=dual` was requested and only a mono capture exists.

Authentication

AuthorizationBearer

API key from the console ApiKey collection, sent as Bearer token. Also accepts session cookies for browser-based auth.

Path parameters

callIdstringRequiredformat: "^CALL-\d{13}-[a-fA-F0-9]{6}$"

The callId string for the conversation (e.g. CALL-1778226705739-7e4c17). This is the callId field returned by GET /conversation, not the internal document id.

Query parameters

channelenumOptionalDefaults to mono

Which channel to fetch. mono (default) returns the composite recording; dual returns the stereo recording when available.

Allowed values:

Response

Presigned URL ready to fetch.
statusbooleanOptional
dataobjectOptional

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
500
Internal Server Error