Scribe v2 is a speech-to-text model from ElevenLabs for recorded audio. It transcribes speech in more than 90 languages and detects the language automatically, labels up to 32 different speakers, returns word-level timestamps and tags non-speech sounds such as (laughter) or (applause) in the transcript. It is available on AI/ML API as elevenlabs/scribe_v2.
Scribe v2 works on complete files. ElevenLabs offers a separate Scribe v2 Realtime model for live, streaming transcription; this page covers the batch model.
A job is submitted to POST /v1/stt/create with either a url or an audio file, and the result is fetched from GET /v1/stt/{generation_id}. Optional parameters: language_code (ISO-639-1 or ISO-639-3) to skip detection, diarize to label speakers, num_speakers (1–32) as a hint for speaker labelling, timestamps_granularity (word or character), tag_audio_events, no_verbatim to drop filler words, false starts and non-speech sounds, plus temperature and seed.
Scribe v2 is billed per second of audio at $0.000079444, which is about $0.0048 per minute or $0.29 per hour of audio.
Meeting, interview and podcast transcription, where speaker labels for up to 32 people and word-level timestamps turn a recording into a readable, searchable transcript.
Subtitles and captions for recorded video, built from word or character timestamps.
Multilingual archives and call recordings, using automatic language detection across 90+ languages.
Clean transcripts for downstream text processing, with no_verbatim removing filler words and false starts, or audio event tags kept when laughter or applause matters to the content.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v1/stt/create", headers=headers, json={ "model": "elevenlabs/scribe_v2", "url": "https://example.com/audio.mp3", "diarize": true }, ).json() gid = job["generation_id"] while True: res = requests.get(f"https://api.aimlapi.com/v1/stt/{gid}", headers=headers).json() if res.get("status") in ("completed", "error", "failed"): break time.sleep(3) print(res)
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v1/stt/create", { method: "POST", headers, body: JSON.stringify({ "model": "elevenlabs/scribe_v2", "url": "https://example.com/audio.mp3", "diarize": true }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 3000)); res = await (await fetch(`https://api.aimlapi.com/v1/stt/${job.generation_id}`, { headers })).json(); } while (!["completed", "error", "failed"].includes(res.status)); console.log(res);
# submit the job — the response contains "generation_id" curl -X POST https://api.aimlapi.com/v1/stt/create \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"elevenlabs/scribe_v2","url":"https://example.com/audio.mp3","diarize":true}' # then poll for the result until it is ready curl "https://api.aimlapi.com/v1/stt/{generation_id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
Billed per second of audio at $0.000079444 (about $0.0048 per minute, $0.29 per hour).
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Scribe v2 This page | Transcription of recorded audio |
Yes. Scribe v2 is live on AI/ML API as elevenlabs/scribe_v2. Submit a job to POST /v1/stt/create and fetch the result from GET /v1/stt/{generation_id}.
More than 90, with automatic language detection. You can also set language_code to skip detection.
Yes. With diarize enabled it labels which speaker says each word, for up to 32 speakers. num_speakers sets the expected maximum.
Yes. Word-level timestamps are returned by default; set timestamps_granularity to character for character-level timings.
No. Scribe v2 transcribes recorded audio files. Scribe v2 Realtime is ElevenLabs' separate model for live, streaming transcription.
$0.000079444 per second of audio, which is about $0.0048 per minute or $0.29 per hour.