Uploading Content via API
Guide to uploading recordings programmatically.
Overview
Uploading is a 3-step process:
- Request upload URL — Get presigned S3 URL
- Upload file — PUT directly to S3
- Confirm upload — Notify Scribe Sight to process
Step-by-Step
1. Request Upload URL
curl -X POST https://scribesight.com/api/v1/projects/proj_xxx/content/upload-url \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"filename": "meeting-2026-01-06.mp4",
"content_type": "video/mp4",
"size_bytes": 52428800
}'
2. Upload to S3
curl -X PUT "${upload_url}" \
-H "Content-Type: video/mp4" \
--data-binary @meeting-2026-01-06.mp4
3. Confirm Upload
curl -X POST https://scribesight.com/api/v1/projects/proj_xxx/content/cont_xxx/upload-complete \
-H "Authorization: Bearer sk_live_xxx"
Large Files (> 100MB)
For files over 100MB, we use multipart upload. The API returns multiple part URLs:
{
"upload_type": "multipart",
"upload_id": "xxx",
"parts": [
{ "partNumber": 1, "uploadUrl": "..." },
{ "partNumber": 2, "uploadUrl": "..." }
]
}
Upload each part and complete with ETags.
Supported Formats
- Video: MP4, MOV, WebM, AVI
- Audio: MP3, WAV, M4A, FLAC, OGG
Limits
- Max file size: 1 GB
- Max duration: 70 minutes