Clarify API
Meeting Recordings

Start a recording media upload

Creates a pending recording on the meeting and returns a presigned S3 POST policy for uploading an audio or video file directly to storage. Uploaded media is stored for playback and is not transcribed. Optionally include a transcript in the same request so one recording carries both video and transcript. Submit the file to the returned policy, then confirm the upload. Pass `recordingId` to overwrite a completed manual-upload recording instead of creating a new one.

POST
/workspaces/{workspace}/meetings/{meetingId}/recordings/media
Authorization<token>

API key authentication. Send your key in the Authorization header as: api-key <your-api-key>.

In: header

Path Parameters

workspace*string

The workspace slug — the {slug} segment of your Clarify workspace URL.

meetingId*string

The unique ID of the meeting.

Query Parameters

silent?boolean

When true, suppresses in-app and Slack notifications for this mutation.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/workspaces/string/meetings/string/recordings/media" \  -H "Content-Type: application/json" \  -d '{    "contentType": "video/mp4"  }'
{
  "data": {
    "recordingId": "2f7a9c1e-4b6d-4e8a-9c0f-1d3b5e7a9c62",
    "meetingId": "6c8e0a2b-4d5f-4a7b-9c1d-3e5f7a9b1c2d",
    "key": "acme/manual/2026-02-01/2f7a9c1e-4b6d-4e8a-9c0f-1d3b5e7a9c62/recording-7e71a013-1341-4472-a54d-63d81a56b5dd.mp4",
    "upload": {
      "url": "https://storage.clarify.ai/meeting-recordings",
      "fields": {
        "key": "acme/manual/2026-02-01/2f7a9c1e-4b6d-4e8a-9c0f-1d3b5e7a9c62/recording-7e71a013-1341-4472-a54d-63d81a56b5dd.mp4",
        "Content-Type": "video/mp4",
        "policy": "...",
        "x-amz-signature": "..."
      }
    }
  }
}