Skip to main content
POST
Generate a pre-signed S3 URL for uploading a file to a recording. Supports audio, image, and video files. Upload the file directly to S3 using the returned URL. After all files are uploaded, call the Complete Upload endpoint.

Authentication

This endpoint accepts two authentication methods:

Path Parameters

id
string
required
The recording’s unique identifier (e.g., rec_abc123).

Request Body

type
string
required
Media type: audio, image, or video.
content_type
string
MIME type of the file. Defaults based on type:
  • Audio (default: audio/opus): audio/opus, audio/wav, audio/mpeg, audio/mp4, audio/webm, audio/ogg, audio/flac
  • Image: image/jpeg, image/png
  • Video: video/mp4
file_size_bytes
integer
Expected file size in bytes. Used for validation.
captured_at
string
ISO 8601 timestamp of when the media was captured. Used to align images/video with the recording timeline. Optional for audio.

Response

Returns a media record ID, a pre-signed S3 upload URL, required headers, and an expiration timestamp.

Response Fields

Uploading the File

After obtaining the pre-signed URL, upload the file directly to S3:
cURL
Node.js
Python

Multi-File Upload

A single recording can have multiple media files. Call this endpoint once per file:
Upload URLs expire after 1 hour. If expired, request a new URL. After all files are uploaded, call the Complete Upload endpoint to finalize.