
Use Grok Voice Transcribe 2.0 on the Speech-to-Text API
grok-voice-transcribe-2.0 is the current Speech-to-Text model on the xAI API. Docs list it as the default when model is omitted. News: Introducing Grok Voice Transcribe 2.0 (Sep 18, 2026). Capability guide: Speech to Text.
Unary call with the model named
curl -X POST https://api.x.ai/v1/stt \
-H "Authorization: Bearer $XAI_API_KEY" \
-F model=grok-voice-transcribe-2.0 \
-F format=true \
-F language=en \
-F "keyterm=Understand The Universe" \
-F file=@audio.mp3
Put every option field before file. The guide warns that fields after file may be ignored on streamable uploads.
Omit model and you still get grok-voice-transcribe-2.0. Naming it makes the choice visible in logs and code review.
Streaming
Open wss://api.x.ai/v1/stt with model=grok-voice-transcribe-2.0 in the query string (same default if omitted). Wait for transcript.created, send raw audio as binary frames, finish with {"type":"audio.done"}. Proxy the socket through your backend so the API key never sits in the browser.
What ships with 2.0 at the same price
Batch is $0.10 / hr of audio; streaming is $0.20 / hr (pricing). Diarization, timestamps, and key terms are included. Existing STT integrations that omit model pick up 2.0 accuracy with no code change once it is the default.
Related knobs
- Multichannel, diarize, Smart Turn, filler words, and key terms: Transcribe audio with the Grok Voice API and Stream speech to text over WebSocket.
- Stay on 1.0 during the transition: Pin Grok Voice Transcribe 1.0.
Pitfalls
- Max file size is 500 MB (
413when larger). format=trueneedslanguage.- This covers the Voice API STT endpoints only. grok.com Voice Mode and Grok Bot dictate / Start voice chat use different surfaces.