Providers
Deepgram
Deepgram is a speech-to-text API. In OpenClaw it is used for inbound
audio/voice-note transcription through tools.media.audio and for Voice Call
streaming STT through plugins.entries.voice-call.config.streaming.
For batch transcription, OpenClaw uploads the complete audio file to Deepgram
and injects the transcript into the reply pipeline ({{Transcript}} +
[Audio] block). For Voice Call streaming, OpenClaw forwards live G.711
u-law frames over Deepgram's WebSocket listen endpoint and emits partial or
final transcripts as Deepgram returns them.
| Detail | Value |
|---|---|
| Website | deepgram.com |
| Docs | developers.deepgram.com |
| Auth | DEEPGRAM_API_KEY |
| Default model | nova-3 |
Getting started
Set your API key
Add your Deepgram API key to the environment:
DEEPGRAM_API_KEY=dg_...Enable the audio provider
{ tools: { media: { audio: { enabled: true, models: [{ provider: "deepgram", model: "nova-3" }], }, }, },}Send a voice note
Send an audio message through any connected channel. OpenClaw transcribes it via Deepgram and injects the transcript into the reply pipeline.
Configuration options
| Option | Path | Description |
|---|---|---|
model |
tools.media.audio.models[].model |
Deepgram model id (default: nova-3) |
language |
tools.media.audio.models[].language |
Language hint (optional) |
detect_language |
tools.media.audio.providerOptions.deepgram.detect_language |
Enable language detection (optional) |
punctuate |
tools.media.audio.providerOptions.deepgram.punctuate |
Enable punctuation (optional) |
smart_format |
tools.media.audio.providerOptions.deepgram.smart_format |
Enable smart formatting (optional) |
With language hint
{ tools: { media: { audio: { enabled: true, models: [{ provider: "deepgram", model: "nova-3", language: "en" }], }, }, },}With Deepgram options
{ tools: { media: { audio: { enabled: true, providerOptions: { deepgram: { detect_language: true, punctuate: true, smart_format: true, }, }, models: [{ provider: "deepgram", model: "nova-3" }], }, }, },}Voice Call streaming STT
The bundled deepgram plugin also registers a realtime transcription provider
for the Voice Call plugin.
| Setting | Config path | Default |
|---|---|---|
| API key | plugins.entries.voice-call.config.streaming.providers.deepgram.apiKey |
Falls back to DEEPGRAM_API_KEY |
| Model | ...deepgram.model |
nova-3 |
| Language | ...deepgram.language |
(unset) |
| Encoding | ...deepgram.encoding |
mulaw |
| Sample rate | ...deepgram.sampleRate |
8000 |
| Endpointing | ...deepgram.endpointingMs |
800 |
| Interim results | ...deepgram.interimResults |
true |
{ plugins: { entries: { "voice-call": { config: { streaming: { enabled: true, provider: "deepgram", providers: { deepgram: { apiKey: "${DEEPGRAM_API_KEY}", model: "nova-3", endpointingMs: 800, language: "en-US", }, }, }, }, }, }, },}Notes
Authentication
Authentication follows the standard provider auth order. DEEPGRAM_API_KEY is
the simplest path.
Proxy and custom endpoints
Override endpoints or headers with tools.media.audio.baseUrl and
tools.media.audio.headers when using a proxy.
Output behavior
Output follows the same audio rules as other providers (size caps, timeouts, transcript injection).