Transcribe API (terminal)

One-shot streaming upload for shells and simple scripts. Same transcription options as upload — no separate progress/complete steps.

POST/api/v1/transcribe

Designed for cURL

Prefer this endpoint from the terminal. Prefer the SDK (upload flow) in application code.

Request

The request body is the raw audio bytes; transcription options are query parameters (same names and semantics as upload). Sending the body raw lets the server stream it straight to storage without buffering the whole file.

bash
curl -N -X POST \
  "https://api.speechrevolutions.com/api/v1/transcribe?output_type=json&word_timestamps=true&speaker_labels=true&nltk=true&custom_vocabulary=AcmeCorp,Grok" \
  -H "X-API-Key: $SPEECHREVOLUTIONS_API_KEY" \
  --data-binary @audio.mp3

Behavior

  1. Client streams the raw audio bytes as the request body.
  2. The server streams the upload to storage, enqueues the job, then streams the job's SSE progress on the same response — identical in shape to the Jobs SSE stream (progress events carrying completed/total/step).
  3. On success it emits a terminal completed event with a download_url; fetch that to retrieve the result.

Progress events

text
event: progress
data: {"completed": 0, "total": 8, "step": "preprocess"}

event: progress
data: {"completed": 3, "total": 8, "step": "chunk:0"}

event: progress
data: {"completed": 8, "total": 8, "step": "aggregation"}

event: completed
data: {"job_id":"…","download_url":"https://…","output_type":"json"}

Errors

StatusMeaning
401Unauthorized
413File too large for this route
429Rate limited

Guide: Terminal & cURL