Hanzo AI
OpenapiMeet

Delete record

Ends a room's recording — EVERY one of them.

DELETE /v1/meet/record

Addresshttps://api.hanzo.ai/v1/meet/record
MethodDELETE
OperationmeetRecordStop
AuthAuthorization: Bearer $HANZO_API_KEY

Ends a room's recording — EVERY one of them.

Whoever the room admits may stop it, including someone who did not start it: a person being recorded has to be able to end it, and a rule that only the starter may stop would deny exactly that. Stopping is free — a caller made to pay to stop being recorded would be paying for the wrong thing.

200 MEANS THE ROOM IS NOT BEING RECORDED, and that is why this ends all of them rather than the first. "At most one per room" is an invariant this surface wants and cannot impose: reading the list and starting are two calls, and two replicas racing through that window both start. When the list comes back holding two, two is the truth — and ending one while answering 200 tells the person withdrawing consent that it stopped while a second worker keeps writing. A stop that cannot finish the job says so instead.

Stopping a room that is not being recorded is not an error. The answer names the room with no recording on it, which is the state the caller asked for.

Request

1 field.

FieldInTypeRequiredDescription
roomquerystringyesRoom is the LiveKit room, named the way the office client names one (<workspace>_<name>_<id>).

Response

StatusBodyMeaning
200recordingok

200 body — 7 fields.

FieldInTypeAlwaysDescription
bucketbodystringBucket is the object store bucket the recording is written to.
errorbodystringError is the media server's reason when a recording failed, and empty otherwise.
idbodystringID is the media server's egress id — the handle a later read names.
objectbodystringObject is the key inside that bucket. Empty only while the media server has not named a file yet. It says WHERE the recording is, not how to fetch it.
roombodystringRoom is the room this recording is of.
startedbodyintegerStarted is when the recording began, as the media server reports it: its own started_at, verbatim and unconverted.
statusbodystringStatus is the media server's own state name: EGRESS_STARTING, EGRESS_ACTIVE, EGRESS_ENDING, EGRESS_COMPLETE, EGRESS_FAILED, EGRESS_ABORTED or…

Failure carries the platform error shape — see Errors.

Examples

hanzo meet record clear --room <room>

Meet API · All Hanzo APIs · Interactive reference

How is this guide?

On this page