Transcribe a recording

Transcribe one complete audio recording in a single request.

Send multipart/form-data with two parts: request, the transcription settings as JSON, and audio, the clip. The Accept header selects between a buffered JSON body, a server-sent event stream, and plain text.

POST /asr/transcribe

Transcribe a complete audio recording.

Parameters

Query parameters

FieldTypeRequiredDescription
sessionIdstringNoCorrelation id used in server-side logs and echoed in the response. When omitted, the server generates one.

Request body

Content Type: multipart/form-data

object

Response

HTTP 200 — The transcript, in the shape selected by Accept. application/json, */*, or an absent header returns the buffered body. text/event-stream returns the realtime event stream, which ends after the last event and appends no summary. text/plain returns one turn per line in ENDPOINTING, or lines of the form A:Hello in DIARIZATION (a turn the model never attributed renders as unknown:<transcript>).

Content Type: application/json

TranscribeResponse

Content Type: text/event-stream

ServerMessage

Response

HTTP 400 — The audio is not a supported WAV file, the audio exceeds 10 minutes, or the body is not multipart/form-data.

Response

HTTP 406 — The Accept header requested a media type this endpoint does not produce.

Response

HTTP 413 — The request body exceeds the maximum of 32 MB.

Response

HTTP 429 — The caller reached its concurrency or hourly session limit. Retry with exponential backoff.

Response

HTTP 500 — Transcription failed, or processing exceeded the server budget. Once an event stream has started there is no status left to set, so the failure arrives as a terminal error event on the open stream under HTTP 200.

shell
curl -X POST "https://api.meta.ai/v1/asr/transcribe" \
-H "Authorization: Bearer $MODEL_API_KEY" \
-H "Accept: application/json" \
-F 'request={"model":"muse-voice-transcribe-1.0","audioEncoding":"WAV","mode":"PUSH_TO_TALK"};type=application/json' \
-F "audio=@recording.wav;type=audio/wav"

Errors carry an HTTP status and a client-safe message with a type, plus code and param when the failure has them. On text/event-stream the failure arrives instead as a terminal error event carrying the same taxonomy. Retain the session id: it is the only correlation handle for a support request.

For audio conversion, modes, and worked examples, see the Speech to text feature page.