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.
diarize_model=latest to always get the newest available diarizer.diarize_model=v1 or diarize_model=v2.diarize_model is not accepted on streaming. Use diarize=true for streaming diarization (see Streaming below).diarize_model (recommended)Use the diarize_model parameter to enable diarization and select the model version in a single parameter:
diarize (legacy)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.
To use the new versioned diarizer on batch requests, 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.
Diarization is compatible with all Nova batch models (Nova-1, Nova-2, Nova-3) as well as enhanced and base. Whisper is not supported.
diarize_model is not accepted on streaming requests and returns 400 regardless of value. For streaming diarization, use the legacy diarize=true parameter, which routes to the v1 streaming diarizer.
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.
When using diarization for pre-recorded audio, both speaker and speaker_confidence values will be returned:
When using diarization for live streaming audio, only the speaker value will be returned:
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