Speaker Diarization
Diarization Models
Deepgram offers versioned diarization models. Use the diarize_model parameter to select a specific version:
Specifying diarize_model both enables diarization and selects the model version. You do not need to also set diarize=true.
Choosing a Model
- New integrations: Use
diarize_model=latestto always get the newest available diarizer. - Pin a specific version: Use
diarize_model=v1ordiarize_model=v2(batch only). - Streaming: Use
diarize_model=latestordiarize_model=v1. The v2 diarizer is not available for streaming and returns a validation error.
Enable Feature
Using diarize_model (recommended)
Use the diarize_model parameter to enable diarization and select the model version in a single parameter:
Using diarize (deprecated)
The diarize parameter is deprecated. Use diarize_model instead for both batch and streaming requests.
The boolean diarize parameter continues to work and always routes to the v1 diarizer:
diarize=true
Replace YOUR_DEEPGRAM_API_KEY with your Deepgram API Key.
Self-hosted deployments: diarize=true is pinned to the v1 batch diarizer. New self-hosted deployments provisioned at the May 2026 release (release-260514) or later receive only the v2 batch diarizer model by default — diarize=true on those deployments returns a successful response without speaker labels, consistent with Deepgram’s longstanding behavior when a requested diarizer model is not present. To produce diarized output on a fresh deployment, specify diarize_model=v2 or diarize_model=latest. See the Self-Hosted May 2026 release notes for details.
Versioning Behavior
Switch your diarize=true requests to diarize_model (use latest for most cases). Don’t set both diarize and diarize_model — requests that set both are rejected.
Model Compatibility
Diarization is compatible with all Nova batch models (Nova-1, Nova-2, Nova-3) as well as enhanced and base. Whisper is not supported.
Streaming
diarize_model is accepted on streaming requests with the following values:
diarize_model=v1— uses the v1 streaming diarizer.diarize_model=latest— resolves to the latest streaming diarizer (currently v1).diarize_model=v2— not supported on streaming. Returns a validation error.
The deprecated diarize=true parameter also continues to work for streaming and routes to the v1 diarizer.
Analyze Response
For this example, we use an MP3 audio file that contains the beginning of a customer call with Premier Phone Services. If you would like to follow along, you can download it.
When the file is finished processing, you’ll receive a JSON response. Let’s look more closely at the words object within the alternatives object within this response.
Pre-Recorded
When using diarization for pre-recorded audio, both speaker and speaker_confidence values will be returned:
Live Streaming
When using diarization for live streaming audio, only the speaker value will be returned:
Diarizer Model Metadata
When a diarizer runs, the response metadata includes a diarize_info object that identifies the diarizer build that produced the speaker labels. It appears alongside model_info in both pre-recorded and streaming responses, which makes the resolved model visible when diarize_model=latest resolves to different versions across batch and streaming:
model_uuid— the UUID of the diarizer build that ran.arch— the diarizer architecture family (v1orv2) thatdiarize_modelresolved to, which makesdiarize_model=latestresolution visible. Legacydiarize=truerequests reportv1.
diarize_info is present only when a diarizer actually ran:
diarize_info is either present with both fields or absent entirely — it is never null or {}. An absent block on a request that asked for diarization means the diarizer did not run, which is how you distinguish a missing diarizer from single-speaker audio.
Format Response
To improve readability, you can use a JSON processor to parse the JSON. In this example, we use JQ and further improve readability by turning on Deepgram’s punctuation and utterances features:
Replace YOUR_DEEPGRAM_API_KEY with your Deepgram API Key.
When the file is finished processing, you’ll receive the following response:
To learn more about when to use Deepgram’s Diarization or Multichannel feature, see When to Use the Multichannel and Diarization Features.
What’s Next