Skip to main content

Content

Manage recordings (audio/video files) within projects.

List Content

GET /v1/projects/{projectId}/content

Returns content in a project.

Query Parameters

ParameterTypeDescription
statusstringFilter by status: uploaded, processing, completed, failed
created_afterstringISO 8601 timestamp
created_beforestringISO 8601 timestamp
limitintegerMax results (1-100, default: 20)
cursorstringPagination cursor

Request

curl "https://scribesight.com/api/v1/projects/proj_xxx/content?status=completed&limit=10" \
-H "Authorization: Bearer sk_live_xxx"

Response

{
"data": [
{
"id": "cont_xxxxxxxxxxxx",
"project_id": "proj_xxxxxxxxxxxx",
"filename": "sales-call-2026-01-05.mp4",
"content_type": "video/mp4",
"size_bytes": 52428800,
"duration_seconds": 1847,
"status": "completed",
"has_transcript": true,
"analysis_count": 2,
"created_at": "2026-01-05T14:30:00Z",
"updated_at": "2026-01-05T15:00:00Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJpZCI6Inh4eCJ9"
}
}

Get Content

GET /v1/projects/{projectId}/content/{contentId}

Returns a specific content item with transcript and analyses.

Request

curl https://scribesight.com/api/v1/projects/proj_xxx/content/cont_xxx \
-H "Authorization: Bearer sk_live_xxx"

Upload Content

Uploading content is a multi-step process:

Step 1: Request Upload URL

POST /v1/projects/{projectId}/content/upload-url

Request a presigned URL to upload your file.

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": "sales-call.mp4",
"content_type": "video/mp4",
"size_bytes": 52428800
}'

Response:

{
"data": {
"content_id": "cont_xxxxxxxxxxxx",
"upload_type": "single",
"upload_url": "https://s3.amazonaws.com/...",
"upload_method": "PUT",
"upload_headers": {
"Content-Type": "video/mp4"
},
"expires_at": "2026-01-06T16:00:00Z"
}
}

Step 2: Upload File

Upload directly to the presigned URL:

curl -X PUT "https://s3.amazonaws.com/..." \
-H "Content-Type: video/mp4" \
--data-binary @sales-call.mp4

Step 3: Confirm Upload

POST /v1/projects/{projectId}/content/{contentId}/upload-complete

Confirm the upload is complete to begin processing.

curl -X POST https://scribesight.com/api/v1/projects/proj_xxx/content/cont_xxx/upload-complete \
-H "Authorization: Bearer sk_live_xxx"

Get Transcript

GET /v1/projects/{projectId}/content/{contentId}/transcript

Returns the transcript for a content item.

Request

curl https://scribesight.com/api/v1/projects/proj_xxx/content/cont_xxx/transcript \
-H "Authorization: Bearer sk_live_xxx"

Response

{
"data": {
"content_id": "cont_xxxxxxxxxxxx",
"text": "Hello, thank you for calling Acme Inc...",
"word_count": 2847,
"segments": [
{
"start": 0.0,
"end": 3.5,
"text": "Hello, thank you for calling Acme Inc.",
"speaker": "Agent"
}
],
"language": "en",
"created_at": "2026-01-05T15:00:00Z"
}
}

Delete Content

DELETE /v1/projects/{projectId}/content/{contentId}

Deletes a content item and all associated data.

curl -X DELETE https://scribesight.com/api/v1/projects/proj_xxx/content/cont_xxx \
-H "Authorization: Bearer sk_live_xxx"

Reprocess Content

POST /v1/projects/{projectId}/content/{contentId}/reprocess

Re-runs transcription for a content item.

curl -X POST https://scribesight.com/api/v1/projects/proj_xxx/content/cont_xxx/reprocess \
-H "Authorization: Bearer sk_live_xxx"