API reference · API
Transcribe audio (OpenAI wire format)
POST/v1/audio/transcriptionsAPI key
Served on the terms a completion is: the key's chat scope and policy, the account's credits with a hold at the worst case, and one metered usage row settled at what the upstream measured. A model with no published price, or one priced in a unit the endpoint does not report, is refused on house money with 503 pricing_unavailable and served on your own provider key. With no provider configured the answer is 503 upstream_unavailable. No fallback chain and no x402: a media request names one model and needs a key. The upload is capped at ANTIMATTER_AUDIO_MAX_BYTES (4000000 bytes by default, under Vercel's request ceiling; at most 26214400), answered 413 request_too_large past it. whisper-1 is charged per second of audio, gpt-4o-transcribe and gpt-4o-mini-transcribe per token of each kind, and an OpenRouter model the cost its answer reports. The hold reserves the file at 16 kbps, the longest it plausibly plays. srt and vtt are refused: they carry no usage, so their cost cannot be measured; verbose_json carries the timings.
Request body
multipart/form-data, required
| Field | Type | What it is |
|---|---|---|
| filerequired | string | flac, mp3, mp4, mpeg, mpga, m4a, ogg, oga, opus, wav, webm or aac, by extension or content type. |
| modelrequired | string | openai/whisper-1, openai/gpt-4o-transcribe, openai/gpt-4o-mini-transcribe, or an OpenRouter model with output_modalities transcription. |
| language | string | ISO-639-1, such as en. |
| prompt | string | OpenAI only; named in x-antimatter-adjusted elsewhere. At most 4000 characters. |
| response_format | string | One of "json", "text", "verbose_json". |
| temperature | number | From 0 to 1. |
| timestamp_granularities[] | array of string | With verbose_json only. |
Answer 200
The transcript: json, verbose_json, or plain text.
Headers: x-antimatter-upstream, x-antimatter-model, x-antimatter-request-id, x-antimatter-byok, x-antimatter-adjusted, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset
| Field | Type | What it is |
|---|---|---|
| text | string | |
| usage | object |
Errors
- 400OpenAI shaped error.
- 401OpenAI shaped error.
- 402OpenAI shaped error.
- 403OpenAI shaped error.
- 404OpenAI shaped error.
- 413OpenAI shaped error.
- 429OpenAI shaped error.
- 502OpenAI shaped error.
- 503OpenAI shaped error.
- 504OpenAI shaped error.
Every error answers in one shape, with its type, code and the field it names. The whole list is in the docs' Errors section.