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:
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