> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qall.io/llms.txt
> Use this file to discover all available pages before exploring further.

# recording.ready

> Sent when a call's audio file is ready.

A recording is finalised shortly after the call ends — which is why
[`call.completed`](/api-reference/webhooks/call-completed) usually has no
recording URL. Subscribe to this event to get the file.

```json theme={null}
{
  "id": "9c21f0b4e7a84d53b6f1c8e2a7d30915",
  "type": "recording.ready",
  "created_at": "2026-10-02T09:14:48.102000+00:00",
  "message": {
    "type": "recording-ready",
    "call": { "id": "call_elster_hotel-en" },
    "recording": {
      "id": 881,
      "type": "mixed",
      "durationSeconds": 126,
      "sizeBytes": 1016320,
      "url": "https://..."
    }
  }
}
```

## Fields

| | |
| - | - |
| `call.id` | The call this belongs to. Use it to tie this to `call.completed`. |
| `recording.id` | The recording's id |
| `recording.durationSeconds` | Length of the audio |
| `recording.sizeBytes` | File size |
| `recording.url` | Where to fetch it |

A recording contains both sides of the conversation in one file.

## Using it

If you archive call audio, wait for this event rather than trying to fetch a
recording as soon as `call.completed` arrives.

The two events arrive separately and `call.completed` usually comes first, so key
your record on `call.id` and fill the audio in when this one lands.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.