Hanzo AI
OpenapiMeet

Create record

Begins recording a room, or hands back the recording already running.

POST /v1/meet/record

Addresshttps://api.hanzo.ai/v1/meet/record
MethodPOST
OperationmeetRecordStart
AuthAuthorization: Bearer $HANZO_API_KEY

Begins recording a room, or hands back the recording already running.

A recording is a durable artifact of a conversation, so only someone this room would admit may make one: the caller is authorized by the SAME decision /v1/meet/getToken makes about the same room, and refused with the same 401.

A SECOND START RETURNS THE FIRST rather than refusing it. There is at most one recording per room and this operation's job is to establish that there is one — which is already true when a colleague, or the caller's own double-click, started it a moment ago. The answer is the same shape either way, naming the recording that is actually running, so a client never has to tell the two cases apart to find the id.

A deployment with no media server address or no object store answers 503 naming which, because a recording that silently does not happen is worse than one that is refused. The reason reaches only a caller this room already admits.

Request

1 field, body application/json (required).

FieldInTypeRequiredDescription
roombodystringyesRoom 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 create --room <room>

Meet API · All Hanzo APIs · Interactive reference

How is this guide?

On this page