# Recording status callback POST 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. | Reference: https://signalwire.com/docs/compatibility-api/rest/recordings/webhooks/recording-status-callback ## OpenAPI 3.1 Webhook Specification ```yaml openapi: 3.1.0 info: title: compatibility version: 1.0.0 paths: {} webhooks: recording-status-callback: post: operationId: recording-status-callback summary: Recording status callback description: >- 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. | responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: type: object properties: AccountSid: type: string description: The unique ID of the project this call is associated with. CallSid: type: string description: >- A unique identifier for the call. May be used to later retrieve this call from the REST API. RecordingSid: type: string description: The unique identifier for the recording. RecordingUrl: type: string description: The URL for the audio recording. RecordingStatus: $ref: >- #/components/schemas/WebhooksRecordingStatusCallbackPayloadContentApplicationJsonSchemaRecordingStatus description: >- 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: type: integer description: The duration, in seconds, of the recording. RecordingChannels: type: integer description: The number of channels in the recording. RecordingSource: type: string description: The type of call that initiated the recording. required: - AccountSid - CallSid - RecordingSid - RecordingUrl - RecordingStatus - RecordingDuration - RecordingChannels - RecordingSource components: schemas: WebhooksRecordingStatusCallbackPayloadContentApplicationJsonSchemaRecordingStatus: type: string enum: - in-progress - completed - absent description: |- The status of the recording. - `in-progress`: Recording has begun. - `completed`: File is available. - `absent`: Recording was too short or no audio was detected. title: >- WebhooksRecordingStatusCallbackPayloadContentApplicationJsonSchemaRecordingStatus ```