Uploads

Preflight a media upload

Reserves transcription credits before creating any storage upload. The declared duration determines the initial reservation; the server measures the uploaded media before transcription and reconciles the final cost. Files may be at most 3 GB (3,000,000,000 bytes).

End-to-end local-file flow:

  1. Create an upload with POST /uploads.
  2. For each numbered file part, request a signed URL from POST /uploads/{id}/parts, then PUT that part directly to the returned S3 URL and retain its ETag response header.
  3. Submit the ordered part numbers and ETags to POST /uploads/{id}/complete.
  4. Poll GET /uploads/{id}. If it returns awaiting_credits, add credits and call POST /uploads/{id}/resume. When it returns completed, fetch the returned transcriptionUrl.

The Media Caption API key must not be sent to the signed S3 part URL.

post/uploads

Request body

filenamestring required
contentTypestring required

An audio/* or video/* media type.

sizeBytesinteger required
durationSecinteger required

Client-measured duration used for the pre-upload credit reservation.

Example request

{
  "filename": "meeting.mp4",
  "contentType": "video/mp4"
}

Response

Credit reservation and multipart upload created

idstring required
status'uploading' required
requiredCreditsinteger required
minPartSizeBytesinteger required
partUrlstring required
completeUrlstring required
statusUrlstring required
expiresAtstring date-time required

Changes