API reference · Multipart

Start a multipart upload and get per-part URLs

POST /api/v1/upload/multipart/create

For large files. Returns one presigned URL per part; PUT each part and keep its ETag. file_size is required and is used only to plan part_size and num_parts. Rate limit: 120 requests per minute.

Like /api/v1/upload, this creates the job and is not safe to retry blindly.

Authenticate with your key in the X-API-Key header — Authentication.

Request body

Required. application/json

  • model string default: zephyr

    The transcription model. One today.

  • output_type string default: json

    Format of the stored transcript at download_url.

    One of json, txt, srt, vtt, docx, pdf

  • word_timestamps boolean default: true

    Per-word start and end times.

  • speaker_labels boolean default: true

    Diarize, labelling turns SPEAKER_1, SPEAKER_2 and so on, dense and numbered from one in order of first appearance.

  • nltk boolean default: true

    Punctuation and sentence segmentation.

  • custom_vocabulary string[] | null

    Domain terms to bias towards — names, jargon, product names.

  • callback_url string (uri) | null

    Webhook to POST on completion or permanent failure. The body is signed with HMAC-SHA256 in X-SR-Signature, and carries X-SR-Event and X-SR-Delivery.

  • file_size integer required
  • part_size integer | null

    Bytes per part. Clamped to what S3 allows, and raised automatically if the file would otherwise need more than 10,000 parts.

Responses

  • 200 Multipart upload started.
  • 400 The request was understood but cannot be acted on — for example, completing an upload whose bytes never arrived.
  • 401 Missing, malformed or revoked API key.
  • 402 The account is out of credit. Top up, or turn on auto-recharge, and retry. Reads and cancellations keep working.
  • 413 The file exceeds the limit for this route: 10 GB through the upload routes, 200 MB streaming to /api/v1/transcribe.
  • 422 A field is missing or the wrong type. The body names the offending field.
  • 429 Too many requests for this endpoint. Back off and retry; the official SDKs do this for you.

200 response fields

  • job_id string (uuid) required
  • upload_id string required
  • download_url string (uri) required
  • part_size integer required
  • num_parts integer required
  • parts object[] required
  • expires_in integer required

Related endpoints