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.mp3Behavior
- Client streams the raw audio bytes as the request body.
- 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 (
progressevents carryingcompleted/total/step). - On success it emits a terminal
completedevent with adownload_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
| Status | Meaning |
|---|---|
401 | Unauthorized |
413 | File too large for this route |
429 | Rate limited |
Guide: Terminal & cURL