Skip to main content
The pre-recorded transcription endpoint is designed for audio files you already have on hand: voice notes, meeting clips, voicemail recordings, and similar short-form content up to 5 minutes long. You send one file per request and receive the finished transcript in the response body — no polling, no callbacks, just a straightforward synchronous call.
Constraints
  • Supported formats: wav, ogg, webm
  • Max file size: 50 MB
  • Max duration: 300 seconds (default — can be raised on request)

Make a request

Attach your audio file as a multipart audio field and specify which model to use. Make sure your API key is set in the environment first (see Authentication).

Response

A successful request returns a JSON object containing the transcript, detected language, and billing usage:

Choosing a language

The language parameter is optional. Pass an ISO 639-1 code — for example en for English or zh for Mandarin Chinese — to give the model a hint that improves accuracy, especially for shorter clips or accented speech. If you omit it — or pass an unsupported/unrecognized code — the API detects the language automatically and reports the result in detected_language on every response.

Choosing a model

The model field is required. Three tiers are available: See Models & Pricing for a full breakdown of per-second rates.

Timeouts

The request is synchronous: your HTTP connection stays open until transcription is complete. Internally, the ASR stage has a 90-second timeout and the refinement stage has a 60-second timeout. If either limit is exceeded, the API returns SERVICE_UNAVAILABLE (503) and you are not charged for that request.
Billing is per second of audio with a 15-second minimum per request. See Models & Pricing for rates.