Recordings

When a call is recorded, what is recorded, where to play it, who may hear it — and what you are responsible for.

After this page you can say which of your calls are recorded and which are not, play or download any recording you have, pull them with a program, and know where the platform's responsibility for consent ends and yours begins.

Recording is a campaign setting. When Record calls is on for a campaign, each of its calls is recorded from the moment the buyer answers, and the audio is attached to the call for playback in the call log.

Two switches, and both must be on

SwitchWhereScope
Record callsThe campaign's Settings tab, under Recording.That campaign. Consent law is per line of business, and one workspace's campaigns differ.
The platform's ownSet by the platform for everybody.All calls. When it is off, nothing is recorded whatever a campaign says.
The campaign switch is on by default for a new campaign. Turn it off for a vertical where recording is not appropriate, and leave it off — this is not a setting to toggle daily.

The campaign's answer is frozen onto the call when the call arrives, so a switch you flip mid-conversation never changes a call that is already in progress. Calls that started before the change keep their old answer; calls that arrive after it get the new one.

What is recorded, and from when

  • From the moment the buyer answers, not from when the platform picks up the caller. The seconds before that are ringing and hold music, and the same instant starts the duration threshold the call converts on — so the recording and the conversion describe the same span.
  • The caller's leg, in two channels: the caller on one track and the buyer on the other. A single mixed channel cannot answer "who said that", which is the only question a disputed call ever asks of a recording.
  • MP3, which every browser plays. An account configured for WAV produces WAV, and the format is on the recording row.
  • Through a failover. The caller's leg survives a target being replaced, so one recording covers the whole conversation even when the buyer's side changed part-way.
  • A call can carry more than one recording — an account recording both legs, or a re-record after a transfer — and the call page lists each with its own player.

Playing one

Open a call from the call log and find the Recording section in the drawer. Press play and the audio is fetched then, not before — a recording is megabytes, and a call list that pre-loaded them would be unusable. Save downloads the same bytes, named after the call's reference.

The player showsFrom
LengthThe recording's own duration, which is the buyer's leg and so is close to the call's talk time.
FormatMP3 or WAV.
Channels2 channels when it is dual-track.

Fetching one with a program

A call read through the API carries a recordings array. Each entry's url is a path on this API — never the carrier's link — so fetch it with the same key.

A call with a recording
{
  "call": {
    "id": "0b9f6c1e-52a4-4a0e-9f0a-3d1c7e8b2a11",
    "ref": "CA-482137",
    "hasRecording": true,
    "recordings": [
      {
        "id": "3d2c1b0a-9f8e-4d7c-b6a5-4e3d2c1b0a9f",
        "format": "mp3",
        "channels": 2,
        "durationSeconds": 184,
        "createdAt": "2026-09-20T14:06:31.220Z",
        "expiresAt": null,
        "url": "/api/v1/calls/0b9f6c1e-52a4-4a0e-9f0a-3d1c7e8b2a11/recordings/3d2c1b0a-9f8e-4d7c-b6a5-4e3d2c1b0a9f/audio"
      }
    ]
  },
  "recordingsReason": null
}
And one without
{
  "call": { "ref": "CA-482201", "hasRecording": false, "recordings": [] },
  "recordingsReason": "never_answered"
}
curl -s "https://api.buy3.io/api/v1/calls/0b9f6c1e-52a4-4a0e-9f0a-3d1c7e8b2a11/recordings/3d2c1b0a-9f8e-4d7c-b6a5-4e3d2c1b0a9f/audio" \
  -H "Authorization: Bearer $BUY3_API_KEY" \
  -o CA-482137.mp3
AnswerMeans
200The audio, as audio/mpeg or audio/wav, with Content-Length and a filename of the call's reference.
404No such recording on that call — or the call is not yours. Both answer the same, so an id cannot be used to find out which calls exist.
410The carrier no longer holds it: it is past the account's retention window. There is nothing to retry.
502The carrier refused or could not be reached. Worth retrying.
This needs a key with calls:read — see API keys.

Who can hear what

WhoCan play your recordings
Owners and admins of the workspaceYes, in the console.
An API key with calls:readYes, through the API, acting as the workspace.
A publisher, in the publisher portalNo. There is no recordings route on the portal at all. A publisher sees that their call happened, how long it lasted and whether it converted for them; the audio is not theirs.
A buyerNo. Buyers have no login here. If a buyer needs a recording, you send it to them.
Anybody with a linkNo. There is no link that works without a session.

How long they last

The audio is held by the carrier under the account's own retention window, and the platform stores the reference rather than a second copy. Past the window, the recording row is still on the call — with its length and format — and playback answers 410 and says why.

  • Download anything you need to keep. A recording you may need for a dispute in six months is a recording to save now, not one to hope for later.
  • A recording is never deleted by editing a campaign. Switching Record calls off affects calls from that moment on; recordings already attached to calls stay with them.
  • The call itself — its waterfall, its books, its tags — is not pruned. Only the audio has a window.

Worked example: pulling last week's disputed calls

A buyer disputes nine calls from last Tuesday, all on one campaign. You want the audio for each before anything expires.

  1. Filter the call log to that campaign, that day, outcome=connected and hasRecording=true. The last filter matters: a call with no audio wastes a request.
  2. Read each call with GET /api/v1/calls/:id and take its recordings array. hasRecording on the list row tells you there is something; the call itself tells you where.
  3. Fetch each url and write it to a file named after the call's ref, as in the sample above. Treat 410 as "gone" and carry on rather than failing the batch.
  4. Keep the files beside the call references. A recording with no reference beside it is a conversation nobody can place.
  5. If some calls have no audio at all, check the campaign's Record calls setting as it was then — the call's own answer was frozen at the time, and the switch may have been off that week.
  • The campaign is the right level to decide this at, which is why the switch lives there: one vertical may record and another may not, inside one workspace.
  • Turning recording off for a campaign takes effect on the next call to arrive. It does not remove audio already captured.
  • Tell your buyers before you switch it on. A buyer whose own compliance forbids recorded calls needs to know, and finding out from a recording is the wrong way.

Next steps