Live audio
Transcribe audio and video using Deepgram’s speech-to-text WebSocket
HandshakeTry it
Authentication
Use Authorization: Token <API_KEY>
Example: Authorization: Token 12345abcdef
Use Authorization: Bearer <JWT>
Example: Authorization: Bearer eyJhbGciOiJ...
Headers
Use your API key or a temporary token for authentication via the Authorization header. In client-side environments where custom headers are not supported, use the Sec-WebSocket-Protocol header instead.
Example: Authorization: Token %DEEPGRAM_API_KEY% or Authorization: Bearer %DEEPGRAM_TOKEN%
Query parameters
Deprecated: use diarize_model instead. Recognize speaker changes. Each word in the transcript will be assigned a speaker number starting at 0.
Select and enable a specific diarization model version. Specifying this parameter enables diarization and selects the model — you do not need to also set diarize=true. Supported values for streaming: v1, latest. The v2 value is not supported on streaming and returns a validation error.
Indicates how long Deepgram will wait to detect whether a speaker has finished speaking or pauses for a significant period of time. When set to a value, the streaming endpoint immediately finalizes the transcription for the processed time range and returns the transcript with a speech_final parameter set to true. Can also be set to false to disable endpointing
Arbitrary key-value pairs that are attached to the API response for usage in downstream processing
Key term prompting improves recognition of specialized terminology and brands. Only compatible with Nova-3.
keyterm accepts plain terms only. Unlike the legacy keywords feature, it does not support weights or intensifiers. Appending one (for example, keyterm=term:0.15) is not rejected—the weight is silently ignored and the entire value is treated as a literal keyterm.
To boost multiple separate keyterms, repeat the keyterm parameter (for example, keyterm=term1&keyterm=term2). To boost one multi-word phrase as a single keyterm, join the words with %20 or + (for example, keyterm=customer%20service). Do not separate keyterms with commas, semicolons, or line breaks.
Keywords can boost or suppress specialized terminology and brands. keywords is not supported with Nova-3 models; use keyterm instead.
The BCP-47 language tag that hints at the primary spoken language. Depending on the Model you choose only certain languages are available
Biases language detection toward one or more languages on Nova-3 multilingual (model=nova-3&language=multi); ignored with any other language. Repeat the parameter to pass several codes, for example language_hint=en&language_hint=es. A code that is not in the Nova-3 multilingual list rejects the WebSocket connection with HTTP 400. See Nova-3 Language Prompting.
Opts out requests from the Deepgram Model Improvement Program. Refer to our Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip
Profanity Filter looks for recognized profanity and converts it to the nearest recognized non-profane word or removes it from the transcript completely
Replaces the values of user-supplied text parameters (keyterm, keywords, replace, search, and extra) with [REDACTED] in this request’s usage records. Does not affect transcription, the response, or tag. Independent of mip_opt_out. https://developers.deepgram.com/docs/redact-usage
Sample rate of submitted audio. Required (and only read) when a value is provided for encoding
Indicates how long Deepgram will wait to send an UtteranceEnd message after a word has been transcribed. Use with interim_results
Send
Updates the configuration of an open stream without reconnecting. Fields you omit keep their current values.
The server answers every Configure with exactly one ConfigureSuccess or ConfigureFailure message. On
failure, the stream keeps its previous configuration. Only one Configure can be pending at a time; wait for
its response before sending another.
Receive
Confirms that a Configure message was applied. Echoes the fields the Configure replaced; fields it did not
change are omitted.
Indicates that a Configure message was rejected in full. The stream keeps its previous configuration and
stays open.
Metadata event - these are usually information describing the connection
vad_events is true and speech has been detected
Receive an error message from the server. The stream stays open after a SchemaError and
continues with its previous settings. Fatal failures close the socket with a close frame and
send no Error message. Rejected Configure messages return ConfigureFailure instead.