Skip to main content
POST
Mint a playback URL for the recording of a click-to-call placed with record: true.
This is a POST because it mints a credential — a signed URL to a customer’s conversation. That is not a safe, idempotent read, and it must not end up in a browser history, a proxy log or a prefetch. The URL expires in minutes and is never stored on our side; mint a new one when you need it.
{id} accepts the call_id, your reference_id, or the recording_id.

Ordering

Recording audio is produced by the call platform and uploaded after the call ends, so it lands a little later than the terminal event. Check recording_available on the call first — and pass ?refresh=1 when you do, which is what makes a finished call go look for audio that has since appeared:

Request

Headers

string
required
Bearer token with your API key

Path

string
required
The call_id, the reference_id, or the recording_id

Response

object

Errors

RECORDING_UNAVAILABLE reads as two different messages on purpose — “this call was not recorded” and “this call asked to be recorded, but no recording was produced” have different remedies. The first means turn record on before placing the call; the second is worth reporting rather than retrying.A recorded conversation belongs to whoever placed the call, so a teammate gets RECORDING_NOT_OWNED rather than the audio.

Example