Upload a meeting recording
A recording is one session of the meeting: its transcript and, when there is one, its audio or video. Recordings come from the Lightfield notetaker, Gong, Granola, or an upload. Only uploaded recordings can be created or given media through the API. Creates an uploaded recording from files already uploaded through POST /v1/files: a transcript (purpose meeting_transcript, required) and optionally its audio or video (purpose meeting_recording). Both files attach in one write, so a failed request attaches neither. Media can also be added later by updating the recording. Sending a transcript file that is already on the meeting returns that recording. Only meeting participants and workspace owners may upload.
Supports idempotency via the Idempotency-Key header.
Required scope: meetings:update
Rate limit category: Write
Body ParametersJSON
Pin this as the meeting’s primary recording. Defaults to true. false attaches it without pinning; on a meeting with no pinned recording, the primary is chosen by source (notetaker, Gong, Granola, then uploads) and then recency, so a newer upload can still become primary.
Upload a meeting recording
curl https://api.lightfield.app/v1/meetings/$ID/recordings \
-H 'Content-Type: application/json' \
-H 'Lightfield-Version: 2026-03-01' \
-H "Authorization: Bearer $API_KEY" \
-d '{
"transcriptFileId": "transcriptFileId"
}'{
"id": "id",
"isCanonical": true,
"media": {
"mimeType": "mimeType",
"url": "url"
},
"provider": "RECALL",
"recordedAt": "recordedAt",
"recordedBy": "recordedBy",
"transcript": {
"fileId": "fileId"
}
}Returns Examples
{
"id": "id",
"isCanonical": true,
"media": {
"mimeType": "mimeType",
"url": "url"
},
"provider": "RECALL",
"recordedAt": "recordedAt",
"recordedBy": "recordedBy",
"transcript": {
"fileId": "fileId"
}
}