API v2
Uploads
Upload an audio or video recording so Optiverse transcribes and analyzes it.
Uploading a recording takes three requests. The file goes straight to storage, so its size is not limited by the API's 1 MB body limit. Uploads are REST only; they are not MCP tools.
Supported formats: mp4, webm, mov, mp3, m4a, wav, opus, ogg. Maximum file size: 5 GB.
Request an upload URL
POST /v2/uploads
curl -X POST "https://developer.optiverse.ai/api/v2/uploads" \
-H "Authorization: Bearer optiuser_v1_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "fileName": "standup.mp4" }'{
"data": {
"uploadId": "2a7e4b1c-...",
"uploadUrl": "https://...amazonaws.com/...",
"method": "PUT",
"requiredHeaders": { "Content-Type": "video/mp4" }
}
}Upload the file
PUT the file bytes to uploadUrl, with every header from requiredHeaders. Do not send your API key to this URL.
curl -X PUT "<uploadUrl>" \
-H "Content-Type: video/mp4" \
--data-binary @standup.mp4Start processing
POST /v2/uploads/{uploadId}/complete
| Field | Type | Required | Description |
|---|---|---|---|
title | string | No | Meeting title. Defaults to "Untitled Upload". |
protocolId | string | No | Summary template to apply, from List summary templates |
curl -X POST "https://developer.optiverse.ai/api/v2/uploads/2a7e4b1c-.../complete" \
-H "Authorization: Bearer optiuser_v1_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "title": "Daily standup" }'{ "data": { "uploadId": "2a7e4b1c-...", "status": "processing" } }The response is 202 Accepted. The meeting appears in List meetings once transcription and analysis finish, usually within a few minutes.

