Capabilities
Audio formats and endpoints
Audio and video formats, sample rates, file size limits, and endpoints for the STT API.
Supported audio formats
| Format | Sync API | WebSocket Streaming |
|---|---|---|
LINEAR16 (PCM) | ||
MP3 | ||
OGG_OPUS | ||
FLAC | ||
AUTO_DETECT |
Use a 16,000 Hz sample rate, 16-bit depth, and mono audio as defaults. For container formats (MP3, FLAC, OGG_OPUS, WAV), sampleRateHertz is optional. The API reads the sample rate from the file header.
.m4a files (audio-only MP4, typically AAC) work on the synchronous and asynchronous endpoints — send AUTO_DETECT. Do not send MP4 for an audio-only file: that encoding expects a video container, and the request fails on both endpoints.
Video files
You can send a video file to transcribe its audio. The API extracts the audio track and discards the video. You are billed for the audio duration, as with any other recording.
| Format | Sync API | WebSocket Streaming |
|---|---|---|
MP4 — also covers .m4v and .mov | ||
WEBM | ||
MXF |
These formats identify the container. The API reads the audio codec from the file: AAC, AC-3, E-AC-3, ALAC, Opus, MP3, or uncompressed PCM. AUTO_DETECT works for all of them. You can specify the container to get an earlier, clearer error if the file doesn't match.
.mov and .m4v are the same container as .mp4, so send MP4 for those. .mkv is accepted as WEBM, which is the same Matroska container.
Video files often exceed the synchronous endpoint's ~16 MB limit. A few minutes of 1080p video can exceed it even when the audio track is small. Use asynchronous transcription for video. It accepts files up to 512 MB. Use audioUri to point to a file in cloud storage instead of uploading it.
Sync transcription accepts audio files up to ~16 MB. How much audio fits depends on the encoding: for example, ~18 minutes of MP3 or ~8 minutes of 16 kHz 16-bit WAV. For larger files, split them into chunks or use the WebSocket streaming endpoint.
STT performs best with 16 kHz audio. Lower sample rates, such as 8 kHz telephony audio, give the model less data and reduce transcription accuracy. Upsampling this audio doesn't improve quality. It fills in values between existing samples without adding new information.
Endpoints
| Endpoint | Method | Description |
|---|---|---|
/stt/v1/transcribe | POST | Send complete audio, receive full transcript |
/stt/v1/transcribe:streamBidirectional | WebSocket | Stream audio in real time, receive transcription chunks as they become available |