---
title: "Recording status callback"
method: POST
path: "recordingStatusCallback"
tags: ["Recordings"]
---

# Recording status callback

`POST recordingStatusCallback` (webhook)

Payload sent by SignalWire to your `RecordingStatusCallback` URL when a recording status event occurs.

Recordings are not always available immediately — especially at high call volumes. This callback lets
your app react as soon as a recording is ready, whether that means uploading it to external storage,
sending it via email, or forwarding the URL via SMS.

Configure `RecordingStatusCallback` when
[creating a call via the API](/docs/compatibility-api/rest/calls/create-a-call) or when using
[Dial](/docs/compatibility-api/cxml/reference/voice/dial),
[Conference](/docs/compatibility-api/cxml/reference/voice/conference), or
[Record](/docs/compatibility-api/cxml/reference/voice/record).

Use `RecordingStatusCallbackEvent` to request callbacks for specific events. If omitted, only the
`completed` event is sent. Possible values: `in-progress`, `completed`, `absent`.

| Status | Description |
|--------|-------------|
| `in-progress` | The recording has begun. |
| `completed` | The file is available for access. |
| `absent` | The recording was too short or the call was silent — no audio was detected. |

Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don't gate time-critical actions on receiving one. See [Status callback reliability](/docs/platform/webhooks#status-callback-reliability).

## Payload

- object — Payload sent by SignalWire to your `RecordingStatusCallback` URL when a recording status event occurs. Recordings are not always available immediately — especially at high call volumes. This callback lets your app react as soon as a recording is ready, whether that means uploading it to external storage, sending it via email, or forwarding the URL via SMS. Configure `RecordingStatusCallback` when [creating a call via the API](/docs/compatibility-api/rest/calls/create-a-call) or when using [Dial](/docs/compatibility-api/cxml/reference/voice/dial), [Conference](/docs/compatibility-api/cxml/reference/voice/conference), or [Record](/docs/compatibility-api/cxml/reference/voice/record). Use `RecordingStatusCallbackEvent` to request callbacks for specific events. If omitted, only the `completed` event is sent. Possible values: `in-progress`, `completed`, `absent`. | Status | Description | |--------|-------------| | `in-progress` | The recording has begun. | | `completed` | The file is available for access. | | `absent` | The recording was too short or the call was silent — no audio was detected. | Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don't gate time-critical actions on receiving one. See [Status callback reliability](/docs/platform/webhooks#status-callback-reliability).
  - `AccountSid` string, required — The unique ID of the project this call is associated with.
  - `CallSid` string, required — A unique identifier for the call. May be used to later retrieve this call from the REST API.
  - `RecordingSid` string, required — The unique identifier for the recording.
  - `RecordingUrl` string, required — The URL for the audio recording.
  - `RecordingStatus` 'in-progress' | 'completed' | 'absent', required — The status of the recording. - `in-progress`: Recording has begun. - `completed`: File is available. - `absent`: Recording was too short or no audio was detected.
  - `RecordingDuration` integer, required — The duration, in seconds, of the recording.
  - `RecordingChannels` integer, required — The number of channels in the recording.
  - `RecordingSource` string, required — The type of call that initiated the recording.

## Acknowledgement `200`

Webhook received

---

[API](https://skmtc.net/signalwire/apis/compatibility-api.md) · [All operations](https://skmtc.net/signalwire/apis/compatibility-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/signalwire/compatibility-api/revisions/e6faba43acd7/schema)
