Stop recording room audio

View as Markdown
Stop the active room [Recording](/api/recording). The accepted [Operation](/api) and the same Recording identity are returned in one flat response. If the room has no active Recording, the request returns `409 recording_not_active` without dispatching a recording command or emitting an event. This operation is not wrapped by `Idempotency-Key` middleware. **Triggered webhook:** `recording.ended`, carrying a fresh signed public URL for the same `recording_uuid`. No post-stop reachability probe is performed.

Authentication

AuthorizationBearer
Application auth. Send `Authorization: Bearer <app_uuid>:<api_key>`. See [Authentication](https://voice-platform.docs.buildwithfern.com/api/authentication) for details.

Path parameters

room_idstringRequired

Room ID (format {prefix}-room-{uuid}). The UUID portion is lowercase hexadecimal — uppercase hex is rejected with 400.

Response

Room recording stop accepted
operation_uuidstringformat: "uuid"
statusenum
recording_uuidstringformat: "^rec_[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
Stable opaque identifier for this Recording.
expires_atdatetime

Exact expiry instant of pull_url, derived from the URL’s signed expiration.

pull_urlstringformat: "uri"

Fresh whole-Recording download URL. Its configurable validity window defaults to 24 hours from this response’s emission.

room_idstringOptional

Owning Room; mutually exclusive with session_uuid.

session_uuidstringOptional

Owning Session; mutually exclusive with room_id.

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error