- Get a signed URL from the Generate Signed URL endpoint
- Upload the file directly to the signed URL
- Non-allocated: No query parameters — returns a signed URL. Upload with a POST request using form data.
- Pre-allocated: Pass
contentTypeandsizeas query parameters to pre-allocate storage — returns a signed URL along withmediaIdandmediaUrl. Upload with a PUT request.
Simple Upload (Non-allocated)
Pre-allocated Upload
PasscontentType and size to pre-allocate storage. The response includes mediaId and mediaUrl so you know the file’s location before uploading.
Upload with Metadata (Pre-allocated)
When using the pre-allocated flow, you can attach metadata via query parameters:Metadata constraints: - Maximum 10 keys - Key names: alphanumeric,
underscores, hyphens only (max 128 chars) - Values: string (max 512 chars),
number, or boolean - Total metadata size: max 2KB
Upload with Progress Tracking
For larger files, you may want to track upload progress. This example uses the pre-allocated flow:Signed URLs expire after 15 minutes. Generate a new URL if the upload doesn’t
complete in time.

