**Rate limit: Per command** · **Burst:** 20 · **Refill:** 20 req/s
Stop the [Recording](/api/recording) identified by `recording_uuid`.
The `202 Accepted` response confirms that the command was admitted. It does not confirm that the recording has stopped or that the final audio is available.
**Later lifecycle outcomes:**
- `recording.ended` is emitted immediately after the recording file is closed. It carries `recording_uuid`, the signed public `media_url`, the `operation_uuid` of the originating recording-create request, and `duration`.
- A `media_url` request started at that boundary may briefly remain on the growing-recording path while finalization completes.
- A `recording.failed` event is not always final. If a later stop command is accepted, the same recording also emits `recording.ended`.
The signed `media_url` carried by `recording.ended` expires 24 hours after
that event is emitted by default.
After internal finalization it supports HTTP Range requests.
See [Recording lifecycle events](/api/recording#lifecycle-events) for complete payload schemas and examples.
Request
This endpoint expects an object.
Response
Command accepted for async execution
operation_uuidstringformat: "uuid"
already_endedtrueOptional
Optional. Set to true on idempotent terminal commands when the session was already in a terminal state at the time the request was received. Absent otherwise.