# Recordings and transcripts

Source: https://docs.usetone.ai/recordings

> What a finished call leaves behind, and how to read it.

Every call produces a detail record. Answered calls also produce a transcript
and, unless you have turned it off, an audio recording.

```bash
curl "$TONE_API/v1/calls/$CALL"            -H "Authorization: Bearer $TONE_KEY"
curl "$TONE_API/v1/calls/$CALL/transcript" -H "Authorization: Bearer $TONE_KEY"
curl "$TONE_API/v1/calls/$CALL/recording"  -H "Authorization: Bearer $TONE_KEY" -o call.wav
```

## The call record

Beyond the obvious — outcome, duration, what was billed — a call carries:

| Field | |
|---|---|
| `summary` | A short account of what happened, written after the call |
| `outputs` | The output variables you declared on the agent, extracted from the transcript |
| `evaluations` | Your evaluation criteria, each with a verdict and a rationale |
| `variables` | The per-call values this call was given |
| `agentVersion` | Which version of the agent ran it |
| `endReason` | How it ended, in more detail than `disposition` |

## Recordings

The recording is a **stereo WAV**: the caller on the left channel, the agent on
the right. Two channels rather than a mix, because a mixed recording cannot
answer "who was talking?" — which is the question you have when reviewing a call
that went wrong.

It streams as `audio/wav` and is not wrapped in the usual envelope. Expect
several megabytes.

Recording is controlled per number:

```bash
curl "$TONE_API/v1/numbers/$NUMBER" -X PATCH \
  -H "Authorization: Bearer $TONE_KEY" -H 'content-type: application/json' \
  -d '{"recordCalls": false}'
```

⚠️ `recordCalls` can only turn recording **off**. It is combined with the
platform-level setting, so it can never enable recording where the deployment has
it disabled. **Telling the caller they are being recorded is your obligation, not
ours** — the opening line is the usual place.

## Absences are meaningful

A call with no transcript is a call with no speech: unanswered, busy, or a
sandbox call where nobody spoke. A call with no recording either was never
connected or ran on a number with recording off. `hasRecording` and
`hasTranscript` on the call record tell you before you fetch.
