> This page is for APIs.

> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# Play status callback

POST 

Sent to the `status_url` of a `calling.play` command when playback changes state.
`params.state` is `playing`, `paused`, `finished`, or `error`.

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).

Reference: https://signalwire.com/docs/apis/rest/webhooks/play-status-callback

## Request

### Payload

- `event_type` (enum, required) — The type of event. Always `calling.call.play` for play status callbacks.
  - Allowed values: `calling.call.play`
- `event_channel` (string, required) — The channel the event was delivered on.
- `timestamp` (double, required) — When the event was sent, as a Unix timestamp in seconds.
- `project_id` (string, required) — Your project ID.
- `space_id` (string, required) — Your Space ID.
- `params` (WebhooksCallingPlayStatusCallbackPayloadParams, required) — The play operation and its new state.

## Types

### WebhooksCallingPlayStatusCallbackPayloadParams

The play operation and its new state.

- `call_id` (string, required) — ID of the call.
- `node_id` (string, required) — ID of the node the call is on.
- `control_id` (string, required) — The control ID of the play operation, as set in `calling.play`.
- `state` (enum, required) — The playback state. `playing` when playback starts or resumes, `paused` when it is paused, `finished` when it ends or is stopped, and `error` when it fails.
  - Allowed values: `playing`, `paused`, `finished`, `error`