Skip to navigation

Stop recording room audio

View as Markdown

Stop the active room Recording.

A 202 Accepted response confirms that the stop request was accepted. It does not mean the recording file is closed or final audio is available. The flat response includes the request acknowledgement and the same Recording identity.

Exactly one of these outcomes applies:

  • If the room has an active Recording, the stop request is accepted.
  • If the room has no active Recording, the response is 400 recording_not_active; no recording command is sent and no event is emitted.

This operation accepts an optional Idempotency-Key so retries preserve the accepted operation and recording identity.

Triggered webhook:

  • recording.ended is emitted immediately after the recording file is closed.
  • It carries a fresh signed public URL for the same recording_uuid.
  • A media_url request started at that boundary may briefly continue following the growing Recording until finalization completes.

See Recording lifecycle events for complete payload schemas and examples.

Authentication

AuthorizationBearer

Send Authorization: Bearer <app_uuid>:<api_key> using an active API key. See Authentication for details.

Path parameters

room_idstringRequired

Case-sensitive room identifier.

Headers

Idempotency-KeystringOptionalformat: "^[a-zA-Z0-9._-]*$"<=128 characters

Optional key for safely retrying mutating requests. An explicitly empty header is treated like omission and does not enable replay protection. See Idempotency for details.

Operation-IdstringOptionalformat: "uuid"

optional client-supplied lowercase RFC-4122 v4 UUID returned as operation_uuid; platform generates one when omitted; correlation metadata distinct from Idempotency-Key.

Response headers

traceparentstringOptionalformat: "^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$"=55 characters

Server-owned W3C Trace Context for correlating this response with support and observability data. It is present on successful and error responses. A valid incoming traceparent is linked to, but never becomes, the server-owned trace identifier.

Response

Room recording stop accepted
operation_uuidstring
statusenum
Allowed values:
recording_uuidstring

Stable Recording identifier starting with rec_.

expires_atdatetime

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

media_urlstringformat: "uri"

Starts at byte zero and follows the growing Recording until EOF. After finalization, the same URL serves a finite, range-capable WAV. A boundary request may briefly wait for internal finalization. Validity defaults to 24 hours.

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
406
Not Acceptable Error
409
Conflict Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error