Transcribe audio
Transcribe audio into text.
/model/v1/audio/transcriptions● SupportedRequest body
modelstring必填Transcription model id, for example `whisper-large-v3-turbo` or `qwen3-asr-flash`; list candidates with listModels?type=transcription. Router support (supported): Verified to take effect.
Verified to take effect.
temperaturenumber可选○ UnsupportedBoth whisper-large-v3-turbo and qwen3-asr-flash return 400.
response_formatstring可选◐ Partially supportedFormat of the response body. `json` and `text` are the commonly supported formats. Router support (partial): json/text work on both; verbose_json works only on whisper-large-v3-turbo. srt/vtt return 400.
json/text work on both; verbose_json works only on whisper-large-v3-turbo. srt/vtt return 400.
promptstring可选◐ Partially supportedText that primes the model with vocabulary or context. Router support (partial): Vocabulary hints work on whisper-large-v3-turbo only; qwen3-asr-flash returns 400.
Vocabulary hints work on whisper-large-v3-turbo only; qwen3-asr-flash returns 400.
filestring必填Audio file to transcribe, uploaded as multipart/form-data. Router support (supported): Verified to take effect.
Verified to take effect.
languagestring可选◐ Partially supportedLanguage of the audio as an ISO-639-1 code such as `en` or `zh`. Router support (partial): Both models accept ISO language codes. qwen3-asr-flash may translate output to that language; whisper-large-v3-turbo treats it as an input hint. Non-ISO names may return 502.
Both models accept ISO language codes. qwen3-asr-flash may translate output to that language; whisper-large-v3-turbo treats it as an input hint. Non-ISO names may return 502.
timestamp_granularities[]array可选◐ Partially supportedTimestamp levels to include with `verbose_json`; only `segment` exists in this schema. Router support (partial): Only whisper-large-v3-turbo supports segment with verbose_json. word returns 400; qwen3-asr-flash does not support timestamps.
Only whisper-large-v3-turbo supports segment with verbose_json. word returns 400; qwen3-asr-flash does not support timestamps.
Returns
200
Standard request fields; unrepresentable parameters return input_not_representable.
Platform errors (auth, rate limits, validation) and OCR errors use problem+json; other model call errors follow the endpoint's own format (OpenAI or Anthropic) — see error codes
Response
HTTP 200
Transcription in the requested format.
text/plain
| Name | Type | Description |
|---|---|---|
| $ | string |
application/json
| Name | Type | Description |
|---|---|---|
| text | string | The transcribed text. |
| task | string | Task performed; always `transcribe`. |
| language | string | Language of the audio as detected or as requested. |
| duration | number | Duration of the audio in seconds. |
| segments | array<object> | Segments with timestamps, returned with `verbose_json` on models that support it. |
| segments[].id | integer | Zero-based index of the segment. |
| segments[].start | number | Start time of the segment in seconds. |
| segments[].end | number | End time of the segment in seconds. |
| segments[].text | string | The transcribed text. |
| segments[].temperature | number | Sampling temperature used for the segment. |
| segments[].avg_logprob | number | Average log probability of the tokens of the segment; low values mean low confidence. |
| segments[].compression_ratio | number | Gzip compression ratio of the segment text; high values indicate repetitive output. |
| segments[].no_speech_prob | number | Probability that the segment contains no speech. |