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.mp4

Start processing

POST /v2/uploads/{uploadId}/complete

FieldTypeRequiredDescription
titlestringNoMeeting title. Defaults to "Untitled Upload".
protocolIdstringNoSummary 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.