Skip to content

Scribe v2 Realtime

elevenlabs/scribe-v2-realtime

Streaming counterpart to Scribe v2, transcribing live audio over a WebSocket with about 150 ms latency across 90+ languages. It offers voice activity detection, manual commit control and word timestamps, but no speaker diarization.

API
import WebSocket from "ws";
import { readFile } from "node:fs/promises";

// Use mono, 16 kHz, signed 16-bit little-endian PCM.
const audio = await readFile("recording.pcm");
const url = new URL("/v1/audio/transcriptions/stream", process.env.AUDIOLAB_API_URL);
url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
const socket = new WebSocket(url, {
  headers: { Authorization: `Bearer ${process.env.AUDIOLAB_API_KEY}` },
});
socket.on("open", () => socket.send(JSON.stringify({
  type: "session.start", model: "elevenlabs/scribe-v2-realtime",
  encoding: "pcm_s16le", sample_rate: 16000, channels: 1,
})));
socket.on("message", (data) => {
  const event = JSON.parse(data.toString());
  console.log(event);
  if (event.type === "session.started") {
    for (let offset = 0; offset < audio.length; offset += 3200)
      socket.send(audio.subarray(offset, offset + 3200));
    socket.send(JSON.stringify({ type: "session.finish" }));
  }
});
Input Price
$0.0055 / minute
Output Price
—
Input
Audio
Output
Text

Capabilities

Explore what Scribe v2 Realtime supports, then use the API section for a request tailored to this model.

StreamWord timestampsConfidence

Languages

Multilingual

Model Information

Provider
ElevenLabs
Product
Speech-to-Text
Release Date
Nov 11, 2025
Data Policy
Configurable
Region
Unknown
Input
Audio
Output
Text
Provider Documentation

Playground

Try Scribe v2 Realtime by ElevenLabs. Requests use the selected workspace’s credits and API pricing.

Scribe v2 RealtimeCredits —
Scribe v2 Realtime
This model uses a dedicated input format. Explore its API example or open the supported playground.

Providers

Compare available endpoints, pricing, and context limits for Scribe v2 Realtime.

ProviderContextOutputInput PriceOutput PriceEndpoint
ElevenLabsNot specifiedText$0.0055 / minute—
elevenlabs/scribe-v2-realtime:elevenlabs

Prices are catalog rates. Your workspace’s estimate and endpoint pricing determine the final charge.

Input and Output Limits

Formats and limits AudioLab enforces on each request.

LimitValue
Max bytesNot specified
Max secondsNot specified
Formats

Provider Notes

Scribe v2 is the current uploaded-audio model; Scribe v2 Realtime is a separate WebSocket model. Scribe v1 was removed from ElevenLabs on July 9, 2026 and is intentionally not routed. Batch keyterms allow up to 1000 entries of fewer than 50 characters and at most 5 words; realtime allows only 50 entries of up to 20 characters. The batch adapter supports speaker roles, multichannel output, entity detection/redaction, and provider export formats; the realtime model has no speaker diarization and uses commit/VAD controls instead. AudioLab meters the documented batch keyterm, entity, speaker-role, and multichannel surcharges.

Performance

Status

Current catalog availability. Your workspace’s access is checked separately before a request runs.

Getting Started

Use your workspace API key and the exact model identifier below. Set the API URL to the endpoint shown in your workspace and keep credentials on your server.

API
import WebSocket from "ws";
import { readFile } from "node:fs/promises";

// Use mono, 16 kHz, signed 16-bit little-endian PCM.
const audio = await readFile("recording.pcm");
const url = new URL("/v1/audio/transcriptions/stream", process.env.AUDIOLAB_API_URL);
url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
const socket = new WebSocket(url, {
  headers: { Authorization: `Bearer ${process.env.AUDIOLAB_API_KEY}` },
});
socket.on("open", () => socket.send(JSON.stringify({
  type: "session.start", model: "elevenlabs/scribe-v2-realtime",
  encoding: "pcm_s16le", sample_rate: 16000, channels: 1,
})));
socket.on("message", (data) => {
  const event = JSON.parse(data.toString());
  console.log(event);
  if (event.type === "session.started") {
    for (let offset = 0; offset < audio.length; offset += 3200)
      socket.send(audio.subarray(offset, offset + 3200));
    socket.send(JSON.stringify({ type: "session.finish" }));
  }
});
Read the Endpoint Reference

Request Parameters

Available parameters depend on the provider and request format. The endpoint reference explains accepted values and required fields.

ParameterDetails
modelelevenlabs/scribe-v2-realtime — Required model identifier.
additional_formats (DOCX, HTML, PDF, segmented JSON, SRT, TXT)View Accepted Values
timestamps_granularity / num_speakers / diarization_threshold / detect_speaker_rolesView Accepted Values
use_multi_channel / multichannel_output_style / use_speaker_libraryView Accepted Values
entity_detection / entity_redaction / entity_redaction_modeView Accepted Values
tag_audio_events / no_verbatim / seed / temperature / enable_loggingView Accepted Values
commit_strategy / VAD thresholds and durations (realtime)View Accepted Values
previous_text / include_language_detection / filter_background_audio (realtime)View Accepted Values

Input and Output Limits

Formats and limits AudioLab enforces on each request.

LimitValue
Max bytesNot specified
Max secondsNot specified
Formats

Similar Models

Explore more speech-to-text and compare their capabilities.

ModelContextInput PriceOutput Price
Scribe v2ElevenLabsNot specified$0.0031 / minute—
MAI-Transcribe 2Microsoft AzureNot specified$0.0014 / minute—
Gemini 3.5 TranscribeGoogle GeminiNot specified$0.0043 / minute—
Saaras v4Sarvam AINot specified₹0.425 / minute—
saaras-v4-batchSarvam AINot specified₹0.425 / minute—
qwen-audio-3.0-asr-flashAlibaba Cloud Model StudioNot specified$0.0018 / minute—
View All Speech-to-Text