Reference
Recording
2 routes, generated from Morse’s own OpenAPI document. Every path below hangs off the base URL, and every one needs the bearer header.
The examples are built from each route’s schema, so the shapes and types are exactly what the API declares. The values are illustrative, and no one has run them.
A meeting's recording, as links to each part, or withheld for someone who may read the
notes but not watch it.
/meetings/{meeting_id}/recordingThe host, or someone it was shared with.
GET/meetings/{meeting_id}/recording
curl "$MORSE/meetings/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/recording" \
-H "Authorization: Bearer $MORSE_TOKEN"{
"parts": [
{
"duration_ms": 30,
"ended_at": "2026-10-02T10:30:00+05:30",
"error": "…",
"id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"offset_ms": 0,
"started_at": "2026-10-02T10:30:00+05:30",
"status": "…",
"url": "https://onmorse.com/priya",
"url_expires_at": "2026-10-02T10:30:00+05:30"
}
],
"recording_enabled": true,
"timeline_origin": "2026-10-02T10:30:00+05:30",
"withheld": true
}Host only. Off stops the recorder; on again starts a new part.
/meetings/{meeting_id}/recordingThe flag is written first. recordings.ensure re-reads it under the room's
recording lock, which recordings.stop also holds while it lists and stops,
so a join that races the switch cannot restart a recorder this has stopped.
If the recorder then cannot be stopped, the flag goes back and the host is
told: a switch reading "off" over a running recorder is the one outcome
worse than an error.
PATCH/meetings/{meeting_id}/recording
curl -X PATCH "$MORSE/meetings/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/recording" \
-H "Authorization: Bearer $MORSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "enabled": true }'{
"enabled": true
}