Skip to main content
POST

Authorizations

Authorization
string
header
required

Your AssemblyAI API key, sent as the raw key with no Bearer prefix. An invalid key returns 404, not 401.

Body

multipart/form-data
config
object
required

Transcription and rewrite configuration. Must be the first part, ahead of audio. Send an empty object ({}) to transcribe with defaults, including the default rewrite. Unknown fields are forwarded to the transcription engine as-is, so transcription parameters added in future work without dictation-side changes.

audio
file
required

Audio bytes, at most 120 seconds. Set the part's Content-Type to audio/wav for WAV or audio/pcm for raw 16-bit PCM. Compressed formats (MP3, M4A, FLAC, OGG, WebM) are rejected with 415. The part may be uploaded in chunks as the audio is captured.

Response

Transcription completed. The rewrite is best-effort: a failed rewrite still returns 200 with the transcription, llm_response set to null, and llm_error set. Fall back to text in that case, and never treat a non-null llm_error as a failed request.

text
string
required

The verbatim transcript. Never altered by the LLM.

words
object[]
required

Per-word transcript objects.

confidence
number<float>
required

Overall transcription confidence (0–1).

audio_duration_ms
number
required

Duration of the submitted audio in milliseconds.

session_id
string<uuid>
required

Server-generated request identifier. Include it when reporting problems.

llm_response
string | null

The rewritten text, or null when the rewrite failed. Fall back to text when it is null.

llm_error
enum<string> | null

Set when the rewrite failed. timeout means the rewrite passed its 5-second internal deadline. null on success.

Available options:
timeout,
error
request_time_ms
number<float>

Total server-side processing time in milliseconds.

sync_time_ms
number<float>

The transcription portion of request_time_ms, in milliseconds.