Scribe v2 API

elevenlabs/scribe_v2
Scribe v2 is ElevenLabs' high-accuracy speech-to-text model for recorded audio in 90+ languages.
Output
$0.000079444 / sec
Released
Oct 14, 2026

Overview

What Is Scribe v2?

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.

Specifications

  • Developer: ElevenLabs
  • Available on AI/ML API since: 14 October 2026
  • Input: audio file or audio URL — output: text transcript
  • Languages: 90+, with automatic detection
  • Speaker labels: up to 32 speakers
  • Timestamps: word level by default, character level on request
  • Audio events: tags such as (laughter) and (applause), on by default

Request Options on AI/ML API

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.

Pricing on AI/ML API

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.

Use cases

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.

How to use Scribe v2 API

Install any OpenAI-compatible SDK, point it at api.aimlapi.com/v1, and set the model to elevenlabs/scribe_v2.
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.

Scribe v2 API Pricing

TypePrice
Output
$0.000079444 / sec

Billed per second of audio at $0.000079444 (about $0.0048 per minute, $0.29 per hour).

Scribe v2 vs other models

ModelInputOutputContextBest for
Scribe v2
This page
$0.000079444 / sec
Transcription of recorded audio
$15.6 / 1M tokens
$13 / 1M tokens
Transcription
$0.0001668 / sec
Transcription

Frequently asked questions

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.

Start building with Scribe v2

Get API Key
1000+ models, one API.