model and file and returns
transcript text. Each model accepts files up to its provider’s own limit, published
as max_file_size_bytes on GET /v1/models. Discover available transcription models
by selecting output_modality: "audio_transcription" from GET /v1/models.
For recordings longer than a couple of hours, use ElevenLabs Scribe: 5 GB covers many
hours of compressed audio (MP3, M4A, Opus) and roughly four hours of 16-bit stereo WAV.
Transcribe a file
pricing.audio_input_per_minute_usd in GET /v1/models. Groq Whisper has a
10-second minimum per request, published as audio_minimum_billing_seconds.
Failed upstream requests and cancelled streams are not charged.
For openai/gpt-transcribe, the rate is $0.0045 per audio minute**.
Both ElevenLabs Scribe models bill **$0.22 per audio hour, per second of audio.
Groq Whisper and xAI STT
json, text, and verbose_json responses. Word or segment
timestamps use repeated timestamp_granularities[] fields with verbose_json.
Both Whisper models accept temperature from 0 to 1.
For xai/grok-stt-1.0, use repeated keyterm fields for vocabulary hints. Its JSON
response includes text, language, duration, and word timestamps. Request
response_format=text for plain text. The native controls format, diarize,
filler_words, and vad_threshold pass through. format=true also requires
language. The gateway accepts completed container files and does not expose
xAI’s realtime WebSocket interface or raw PCM uploads on this endpoint.
These request contracts follow the Groq transcription guide
and xAI transcription guide.
ElevenLabs Scribe
elevenlabs/scribe-v2 is general-purpose transcription. elevenlabs/scribe-v2-medical
is tuned for clinical vocabulary. Both take the same request.
language is translated to ElevenLabs’ language_code. Send one or the other,
not both. The response is ElevenLabs’ JSON transcript with text,
language_code, audio_duration_secs, and word timestamps. Request
response_format=text for plain text.
These native controls pass through: diarize, num_speakers,
diarization_threshold, tag_audio_events, timestamps_granularity,
file_format, additional_formats, use_multi_channel,
multichannel_output_style, and enable_logging.
Scribe takes no prompt, keywords[], or keyterm, and does not stream. Sending
any field outside the list above returns 400 before anything is billed. That
includes ElevenLabs’ asynchronous webhook delivery and remote sources
(source_url, cloud_storage_url): upload the file itself. The request contract
follows the ElevenLabs speech-to-text reference.
Add transcription context
Useprompt for unstructured recording context, keywords[] for expected terms,
and languages[] for expected language codes.
languages[], not the singular language field.
Stream a completed file
Setstream=true to receive transcript.text.delta events followed by a final
transcript.text.done event.

