Recordings
List recordings
Section titled “List recordings”GET /api/v1/recordingsReturns a paginated list of recordings accessible to the authenticated user.
Query parameters
Section titled “Query parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | 20 | Number of results (1–100) |
offset | number | 0 | Pagination offset |
search | string | — | Filter by title (partial match) |
status | string | — | Filter by status (see Recording statuses) |
date_from | string | — | ISO 8601 date — only return recordings created on or after |
date_to | string | — | ISO 8601 date — only return recordings created on or before |
organization_id | string | — | Scope to an organization |
folder_id | string | — | Scope to a folder (requires organization_id) |
Response
Section titled “Response”{ "data": [ { "id": "uuid", "status": "COMPLETED", "title": "Weekly sync", "createdAt": "2025-09-19T15:00:00.000Z", "thumbnailUrl": "https://...", "progress": 1.0, "capabilities": { "canDownload": true, "canShare": true, "canViewTranscription": true, "canGenerateSummary": true, "canAskQuestions": true } } ], "pagination": { "total": 42, "limit": 20, "offset": 0, "has_more": true }}Get recording
Section titled “Get recording”GET /api/v1/recordings/:idReturns full details for a single recording.
Response
Section titled “Response”{ "data": { "id": "uuid", "status": "COMPLETED", "title": "Weekly sync", "createdAt": "2025-09-19T15:00:00.000Z", "updatedAt": "2025-09-19T15:30:00.000Z", "startedAt": "2025-09-19T15:01:00.000Z", "endedAt": "2025-09-19T15:30:00.000Z", "videoUrl": "https://...", "hlsUrl": "https://...", "downloadUrl": "https://...", "downloadUrlExpiresAt": "2025-09-19T21:00:00.000Z", "thumbnailUrl": "https://...", "organizationId": "org_uuid or null", "transcription": { "status": "completed", "language": "en", "speakers": ["Speaker 1", "Speaker 2"], "segmentsCount": 184, "duration": 1740.5 }, "summary": { "status": "completed", "content": "## Key topics\n...", "topics": [ { "title": "Project timeline", "keyPoints": [ { "point": "Launch date confirmed", "details": ["Set for Q1"] } ] } ] }, "isLocked": false, "capabilities": { "canDownload": true, "canShare": true, "canViewTranscription": true, "canStartTranscription": true, "canRegenerateTranscription": false, "canRenameSpeaker": true, "canViewSummary": true, "canGenerateSummary": true, "canAskQuestions": true } }}Get transcript segments
Section titled “Get transcript segments”GET /api/v1/recordings/:id/transcriptReturns paginated transcript segments for a recording.
Query parameters
Section titled “Query parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
start_chunk | number | 0 | Chunk index to start from |
limit | number | 50 | Number of chunks (1–100) |
Response
Section titled “Response”{ "data": { "status": "completed", "language": "en", "speakers": ["Speaker 1", "Alice"], "duration": 1740.5, "segments": [ { "id": 1, "start": 0.5, "end": 3.2, "text": "Good morning everyone.", "speaker": "Alice", "confidence": 0.97 } ], "pagination": { "total_chunks": 184, "has_more": true } }}Update recording
Section titled “Update recording”PATCH /api/v1/recordings/:idUpdate the title or notes of a recording. At least one field is required.
Request body
Section titled “Request body”{ "title": "New title (1–500 characters)", "notes": "Optional notes (max 100,000 characters)"}Response
Section titled “Response”{ "data": { "success": true }}Delete recording
Section titled “Delete recording”DELETE /api/v1/recordings/:idPermanently deletes a recording and all associated data (transcript, summary, shares).
Response
Section titled “Response”{ "data": { "success": true }}Create share link
Section titled “Create share link”POST /api/v1/recordings/:id/share-linkGenerates a public share link for the recording.
Request body
Section titled “Request body”{ "permission": "view"}| Value | Description |
|---|---|
view | Recipients can watch the video and access the transcript/summary |
download | Recipients can also download the video file |
Response
Section titled “Response”{ "data": { "share_url": "https://recordmeeting.com/app/shared/abc123", "share_token": "abc123", "permission": "view" }}Recording statuses
Section titled “Recording statuses”| Status | Description |
|---|---|
STARTING | Recording request received, setup in progress |
CONNECTING | Connecting to the Google Meet session |
WAIT_APPROVAL | Waiting for in-call approval to record |
RECORDING | Actively recording |
UPLOADING | Client-side upload in progress (chunks draining to storage) |
PROCESSING | Cloudflare Stream packaging HLS/DASH — not yet playable |
MIGRATING | Video fully playable; HLS being migrated to long-term storage |
COMPLETED | Recording fully processed and stored |
ERROR | Recording failed |
API consumers should treat
MIGRATINGidentically toCOMPLETEDfor playback, download, and share operations — the distinction is internal.