Create Transcription
/v1/audio/transcriptionsAudio transcription endpoint. Supports multipart file, file_id, url, and audio_url; audio_data is not supported.
Choose transcription mode
| Scenario | model | Response format |
|---|---|---|
| Standard audio transcription | moss-transcribe-1.0 | JSON / text |
| Multi-speaker transcription | moss-transcribe-diarize-pro | JSON with segments; pass stream=true to return SSE |
Request parameters
Model ID. Use moss-transcribe-1.0 for standard transcription; use moss-transcribe-diarize-pro for multi-speaker transcription, keyterms, and SSE streaming output.
Upload a local audio or video file directly via multipart/form-data, without first calling the file upload endpoint. Without async=true, the transcription result is returned synchronously. Maximum 512 MB per file.
Reference the file ID returned by POST /v1/files.
Public audio URL accessible to the server; it must not point to localhost, a loopback address, or a private network address.
Compatibility field for url with the same access restrictions; use url for new calls.
When set to true, returns speaker diarization results. Only moss-transcribe-diarize-pro supports this field; omit it or pass false to return only the complete text.
List of keyterms used to improve recognition accuracy for proper nouns, personal names, brand names, and business terminology. Only moss-transcribe-diarize-pro supports this field; up to 20 keyterms, with a maximum of 30 characters each; omit it or pass [] to disable it. With multipart/form-data, pass a JSON-encoded string array such as ["MOSS","SGLang"].
Only moss-transcribe-diarize-pro supports true, which returns transcription events over SSE; it cannot be combined with async=true.
Transcription result format. Non-streaming requests default to json; streaming always returns SSE events, so explicitly use verbose_json.
When set to true, creates an asynchronous task and immediately returns a task object; cannot be combined with stream=true.
The HTTPS URL called back after the asynchronous task completes.
Supported formats and upload limits
| Item | Description |
|---|---|
| File size | Maximum 512 MB; direct uploads use the same limit as /v1/files. |
| Supported formats | AAC, AMR, FLAC, M4A, ALAC, MOV, MP3, MP4, MPG, OGG, OPUS, WAV, WebM, WMA |
| Audio/video containers | MOV, MP4, MPG, and WebM can be transcribed. |
Return value
Returns the complete transcription text when response_format=json and diarize is not enabled.
Returns the complete text and speaker segments when diarize is enabled or response_format=diarized_json is used.
Returns plain text directly when response_format=text.
When stream=true, server-sent events are returned continuously until completion or failure; the example uses the streaming-only verbose_json format.
When async=true, immediately returns a task object; retrieve the result from the task query endpoint.
Error codes
An invalid input source, stream / async combination, or keyterms.
Error details
The following cases return a parameter error:
keytermsis not an array of strings.keytermscontains non-string elements.- The standard
moss-transcribe-1.0model is used with non-emptykeyterms.