Transcribe (Pre-recorded)
Transcribe (Pre-recorded)
Transcribe (Pre-recorded)
Transcribe an audio file. The model is chosen via ?model=:
?model=pulse-pro: English-only, leaderboard-ranked accuracy. Raw bytes only; pass webhook_url to receive transcription asynchronously on long files.?model=pulse: multilingual transcription (38 languages), supports both raw bytes and audio-by-URL.Use this endpoint when you have a complete audio file (call recording, voicemail, podcast episode) and want the transcript back in one response. For live transcription as audio arrives, use the realtime WebSocket endpoint (WS /waves/v1/stt/live) instead.
Pulse Pro has no streaming worker today; calls to WS /waves/v1/stt/live?model=pulse-pro return 400 before the WebSocket upgrades.
Content-Type: application/octet-stream with the audio in the body. All knobs are query parameters.?model=pulse only): Content-Type: application/json with {"url": "..."} in the body.cURL: Pulse Pro, sync
cURL: Pulse Pro, async via webhook
Returns 200 { "status": "processing", "request_id": "..." } immediately. The webhook receives the full transcription when ready.
cURL: Pulse, audio-by-URL
Python
JavaScript / TypeScript
model is required. Missing or invalid values return 400 with an enum-validation error.language=en. Other language codes are accepted at the wire level but produce unpredictable output.?model=pulse for the URL flow.413. Compress to mono 16 kHz PCM if you are close to the limit; quality is unaffected.Header authentication of the form Bearer <token>
Language of the audio file. For Pulse Pro pass en. For Pulse, see the Pulse model card for the full 38-language list, plus the multi, multi-eu, multi-indic, and multi-asian aggregators.
Include per-word timestamps in the response. On Pulse Pro this costs roughly one-third of throughput.
Multi-speaker identification; adds per-word and per-utterance speaker labels.
Pulse Pro only. If set, the response is 200 with {"status": "processing", "request_id": "..."} immediately, and the full transcription is delivered to this URL when ready. Use for long files where you do not want to hold an HTTP connection open.
Returned by Pulse Pro when webhook_url is set. The transcription arrives on the webhook when ready.
Selects which ASR model handles the request. Required; missing or invalid values return 400.
pulse-pro: English only, leaderboard-ranked accuracy, raw bytes only; supports async via webhook_url.pulse: multilingual (38 languages), raw bytes OR URL.Transcription succeeded. The response body has two shapes:
TranscriptionResponse with transcription, words, metadata, etc. Returned when webhook_url is not set (all ?model=pulse requests, and ?model=pulse-pro requests without a webhook).{ "status": "processing", "request_id": "..." }. Returned when ?model=pulse-pro is paired with webhook_url. The full TranscriptionResponse then arrives on the webhook when ready.