Skip to main content
Transcription accepts a completed audio file and processes it asynchronously. Submit the recording, store the returned transcription ID, and poll until the resource is completed or failed. For live audio, use streaming transcription.

SDK

Submit multipart data through the SDK’s authenticated request method:
Use client.get() and client.delete() with the returned transcription resource path to retrieve or delete it.

Upload audio

The multipart file field must be named audio. A successful upload returns 201:
Store data.id; the response only confirms that processing has been accepted.

Upload options

Boolean form fields must be exactly true or false. Accepted MIME types include WAV, MP3/MPEG, FLAC, OGG, WebM, MP4/M4A, AAC, and Opus. The server may convert the file before transcription. Audio must have a measurable positive duration and may not exceed 24 hours. Supported language values:

Poll the transcription

Possible data.status values are pending, processing, completed, and failed. A completed response has one result per channel:
words and speaker are optional. Stop polling when the status is completed or failed. On failure, data.result.error contains a safe summary. If webhooks are configured for the account, terminal events use audio_transcription.succeeded or audio_transcription.failed and include the same public transcription object in data.

Delete a transcription

A successful deletion returns 204 No Content.

Errors and retries

Once an upload returns an ID, poll that resource. GET, DELETE, and webhook retries do not start another transcription.