Skip to main content
POST
Transcribe audio

Authorizations

Authorization
string
header
required

Token from the discovery file. Required on every endpoint except /health.

Body

application/json
file
string

Absolute filesystem path. Mutually exclusive with audio_base64. Where a platform applies the 48 MiB audio limit to a file path, a larger file is refused with INVALID_REQUEST — see Request limits in the Local API overview for what each platform enforces.

audio_base64
string

base64-encoded audio bytes. Pair with mime_type.

mime_type
string

e.g. audio/wav, audio/m4a, audio/mpeg, audio/flac

mode_id
string<uuid>

Saved Mode used as the baseline. May be combined with engine/model/language to override per-call.

engine
string

whisperLocal | parakeet | nemotron | qwen3Asr | appleSpeech | . nemotron and appleSpeech are macOS only. Windows and Linux reject them with ENGINE_UNAVAILABLE.

model
string
language
string
timestamp_granularities
enum<string>[]

macOS only. Opt-in caption timestamps — ['segment'], ['word'], or both. Populates segments/words on the response.

Available options:
segment,
word

Response

200 - application/json

Transcript or business error envelope

ok
boolean
text
string
engine
string
model
string
language
string | null
timings
object
latency_ms
integer
raw_text
string | null

macOS only. Set when timestamp_granularities was requested.

segments
object[] | null

macOS only. Present when timestamp_granularities included 'segment'.

words
object[] | null

macOS only. Present when timestamp_granularities included 'word'.