[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-deepgram-api":3,"mdc-nrgna9-key":38,"related-repo-deepgram-api":2170,"related-org-deepgram-api":2240},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":34,"sourceUrl":36,"mdContent":37},"api","build applications with Deepgram APIs","Deepgram API reference for speech-to-text, text-to-speech, voice agents, audio intelligence, and account management. Use whenever building with Deepgram APIs — REST or WebSocket. Covers authentication, all endpoints, query parameters, request\u002Fresponse schemas, and WebSocket message formats. Reference files are organized by domain: listen (STT), speak (TTS), agent (voice agents), read (text\u002Faudio intelligence), models, projects, auth, and self-hosted.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"deepgram","Deepgram","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fdeepgram.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Text-to-Speech","text-to-speech","tag",{"name":17,"slug":18,"type":15},"Transcription","transcription",{"name":20,"slug":21,"type":15},"REST API","rest-api",{"name":23,"slug":24,"type":15},"API Development","api-development",{"name":26,"slug":27,"type":15},"Speech","speech",14,"https:\u002F\u002Fgithub.com\u002Fdeepgram\u002Fskills","2026-07-12T08:29:59.187438",null,3,[],{"repoUrl":29,"stars":28,"forks":32,"topics":35,"description":31},[],"https:\u002F\u002Fgithub.com\u002Fdeepgram\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fapi","---\nname: api\ndescription: >\n  Deepgram API reference for speech-to-text, text-to-speech, voice agents, audio intelligence,\n  and account management. Use whenever building with Deepgram APIs — REST or WebSocket. Covers\n  authentication, all endpoints, query parameters, request\u002Fresponse schemas, and WebSocket\n  message formats. Reference files are organized by domain: listen (STT), speak (TTS), agent\n  (voice agents), read (text\u002Faudio intelligence), models, projects, auth, and self-hosted.\n---\n\n# Deepgram API\n\nBuild with Deepgram's speech-to-text, text-to-speech, voice agent, and audio intelligence APIs.\n\n## Getting Started\n\nAll API requests require authentication via API key or JWT:\n\n- **API Key**: `Authorization: Token \u003CAPI_KEY>`\n- **JWT**: `Authorization: Bearer \u003CJWT>`\n\nBase servers:\n\n- REST & STT\u002FTTS WebSocket: `https:\u002F\u002Fapi.deepgram.com`\n- Voice Agent WebSocket: `https:\u002F\u002Fagent.deepgram.com`\n\n## How Deepgram's APIs Fit Together\n\n```\n                   ┌──────────────────────────────┐\n                   │       api.deepgram.com        │\n                   └──────────────────────────────┘\n                                │\n  ┌──────────────┬──────────────┼──────────────┬──────────────┐\n  ▼              ▼              ▼              ▼              ▼\n\u002Fv1\u002Flisten   \u002Fv2\u002Flisten     \u002Fv1\u002Fspeak      \u002Fv1\u002Fread    \u002Fv1\u002Fprojects\u002F*\n Nova — ASR   Flux — conv.   TTS            Text AI     Management\nREST or WSS   WSS only       REST or WSS    REST only   REST only\n\n                   ┌──────────────────────────────┐\n                   │      agent.deepgram.com       │\n                   └──────────────────────────────┘\n                                │\n                                ▼\n                   \u002Fv1\u002Fagent\u002Fconverse\n                   WebSocket only\n                   audio ──▶ STT ──▶ LLM ──▶ TTS ──▶ audio\n                   (Deepgram orchestrates the full pipeline)\n```\n\n## Which API Should I Use?\n\n```\nAudio → text (transcription)?\n├─ General-purpose transcription (captions, batch, call logs, live streams with custom turn logic)\n│  └─ Nova models via \u002Fv1\u002Flisten\n│     ├─ Pre-recorded file    →  REST  POST https:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Flisten?model=nova-3\n│     └─ Live stream          →  WSS   wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Flisten?model=nova-3\n│\n└─ Conversational audio \u002F voice-agent-style turn detection\n   └─ Flux models via \u002Fv2\u002Flisten\n      └─ Live stream          →  WSS   wss:\u002F\u002Fapi.deepgram.com\u002Fv2\u002Flisten?model=flux-general-en\n\nText → audio?\n├─ One-shot                   →  REST POST \u002Fv1\u002Fspeak\n└─ Low-latency stream         →  WSS  wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Fspeak\n\nFull conversational voice agent (audio in, audio out)?\n└─ WSS wss:\u002F\u002Fagent.deepgram.com\u002Fv1\u002Fagent\u002Fconverse\n   Deepgram handles STT + your configured LLM + TTS internally\n\nAnalyze text for insights?\n└─ REST POST \u002Fv1\u002Fread\n   (summaries, sentiment, topics, intents)\n```\n\n## Speech-to-Text: Nova (`\u002Fv1\u002Flisten`) vs Flux (`\u002Fv2\u002Flisten`)\n\nBoth model families are actively maintained and industry-leading. They solve different problems — pick the one that matches your use case.\n\n| | Nova (`\u002Fv1\u002Flisten`) | Flux (`\u002Fv2\u002Flisten`) |\n|---|---|---|\n| Endpoint | `\u002Fv1\u002Flisten` | `\u002Fv2\u002Flisten` |\n| Available models | `nova-3`, `nova-2`, `nova`, `enhanced`, `base` | `flux-general-en` |\n| Best for | General transcription — captions, subtitles, call logs, batch | Conversational audio — voice agents, interactive assistants, turn-taking UIs |\n| Output | Continuous transcript stream | Structured turn events + transcripts (built-in turn state machine) |\n| Turn detection | Manual (`utterance_end_ms`, VAD events) | Built-in (EOT, eager-EOT, turn_index) |\n| Transports | REST + WebSocket | WebSocket only |\n| Intelligence overlays | Yes — `summarize`, `sentiment`, `topics`, `intents`, `diarize`, `redact`, etc. | No — smaller focused param set; no `smart_format` \u002F `diarize` \u002F `punctuate` |\n| Mid-session reconfig | No (reconnect to change) | Yes (`Configure` message updates EOT thresholds + keyterms live) |\n\n**Pick Nova (`\u002Fv1\u002Flisten`, `model=nova-3`) when:**\n- Generating captions, subtitles, or transcripts for recorded media\n- Running batch transcription over files (REST)\n- You need analytics overlays (`summarize`, `sentiment`, `topics`, `intents`, `diarize`, `redact`)\n- You want WebSocket streaming with your own turn-detection logic\n\n**Pick Flux (`\u002Fv2\u002Flisten`, `model=flux-general-en`) when:**\n- Building an interactive voice agent or assistant\n- You want end-of-turn detection handled for you\n- You need low-latency turn signals and barge-in support\n- You want to update EOT thresholds or keyterms mid-session without reconnecting\n\nMigrating from Nova 3 to Flux? See the official [Nova 3 → Flux migration guide](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fflux\u002Fnova-3-migration).\n\n## API Domains\n\n| Domain | REST | WebSocket | Reference |\n|--------|------|-----------|-----------|\n| Listen v1 — STT, Nova models | `POST \u002Fv1\u002Flisten` | `wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Flisten` | [listen.md](references\u002Flisten.md) |\n| Listen v2 — STT, Flux (conversational) | — | `wss:\u002F\u002Fapi.deepgram.com\u002Fv2\u002Flisten` | [listen.md](references\u002Flisten.md) |\n| Speak (TTS) | `POST \u002Fv1\u002Fspeak` | `wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Fspeak` | [speak.md](references\u002Fspeak.md) |\n| Voice Agent | `GET \u002Fv1\u002Fagent\u002Fsettings\u002Fthink\u002Fmodels` | `wss:\u002F\u002Fagent.deepgram.com\u002Fv1\u002Fagent\u002Fconverse` | [agent.md](references\u002Fagent.md) |\n| Read (Intelligence) | `POST \u002Fv1\u002Fread` | — | [read.md](references\u002Fread.md) |\n| Models | `GET \u002Fv1\u002Fmodels` | — | [models.md](references\u002Fmodels.md) |\n| Projects | `\u002Fv1\u002Fprojects\u002F*` | — | [projects.md](references\u002Fprojects.md) |\n| Auth | `POST \u002Fv1\u002Fauth\u002Fgrant` | — | [auth.md](references\u002Fauth.md) |\n| Self-Hosted | `\u002Fv1\u002Fprojects\u002F*\u002Fselfhosted\u002F*` | — | [self-hosted.md](references\u002Fself-hosted.md) |\n\n## Common Mistakes to Avoid\n\n### All APIs\n\n1. **Feature flags are query params — except for Voice Agent and Flux mid-session updates.** For `\u002Fv1\u002Flisten`, `\u002Fv2\u002Flisten`, and `\u002Fv1\u002Fspeak`, initial options go on the URL. The request body carries only audio data (REST) or audio frames (WebSocket). Two exceptions: `\u002Fv1\u002Fagent\u002Fconverse` has no URL query params at all (all config goes in the `Settings` message); and `\u002Fv2\u002Flisten` supports a `Configure` message after connection to update EOT thresholds and keyterms mid-session. Also note that `\u002Fv2\u002Flisten` has a much smaller param set than `\u002Fv1\u002Flisten` — flags like `smart_format`, `diarize`, and `punctuate` are not available.\n\n2. **Rate limits are concurrent connections, not total requests.** A 429 means too many simultaneous open connections, not too high a request volume. Diarization and other compute-heavy features reduce your concurrency allowance further.\n\n### STT WebSocket (`\u002Fv1\u002Flisten`)\n\n3. **Send KeepAlive as a text frame, not binary.** The connection closes after 10 seconds of no audio. Send `{\"type\":\"KeepAlive\"}` as a text (JSON) frame every 3–5 seconds during silence. Sending it as a binary frame causes transcription delays — the audio pipeline chokes — not a silent no-op.\n\n4. **Never send empty byte payloads.** Sending a zero-length binary frame to `\u002Fv1\u002Flisten` is treated as a close — it terminates the connection. Always check that your audio packet has length before sending.\n\n5. **`encoding` must match the actual audio format.** If `encoding=linear16` but you're sending opus, you'll get a DATA-0000 error or garbled output. Omit `encoding` entirely when sending containerized formats (mp3, wav, ogg) — Deepgram detects them automatically.\n\n6. **Timestamps reset on reconnect.** Each new WebSocket connection restarts timestamps at 00:00:00. For real-time apps, maintain a timestamp offset across reconnections or you'll silently corrupt your transcript timeline.\n\n### TTS WebSocket (`\u002Fv1\u002Fspeak`)\n\n7. **Don't send empty text.** A `Speak` message with an empty `text` field returns a 400 error. Always validate input before sending.\n\n8. **Character rate limiting (DATA-0001) means slow down, not retry.** If you hit this, reduce how fast you're submitting text chunks — don't immediately retry or you'll compound the problem.\n\n### Voice Agent (`\u002Fv1\u002Fagent\u002Fconverse`)\n\n9. **Send the `Settings` message before any audio.** The agent ignores everything until it receives and acknowledges the Settings configuration. Message ordering is strictly required.\n\n### Flux model\n\n10. **Use `\u002Fv2\u002Flisten` and `model=flux-general-en`.** `\u002Fv1\u002Flisten` does not support Flux. `model=flux` alone is not a valid value. Do not include `language` or `encoding` params for containerized audio.\n\n11. **Use `Configure` to update EOT thresholds and keyterms mid-session.** Unlike `\u002Fv1\u002Flisten`, Flux supports live reconfiguration after connection — no need to reconnect to change turn detection sensitivity or boost new keyterms:\n    ```json\n    { \"type\": \"Configure\", \"thresholds\": { \"eot_threshold\": \"0.8\", \"eot_timeout_ms\": \"3000\" }, \"keyterms\": [\"Deepgram\"] }\n    ```\n    The server responds with `ConfigureSuccess` (echoing back applied values) or `ConfigureFailure`. Omitted threshold fields keep their current values.\n\n### Authentication\n\n12. **JWT TTL applies only to the initial handshake.** Tokens default to 30 seconds. Once the WebSocket connection is established, the token expiring does not close it — tokens are only needed for the upgrade request.\n\n## SDK-Specific Skills\n\nThis `api` skill covers the product contracts (endpoints, query params, message shapes) that are identical across SDKs. For **language-idiomatic code** — imports, async patterns, builder APIs, common errors — install the SDK-specific skills. Each Deepgram SDK publishes 7 product skills named `deepgram-{lang}-{product}` (e.g. `deepgram-python-speech-to-text`, `deepgram-js-voice-agent`) plus a maintainer skill `deepgram-{lang}-maintaining-sdk`. The `deepgram-{lang}-` prefix avoids collisions when you install skills from multiple SDKs.\n\n```bash\n# Install all skills from a specific SDK\nnpx skills add deepgram\u002Fdeepgram-python-sdk     # Python\nnpx skills add deepgram\u002Fdeepgram-js-sdk         # JavaScript \u002F TypeScript\nnpx skills add deepgram\u002Fdeepgram-java-sdk       # Java\nnpx skills add deepgram\u002Fdeepgram-go-sdk         # Go\nnpx skills add deepgram\u002Fdeepgram-rust-sdk       # Rust\nnpx skills add deepgram\u002Fdeepgram-swift-sdk      # Swift\nnpx skills add deepgram\u002Fdeepgram-kotlin-sdk     # Kotlin\nnpx skills add deepgram\u002Fdeepgram-dotnet-sdk     # C# \u002F .NET\nnpx skills add deepgram\u002Fdeepgram-browser-sdk    # Browser TypeScript\n\n# Or install a specific product skill from one SDK (note the deepgram-{lang}- prefix)\nnpx skills add deepgram\u002Fdeepgram-python-sdk --skill deepgram-python-speech-to-text\nnpx skills add deepgram\u002Fdeepgram-js-sdk     --skill deepgram-js-voice-agent\n```\n\n## Related Deepgram skills\n\n| Skill | Purpose |\n|---|---|\n| `recipes` | Minimal runnable snippets per feature per language |\n| `examples` | Full integration examples with third-party platforms (Twilio, LiveKit, etc.) |\n| `starters` | Runnable starter apps (framework × feature matrix) |\n| `docs` | Navigate Deepgram documentation |\n| `setup-mcp` | Install the Deepgram MCP server |\n\n## Documentation\n\n- [API Reference](https:\u002F\u002Fdevelopers.deepgram.com\u002Freference\u002Fdeepgram-api-overview)\n- [Speech-to-Text Getting Started](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fstt\u002Fgetting-started)\n- [Text-to-Speech Docs](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Ftts-rest)\n- [Voice Agent Docs](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fvoice-agent)\n- [Audio Intelligence](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Faudio-intelligence)\n- [Self-Hosted Deployments](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fself-hosted-introduction)\n",{"data":39,"body":40},{"name":4,"description":6},{"type":41,"children":42},"root",[43,52,58,65,70,108,113,138,144,156,162,171,193,198,507,529,588,609,632,648,654,970,976,983,1091,1103,1182,1194,1233,1245,1266,1272,1570,1576,1590,1596,1654,1982,1988,2095,2101,2164],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"deepgram-api",[49],{"type":50,"value":51},"text","Deepgram API",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"Build with Deepgram's speech-to-text, text-to-speech, voice agent, and audio intelligence APIs.",{"type":44,"tag":59,"props":60,"children":62},"h2",{"id":61},"getting-started",[63],{"type":50,"value":64},"Getting Started",{"type":44,"tag":53,"props":66,"children":67},{},[68],{"type":50,"value":69},"All API requests require authentication via API key or JWT:",{"type":44,"tag":71,"props":72,"children":73},"ul",{},[74,93],{"type":44,"tag":75,"props":76,"children":77},"li",{},[78,84,86],{"type":44,"tag":79,"props":80,"children":81},"strong",{},[82],{"type":50,"value":83},"API Key",{"type":50,"value":85},": ",{"type":44,"tag":87,"props":88,"children":90},"code",{"className":89},[],[91],{"type":50,"value":92},"Authorization: Token \u003CAPI_KEY>",{"type":44,"tag":75,"props":94,"children":95},{},[96,101,102],{"type":44,"tag":79,"props":97,"children":98},{},[99],{"type":50,"value":100},"JWT",{"type":50,"value":85},{"type":44,"tag":87,"props":103,"children":105},{"className":104},[],[106],{"type":50,"value":107},"Authorization: Bearer \u003CJWT>",{"type":44,"tag":53,"props":109,"children":110},{},[111],{"type":50,"value":112},"Base servers:",{"type":44,"tag":71,"props":114,"children":115},{},[116,127],{"type":44,"tag":75,"props":117,"children":118},{},[119,121],{"type":50,"value":120},"REST & STT\u002FTTS WebSocket: ",{"type":44,"tag":87,"props":122,"children":124},{"className":123},[],[125],{"type":50,"value":126},"https:\u002F\u002Fapi.deepgram.com",{"type":44,"tag":75,"props":128,"children":129},{},[130,132],{"type":50,"value":131},"Voice Agent WebSocket: ",{"type":44,"tag":87,"props":133,"children":135},{"className":134},[],[136],{"type":50,"value":137},"https:\u002F\u002Fagent.deepgram.com",{"type":44,"tag":59,"props":139,"children":141},{"id":140},"how-deepgrams-apis-fit-together",[142],{"type":50,"value":143},"How Deepgram's APIs Fit Together",{"type":44,"tag":145,"props":146,"children":150},"pre",{"className":147,"code":149,"language":50},[148],"language-text","                   ┌──────────────────────────────┐\n                   │       api.deepgram.com        │\n                   └──────────────────────────────┘\n                                │\n  ┌──────────────┬──────────────┼──────────────┬──────────────┐\n  ▼              ▼              ▼              ▼              ▼\n\u002Fv1\u002Flisten   \u002Fv2\u002Flisten     \u002Fv1\u002Fspeak      \u002Fv1\u002Fread    \u002Fv1\u002Fprojects\u002F*\n Nova — ASR   Flux — conv.   TTS            Text AI     Management\nREST or WSS   WSS only       REST or WSS    REST only   REST only\n\n                   ┌──────────────────────────────┐\n                   │      agent.deepgram.com       │\n                   └──────────────────────────────┘\n                                │\n                                ▼\n                   \u002Fv1\u002Fagent\u002Fconverse\n                   WebSocket only\n                   audio ──▶ STT ──▶ LLM ──▶ TTS ──▶ audio\n                   (Deepgram orchestrates the full pipeline)\n",[151],{"type":44,"tag":87,"props":152,"children":154},{"__ignoreMap":153},"",[155],{"type":50,"value":149},{"type":44,"tag":59,"props":157,"children":159},{"id":158},"which-api-should-i-use",[160],{"type":50,"value":161},"Which API Should I Use?",{"type":44,"tag":145,"props":163,"children":166},{"className":164,"code":165,"language":50},[148],"Audio → text (transcription)?\n├─ General-purpose transcription (captions, batch, call logs, live streams with custom turn logic)\n│  └─ Nova models via \u002Fv1\u002Flisten\n│     ├─ Pre-recorded file    →  REST  POST https:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Flisten?model=nova-3\n│     └─ Live stream          →  WSS   wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Flisten?model=nova-3\n│\n└─ Conversational audio \u002F voice-agent-style turn detection\n   └─ Flux models via \u002Fv2\u002Flisten\n      └─ Live stream          →  WSS   wss:\u002F\u002Fapi.deepgram.com\u002Fv2\u002Flisten?model=flux-general-en\n\nText → audio?\n├─ One-shot                   →  REST POST \u002Fv1\u002Fspeak\n└─ Low-latency stream         →  WSS  wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Fspeak\n\nFull conversational voice agent (audio in, audio out)?\n└─ WSS wss:\u002F\u002Fagent.deepgram.com\u002Fv1\u002Fagent\u002Fconverse\n   Deepgram handles STT + your configured LLM + TTS internally\n\nAnalyze text for insights?\n└─ REST POST \u002Fv1\u002Fread\n   (summaries, sentiment, topics, intents)\n",[167],{"type":44,"tag":87,"props":168,"children":169},{"__ignoreMap":153},[170],{"type":50,"value":165},{"type":44,"tag":59,"props":172,"children":174},{"id":173},"speech-to-text-nova-v1listen-vs-flux-v2listen",[175,177,183,185,191],{"type":50,"value":176},"Speech-to-Text: Nova (",{"type":44,"tag":87,"props":178,"children":180},{"className":179},[],[181],{"type":50,"value":182},"\u002Fv1\u002Flisten",{"type":50,"value":184},") vs Flux (",{"type":44,"tag":87,"props":186,"children":188},{"className":187},[],[189],{"type":50,"value":190},"\u002Fv2\u002Flisten",{"type":50,"value":192},")",{"type":44,"tag":53,"props":194,"children":195},{},[196],{"type":50,"value":197},"Both model families are actively maintained and industry-leading. They solve different problems — pick the one that matches your use case.",{"type":44,"tag":199,"props":200,"children":201},"table",{},[202,236],{"type":44,"tag":203,"props":204,"children":205},"thead",{},[206],{"type":44,"tag":207,"props":208,"children":209},"tr",{},[210,214,225],{"type":44,"tag":211,"props":212,"children":213},"th",{},[],{"type":44,"tag":211,"props":215,"children":216},{},[217,219,224],{"type":50,"value":218},"Nova (",{"type":44,"tag":87,"props":220,"children":222},{"className":221},[],[223],{"type":50,"value":182},{"type":50,"value":192},{"type":44,"tag":211,"props":226,"children":227},{},[228,230,235],{"type":50,"value":229},"Flux (",{"type":44,"tag":87,"props":231,"children":233},{"className":232},[],[234],{"type":50,"value":190},{"type":50,"value":192},{"type":44,"tag":237,"props":238,"children":239},"tbody",{},[240,265,320,338,356,382,400,481],{"type":44,"tag":207,"props":241,"children":242},{},[243,249,257],{"type":44,"tag":244,"props":245,"children":246},"td",{},[247],{"type":50,"value":248},"Endpoint",{"type":44,"tag":244,"props":250,"children":251},{},[252],{"type":44,"tag":87,"props":253,"children":255},{"className":254},[],[256],{"type":50,"value":182},{"type":44,"tag":244,"props":258,"children":259},{},[260],{"type":44,"tag":87,"props":261,"children":263},{"className":262},[],[264],{"type":50,"value":190},{"type":44,"tag":207,"props":266,"children":267},{},[268,273,311],{"type":44,"tag":244,"props":269,"children":270},{},[271],{"type":50,"value":272},"Available models",{"type":44,"tag":244,"props":274,"children":275},{},[276,282,284,290,291,297,298,304,305],{"type":44,"tag":87,"props":277,"children":279},{"className":278},[],[280],{"type":50,"value":281},"nova-3",{"type":50,"value":283},", ",{"type":44,"tag":87,"props":285,"children":287},{"className":286},[],[288],{"type":50,"value":289},"nova-2",{"type":50,"value":283},{"type":44,"tag":87,"props":292,"children":294},{"className":293},[],[295],{"type":50,"value":296},"nova",{"type":50,"value":283},{"type":44,"tag":87,"props":299,"children":301},{"className":300},[],[302],{"type":50,"value":303},"enhanced",{"type":50,"value":283},{"type":44,"tag":87,"props":306,"children":308},{"className":307},[],[309],{"type":50,"value":310},"base",{"type":44,"tag":244,"props":312,"children":313},{},[314],{"type":44,"tag":87,"props":315,"children":317},{"className":316},[],[318],{"type":50,"value":319},"flux-general-en",{"type":44,"tag":207,"props":321,"children":322},{},[323,328,333],{"type":44,"tag":244,"props":324,"children":325},{},[326],{"type":50,"value":327},"Best for",{"type":44,"tag":244,"props":329,"children":330},{},[331],{"type":50,"value":332},"General transcription — captions, subtitles, call logs, batch",{"type":44,"tag":244,"props":334,"children":335},{},[336],{"type":50,"value":337},"Conversational audio — voice agents, interactive assistants, turn-taking UIs",{"type":44,"tag":207,"props":339,"children":340},{},[341,346,351],{"type":44,"tag":244,"props":342,"children":343},{},[344],{"type":50,"value":345},"Output",{"type":44,"tag":244,"props":347,"children":348},{},[349],{"type":50,"value":350},"Continuous transcript stream",{"type":44,"tag":244,"props":352,"children":353},{},[354],{"type":50,"value":355},"Structured turn events + transcripts (built-in turn state machine)",{"type":44,"tag":207,"props":357,"children":358},{},[359,364,377],{"type":44,"tag":244,"props":360,"children":361},{},[362],{"type":50,"value":363},"Turn detection",{"type":44,"tag":244,"props":365,"children":366},{},[367,369,375],{"type":50,"value":368},"Manual (",{"type":44,"tag":87,"props":370,"children":372},{"className":371},[],[373],{"type":50,"value":374},"utterance_end_ms",{"type":50,"value":376},", VAD events)",{"type":44,"tag":244,"props":378,"children":379},{},[380],{"type":50,"value":381},"Built-in (EOT, eager-EOT, turn_index)",{"type":44,"tag":207,"props":383,"children":384},{},[385,390,395],{"type":44,"tag":244,"props":386,"children":387},{},[388],{"type":50,"value":389},"Transports",{"type":44,"tag":244,"props":391,"children":392},{},[393],{"type":50,"value":394},"REST + WebSocket",{"type":44,"tag":244,"props":396,"children":397},{},[398],{"type":50,"value":399},"WebSocket only",{"type":44,"tag":207,"props":401,"children":402},{},[403,408,456],{"type":44,"tag":244,"props":404,"children":405},{},[406],{"type":50,"value":407},"Intelligence overlays",{"type":44,"tag":244,"props":409,"children":410},{},[411,413,419,420,426,427,433,434,440,441,447,448,454],{"type":50,"value":412},"Yes — ",{"type":44,"tag":87,"props":414,"children":416},{"className":415},[],[417],{"type":50,"value":418},"summarize",{"type":50,"value":283},{"type":44,"tag":87,"props":421,"children":423},{"className":422},[],[424],{"type":50,"value":425},"sentiment",{"type":50,"value":283},{"type":44,"tag":87,"props":428,"children":430},{"className":429},[],[431],{"type":50,"value":432},"topics",{"type":50,"value":283},{"type":44,"tag":87,"props":435,"children":437},{"className":436},[],[438],{"type":50,"value":439},"intents",{"type":50,"value":283},{"type":44,"tag":87,"props":442,"children":444},{"className":443},[],[445],{"type":50,"value":446},"diarize",{"type":50,"value":283},{"type":44,"tag":87,"props":449,"children":451},{"className":450},[],[452],{"type":50,"value":453},"redact",{"type":50,"value":455},", etc.",{"type":44,"tag":244,"props":457,"children":458},{},[459,461,467,469,474,475],{"type":50,"value":460},"No — smaller focused param set; no ",{"type":44,"tag":87,"props":462,"children":464},{"className":463},[],[465],{"type":50,"value":466},"smart_format",{"type":50,"value":468}," \u002F ",{"type":44,"tag":87,"props":470,"children":472},{"className":471},[],[473],{"type":50,"value":446},{"type":50,"value":468},{"type":44,"tag":87,"props":476,"children":478},{"className":477},[],[479],{"type":50,"value":480},"punctuate",{"type":44,"tag":207,"props":482,"children":483},{},[484,489,494],{"type":44,"tag":244,"props":485,"children":486},{},[487],{"type":50,"value":488},"Mid-session reconfig",{"type":44,"tag":244,"props":490,"children":491},{},[492],{"type":50,"value":493},"No (reconnect to change)",{"type":44,"tag":244,"props":495,"children":496},{},[497,499,505],{"type":50,"value":498},"Yes (",{"type":44,"tag":87,"props":500,"children":502},{"className":501},[],[503],{"type":50,"value":504},"Configure",{"type":50,"value":506}," message updates EOT thresholds + keyterms live)",{"type":44,"tag":53,"props":508,"children":509},{},[510],{"type":44,"tag":79,"props":511,"children":512},{},[513,515,520,521,527],{"type":50,"value":514},"Pick Nova (",{"type":44,"tag":87,"props":516,"children":518},{"className":517},[],[519],{"type":50,"value":182},{"type":50,"value":283},{"type":44,"tag":87,"props":522,"children":524},{"className":523},[],[525],{"type":50,"value":526},"model=nova-3",{"type":50,"value":528},") when:",{"type":44,"tag":71,"props":530,"children":531},{},[532,537,542,583],{"type":44,"tag":75,"props":533,"children":534},{},[535],{"type":50,"value":536},"Generating captions, subtitles, or transcripts for recorded media",{"type":44,"tag":75,"props":538,"children":539},{},[540],{"type":50,"value":541},"Running batch transcription over files (REST)",{"type":44,"tag":75,"props":543,"children":544},{},[545,547,552,553,558,559,564,565,570,571,576,577,582],{"type":50,"value":546},"You need analytics overlays (",{"type":44,"tag":87,"props":548,"children":550},{"className":549},[],[551],{"type":50,"value":418},{"type":50,"value":283},{"type":44,"tag":87,"props":554,"children":556},{"className":555},[],[557],{"type":50,"value":425},{"type":50,"value":283},{"type":44,"tag":87,"props":560,"children":562},{"className":561},[],[563],{"type":50,"value":432},{"type":50,"value":283},{"type":44,"tag":87,"props":566,"children":568},{"className":567},[],[569],{"type":50,"value":439},{"type":50,"value":283},{"type":44,"tag":87,"props":572,"children":574},{"className":573},[],[575],{"type":50,"value":446},{"type":50,"value":283},{"type":44,"tag":87,"props":578,"children":580},{"className":579},[],[581],{"type":50,"value":453},{"type":50,"value":192},{"type":44,"tag":75,"props":584,"children":585},{},[586],{"type":50,"value":587},"You want WebSocket streaming with your own turn-detection logic",{"type":44,"tag":53,"props":589,"children":590},{},[591],{"type":44,"tag":79,"props":592,"children":593},{},[594,596,601,602,608],{"type":50,"value":595},"Pick Flux (",{"type":44,"tag":87,"props":597,"children":599},{"className":598},[],[600],{"type":50,"value":190},{"type":50,"value":283},{"type":44,"tag":87,"props":603,"children":605},{"className":604},[],[606],{"type":50,"value":607},"model=flux-general-en",{"type":50,"value":528},{"type":44,"tag":71,"props":610,"children":611},{},[612,617,622,627],{"type":44,"tag":75,"props":613,"children":614},{},[615],{"type":50,"value":616},"Building an interactive voice agent or assistant",{"type":44,"tag":75,"props":618,"children":619},{},[620],{"type":50,"value":621},"You want end-of-turn detection handled for you",{"type":44,"tag":75,"props":623,"children":624},{},[625],{"type":50,"value":626},"You need low-latency turn signals and barge-in support",{"type":44,"tag":75,"props":628,"children":629},{},[630],{"type":50,"value":631},"You want to update EOT thresholds or keyterms mid-session without reconnecting",{"type":44,"tag":53,"props":633,"children":634},{},[635,637,646],{"type":50,"value":636},"Migrating from Nova 3 to Flux? See the official ",{"type":44,"tag":638,"props":639,"children":643},"a",{"href":640,"rel":641},"https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fflux\u002Fnova-3-migration",[642],"nofollow",[644],{"type":50,"value":645},"Nova 3 → Flux migration guide",{"type":50,"value":647},".",{"type":44,"tag":59,"props":649,"children":651},{"id":650},"api-domains",[652],{"type":50,"value":653},"API Domains",{"type":44,"tag":199,"props":655,"children":656},{},[657,683],{"type":44,"tag":203,"props":658,"children":659},{},[660],{"type":44,"tag":207,"props":661,"children":662},{},[663,668,673,678],{"type":44,"tag":211,"props":664,"children":665},{},[666],{"type":50,"value":667},"Domain",{"type":44,"tag":211,"props":669,"children":670},{},[671],{"type":50,"value":672},"REST",{"type":44,"tag":211,"props":674,"children":675},{},[676],{"type":50,"value":677},"WebSocket",{"type":44,"tag":211,"props":679,"children":680},{},[681],{"type":50,"value":682},"Reference",{"type":44,"tag":237,"props":684,"children":685},{},[686,721,750,785,820,850,880,910,940],{"type":44,"tag":207,"props":687,"children":688},{},[689,694,703,712],{"type":44,"tag":244,"props":690,"children":691},{},[692],{"type":50,"value":693},"Listen v1 — STT, Nova models",{"type":44,"tag":244,"props":695,"children":696},{},[697],{"type":44,"tag":87,"props":698,"children":700},{"className":699},[],[701],{"type":50,"value":702},"POST \u002Fv1\u002Flisten",{"type":44,"tag":244,"props":704,"children":705},{},[706],{"type":44,"tag":87,"props":707,"children":709},{"className":708},[],[710],{"type":50,"value":711},"wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Flisten",{"type":44,"tag":244,"props":713,"children":714},{},[715],{"type":44,"tag":638,"props":716,"children":718},{"href":717},"references\u002Flisten.md",[719],{"type":50,"value":720},"listen.md",{"type":44,"tag":207,"props":722,"children":723},{},[724,729,734,743],{"type":44,"tag":244,"props":725,"children":726},{},[727],{"type":50,"value":728},"Listen v2 — STT, Flux (conversational)",{"type":44,"tag":244,"props":730,"children":731},{},[732],{"type":50,"value":733},"—",{"type":44,"tag":244,"props":735,"children":736},{},[737],{"type":44,"tag":87,"props":738,"children":740},{"className":739},[],[741],{"type":50,"value":742},"wss:\u002F\u002Fapi.deepgram.com\u002Fv2\u002Flisten",{"type":44,"tag":244,"props":744,"children":745},{},[746],{"type":44,"tag":638,"props":747,"children":748},{"href":717},[749],{"type":50,"value":720},{"type":44,"tag":207,"props":751,"children":752},{},[753,758,767,776],{"type":44,"tag":244,"props":754,"children":755},{},[756],{"type":50,"value":757},"Speak (TTS)",{"type":44,"tag":244,"props":759,"children":760},{},[761],{"type":44,"tag":87,"props":762,"children":764},{"className":763},[],[765],{"type":50,"value":766},"POST \u002Fv1\u002Fspeak",{"type":44,"tag":244,"props":768,"children":769},{},[770],{"type":44,"tag":87,"props":771,"children":773},{"className":772},[],[774],{"type":50,"value":775},"wss:\u002F\u002Fapi.deepgram.com\u002Fv1\u002Fspeak",{"type":44,"tag":244,"props":777,"children":778},{},[779],{"type":44,"tag":638,"props":780,"children":782},{"href":781},"references\u002Fspeak.md",[783],{"type":50,"value":784},"speak.md",{"type":44,"tag":207,"props":786,"children":787},{},[788,793,802,811],{"type":44,"tag":244,"props":789,"children":790},{},[791],{"type":50,"value":792},"Voice Agent",{"type":44,"tag":244,"props":794,"children":795},{},[796],{"type":44,"tag":87,"props":797,"children":799},{"className":798},[],[800],{"type":50,"value":801},"GET \u002Fv1\u002Fagent\u002Fsettings\u002Fthink\u002Fmodels",{"type":44,"tag":244,"props":803,"children":804},{},[805],{"type":44,"tag":87,"props":806,"children":808},{"className":807},[],[809],{"type":50,"value":810},"wss:\u002F\u002Fagent.deepgram.com\u002Fv1\u002Fagent\u002Fconverse",{"type":44,"tag":244,"props":812,"children":813},{},[814],{"type":44,"tag":638,"props":815,"children":817},{"href":816},"references\u002Fagent.md",[818],{"type":50,"value":819},"agent.md",{"type":44,"tag":207,"props":821,"children":822},{},[823,828,837,841],{"type":44,"tag":244,"props":824,"children":825},{},[826],{"type":50,"value":827},"Read (Intelligence)",{"type":44,"tag":244,"props":829,"children":830},{},[831],{"type":44,"tag":87,"props":832,"children":834},{"className":833},[],[835],{"type":50,"value":836},"POST \u002Fv1\u002Fread",{"type":44,"tag":244,"props":838,"children":839},{},[840],{"type":50,"value":733},{"type":44,"tag":244,"props":842,"children":843},{},[844],{"type":44,"tag":638,"props":845,"children":847},{"href":846},"references\u002Fread.md",[848],{"type":50,"value":849},"read.md",{"type":44,"tag":207,"props":851,"children":852},{},[853,858,867,871],{"type":44,"tag":244,"props":854,"children":855},{},[856],{"type":50,"value":857},"Models",{"type":44,"tag":244,"props":859,"children":860},{},[861],{"type":44,"tag":87,"props":862,"children":864},{"className":863},[],[865],{"type":50,"value":866},"GET \u002Fv1\u002Fmodels",{"type":44,"tag":244,"props":868,"children":869},{},[870],{"type":50,"value":733},{"type":44,"tag":244,"props":872,"children":873},{},[874],{"type":44,"tag":638,"props":875,"children":877},{"href":876},"references\u002Fmodels.md",[878],{"type":50,"value":879},"models.md",{"type":44,"tag":207,"props":881,"children":882},{},[883,888,897,901],{"type":44,"tag":244,"props":884,"children":885},{},[886],{"type":50,"value":887},"Projects",{"type":44,"tag":244,"props":889,"children":890},{},[891],{"type":44,"tag":87,"props":892,"children":894},{"className":893},[],[895],{"type":50,"value":896},"\u002Fv1\u002Fprojects\u002F*",{"type":44,"tag":244,"props":898,"children":899},{},[900],{"type":50,"value":733},{"type":44,"tag":244,"props":902,"children":903},{},[904],{"type":44,"tag":638,"props":905,"children":907},{"href":906},"references\u002Fprojects.md",[908],{"type":50,"value":909},"projects.md",{"type":44,"tag":207,"props":911,"children":912},{},[913,918,927,931],{"type":44,"tag":244,"props":914,"children":915},{},[916],{"type":50,"value":917},"Auth",{"type":44,"tag":244,"props":919,"children":920},{},[921],{"type":44,"tag":87,"props":922,"children":924},{"className":923},[],[925],{"type":50,"value":926},"POST \u002Fv1\u002Fauth\u002Fgrant",{"type":44,"tag":244,"props":928,"children":929},{},[930],{"type":50,"value":733},{"type":44,"tag":244,"props":932,"children":933},{},[934],{"type":44,"tag":638,"props":935,"children":937},{"href":936},"references\u002Fauth.md",[938],{"type":50,"value":939},"auth.md",{"type":44,"tag":207,"props":941,"children":942},{},[943,948,957,961],{"type":44,"tag":244,"props":944,"children":945},{},[946],{"type":50,"value":947},"Self-Hosted",{"type":44,"tag":244,"props":949,"children":950},{},[951],{"type":44,"tag":87,"props":952,"children":954},{"className":953},[],[955],{"type":50,"value":956},"\u002Fv1\u002Fprojects\u002F*\u002Fselfhosted\u002F*",{"type":44,"tag":244,"props":958,"children":959},{},[960],{"type":50,"value":733},{"type":44,"tag":244,"props":962,"children":963},{},[964],{"type":44,"tag":638,"props":965,"children":967},{"href":966},"references\u002Fself-hosted.md",[968],{"type":50,"value":969},"self-hosted.md",{"type":44,"tag":59,"props":971,"children":973},{"id":972},"common-mistakes-to-avoid",[974],{"type":50,"value":975},"Common Mistakes to Avoid",{"type":44,"tag":977,"props":978,"children":980},"h3",{"id":979},"all-apis",[981],{"type":50,"value":982},"All APIs",{"type":44,"tag":984,"props":985,"children":986},"ol",{},[987,1081],{"type":44,"tag":75,"props":988,"children":989},{},[990,995,997,1002,1003,1008,1010,1016,1018,1024,1026,1032,1034,1039,1041,1046,1048,1053,1055,1060,1062,1067,1068,1073,1074,1079],{"type":44,"tag":79,"props":991,"children":992},{},[993],{"type":50,"value":994},"Feature flags are query params — except for Voice Agent and Flux mid-session updates.",{"type":50,"value":996}," For ",{"type":44,"tag":87,"props":998,"children":1000},{"className":999},[],[1001],{"type":50,"value":182},{"type":50,"value":283},{"type":44,"tag":87,"props":1004,"children":1006},{"className":1005},[],[1007],{"type":50,"value":190},{"type":50,"value":1009},", and ",{"type":44,"tag":87,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":50,"value":1015},"\u002Fv1\u002Fspeak",{"type":50,"value":1017},", initial options go on the URL. The request body carries only audio data (REST) or audio frames (WebSocket). Two exceptions: ",{"type":44,"tag":87,"props":1019,"children":1021},{"className":1020},[],[1022],{"type":50,"value":1023},"\u002Fv1\u002Fagent\u002Fconverse",{"type":50,"value":1025}," has no URL query params at all (all config goes in the ",{"type":44,"tag":87,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":50,"value":1031},"Settings",{"type":50,"value":1033}," message); and ",{"type":44,"tag":87,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":50,"value":190},{"type":50,"value":1040}," supports a ",{"type":44,"tag":87,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":50,"value":504},{"type":50,"value":1047}," message after connection to update EOT thresholds and keyterms mid-session. Also note that ",{"type":44,"tag":87,"props":1049,"children":1051},{"className":1050},[],[1052],{"type":50,"value":190},{"type":50,"value":1054}," has a much smaller param set than ",{"type":44,"tag":87,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":50,"value":182},{"type":50,"value":1061}," — flags like ",{"type":44,"tag":87,"props":1063,"children":1065},{"className":1064},[],[1066],{"type":50,"value":466},{"type":50,"value":283},{"type":44,"tag":87,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":50,"value":446},{"type":50,"value":1009},{"type":44,"tag":87,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":50,"value":480},{"type":50,"value":1080}," are not available.",{"type":44,"tag":75,"props":1082,"children":1083},{},[1084,1089],{"type":44,"tag":79,"props":1085,"children":1086},{},[1087],{"type":50,"value":1088},"Rate limits are concurrent connections, not total requests.",{"type":50,"value":1090}," A 429 means too many simultaneous open connections, not too high a request volume. Diarization and other compute-heavy features reduce your concurrency allowance further.",{"type":44,"tag":977,"props":1092,"children":1094},{"id":1093},"stt-websocket-v1listen",[1095,1097,1102],{"type":50,"value":1096},"STT WebSocket (",{"type":44,"tag":87,"props":1098,"children":1100},{"className":1099},[],[1101],{"type":50,"value":182},{"type":50,"value":192},{"type":44,"tag":984,"props":1104,"children":1105},{"start":32},[1106,1124,1141,1172],{"type":44,"tag":75,"props":1107,"children":1108},{},[1109,1114,1116,1122],{"type":44,"tag":79,"props":1110,"children":1111},{},[1112],{"type":50,"value":1113},"Send KeepAlive as a text frame, not binary.",{"type":50,"value":1115}," The connection closes after 10 seconds of no audio. Send ",{"type":44,"tag":87,"props":1117,"children":1119},{"className":1118},[],[1120],{"type":50,"value":1121},"{\"type\":\"KeepAlive\"}",{"type":50,"value":1123}," as a text (JSON) frame every 3–5 seconds during silence. Sending it as a binary frame causes transcription delays — the audio pipeline chokes — not a silent no-op.",{"type":44,"tag":75,"props":1125,"children":1126},{},[1127,1132,1134,1139],{"type":44,"tag":79,"props":1128,"children":1129},{},[1130],{"type":50,"value":1131},"Never send empty byte payloads.",{"type":50,"value":1133}," Sending a zero-length binary frame to ",{"type":44,"tag":87,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":50,"value":182},{"type":50,"value":1140}," is treated as a close — it terminates the connection. Always check that your audio packet has length before sending.",{"type":44,"tag":75,"props":1142,"children":1143},{},[1144,1155,1157,1163,1165,1170],{"type":44,"tag":79,"props":1145,"children":1146},{},[1147,1153],{"type":44,"tag":87,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":50,"value":1152},"encoding",{"type":50,"value":1154}," must match the actual audio format.",{"type":50,"value":1156}," If ",{"type":44,"tag":87,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":50,"value":1162},"encoding=linear16",{"type":50,"value":1164}," but you're sending opus, you'll get a DATA-0000 error or garbled output. Omit ",{"type":44,"tag":87,"props":1166,"children":1168},{"className":1167},[],[1169],{"type":50,"value":1152},{"type":50,"value":1171}," entirely when sending containerized formats (mp3, wav, ogg) — Deepgram detects them automatically.",{"type":44,"tag":75,"props":1173,"children":1174},{},[1175,1180],{"type":44,"tag":79,"props":1176,"children":1177},{},[1178],{"type":50,"value":1179},"Timestamps reset on reconnect.",{"type":50,"value":1181}," Each new WebSocket connection restarts timestamps at 00:00:00. For real-time apps, maintain a timestamp offset across reconnections or you'll silently corrupt your transcript timeline.",{"type":44,"tag":977,"props":1183,"children":1185},{"id":1184},"tts-websocket-v1speak",[1186,1188,1193],{"type":50,"value":1187},"TTS WebSocket (",{"type":44,"tag":87,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":50,"value":1015},{"type":50,"value":192},{"type":44,"tag":984,"props":1195,"children":1197},{"start":1196},7,[1198,1223],{"type":44,"tag":75,"props":1199,"children":1200},{},[1201,1206,1208,1214,1216,1221],{"type":44,"tag":79,"props":1202,"children":1203},{},[1204],{"type":50,"value":1205},"Don't send empty text.",{"type":50,"value":1207}," A ",{"type":44,"tag":87,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":50,"value":1213},"Speak",{"type":50,"value":1215}," message with an empty ",{"type":44,"tag":87,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":50,"value":50},{"type":50,"value":1222}," field returns a 400 error. Always validate input before sending.",{"type":44,"tag":75,"props":1224,"children":1225},{},[1226,1231],{"type":44,"tag":79,"props":1227,"children":1228},{},[1229],{"type":50,"value":1230},"Character rate limiting (DATA-0001) means slow down, not retry.",{"type":50,"value":1232}," If you hit this, reduce how fast you're submitting text chunks — don't immediately retry or you'll compound the problem.",{"type":44,"tag":977,"props":1234,"children":1236},{"id":1235},"voice-agent-v1agentconverse",[1237,1239,1244],{"type":50,"value":1238},"Voice Agent (",{"type":44,"tag":87,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":50,"value":1023},{"type":50,"value":192},{"type":44,"tag":984,"props":1246,"children":1248},{"start":1247},9,[1249],{"type":44,"tag":75,"props":1250,"children":1251},{},[1252,1264],{"type":44,"tag":79,"props":1253,"children":1254},{},[1255,1257,1262],{"type":50,"value":1256},"Send the ",{"type":44,"tag":87,"props":1258,"children":1260},{"className":1259},[],[1261],{"type":50,"value":1031},{"type":50,"value":1263}," message before any audio.",{"type":50,"value":1265}," The agent ignores everything until it receives and acknowledges the Settings configuration. Message ordering is strictly required.",{"type":44,"tag":977,"props":1267,"children":1269},{"id":1268},"flux-model",[1270],{"type":50,"value":1271},"Flux model",{"type":44,"tag":984,"props":1273,"children":1275},{"start":1274},10,[1276,1329],{"type":44,"tag":75,"props":1277,"children":1278},{},[1279,1297,1299,1304,1306,1312,1314,1320,1322,1327],{"type":44,"tag":79,"props":1280,"children":1281},{},[1282,1284,1289,1291,1296],{"type":50,"value":1283},"Use ",{"type":44,"tag":87,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":50,"value":190},{"type":50,"value":1290}," and ",{"type":44,"tag":87,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":50,"value":607},{"type":50,"value":647},{"type":50,"value":1298}," ",{"type":44,"tag":87,"props":1300,"children":1302},{"className":1301},[],[1303],{"type":50,"value":182},{"type":50,"value":1305}," does not support Flux. ",{"type":44,"tag":87,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":50,"value":1311},"model=flux",{"type":50,"value":1313}," alone is not a valid value. Do not include ",{"type":44,"tag":87,"props":1315,"children":1317},{"className":1316},[],[1318],{"type":50,"value":1319},"language",{"type":50,"value":1321}," or ",{"type":44,"tag":87,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":50,"value":1152},{"type":50,"value":1328}," params for containerized audio.",{"type":44,"tag":75,"props":1330,"children":1331},{},[1332,1343,1345,1350,1352,1548,1552,1554,1560,1562,1568],{"type":44,"tag":79,"props":1333,"children":1334},{},[1335,1336,1341],{"type":50,"value":1283},{"type":44,"tag":87,"props":1337,"children":1339},{"className":1338},[],[1340],{"type":50,"value":504},{"type":50,"value":1342}," to update EOT thresholds and keyterms mid-session.",{"type":50,"value":1344}," Unlike ",{"type":44,"tag":87,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":50,"value":182},{"type":50,"value":1351},", Flux supports live reconfiguration after connection — no need to reconnect to change turn detection sensitivity or boost new keyterms:",{"type":44,"tag":145,"props":1353,"children":1357},{"className":1354,"code":1355,"language":1356,"meta":153,"style":153},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"type\": \"Configure\", \"thresholds\": { \"eot_threshold\": \"0.8\", \"eot_timeout_ms\": \"3000\" }, \"keyterms\": [\"Deepgram\"] }\n","json",[1358],{"type":44,"tag":87,"props":1359,"children":1360},{"__ignoreMap":153},[1361],{"type":44,"tag":1362,"props":1363,"children":1366},"span",{"class":1364,"line":1365},"line",1,[1367,1373,1378,1384,1389,1394,1398,1403,1407,1412,1416,1421,1425,1429,1434,1438,1444,1448,1452,1456,1461,1465,1469,1473,1478,1482,1486,1490,1495,1499,1504,1508,1513,1517,1521,1526,1530,1534,1538,1543],{"type":44,"tag":1362,"props":1368,"children":1370},{"style":1369},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1371],{"type":50,"value":1372},"{",{"type":44,"tag":1362,"props":1374,"children":1375},{"style":1369},[1376],{"type":50,"value":1377}," \"",{"type":44,"tag":1362,"props":1379,"children":1381},{"style":1380},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1382],{"type":50,"value":1383},"type",{"type":44,"tag":1362,"props":1385,"children":1386},{"style":1369},[1387],{"type":50,"value":1388},"\"",{"type":44,"tag":1362,"props":1390,"children":1391},{"style":1369},[1392],{"type":50,"value":1393},":",{"type":44,"tag":1362,"props":1395,"children":1396},{"style":1369},[1397],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1399,"children":1401},{"style":1400},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1402],{"type":50,"value":504},{"type":44,"tag":1362,"props":1404,"children":1405},{"style":1369},[1406],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1408,"children":1409},{"style":1369},[1410],{"type":50,"value":1411},",",{"type":44,"tag":1362,"props":1413,"children":1414},{"style":1369},[1415],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1417,"children":1418},{"style":1380},[1419],{"type":50,"value":1420},"thresholds",{"type":44,"tag":1362,"props":1422,"children":1423},{"style":1369},[1424],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1426,"children":1427},{"style":1369},[1428],{"type":50,"value":1393},{"type":44,"tag":1362,"props":1430,"children":1431},{"style":1369},[1432],{"type":50,"value":1433}," {",{"type":44,"tag":1362,"props":1435,"children":1436},{"style":1369},[1437],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1439,"children":1441},{"style":1440},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1442],{"type":50,"value":1443},"eot_threshold",{"type":44,"tag":1362,"props":1445,"children":1446},{"style":1369},[1447],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1449,"children":1450},{"style":1369},[1451],{"type":50,"value":1393},{"type":44,"tag":1362,"props":1453,"children":1454},{"style":1369},[1455],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1457,"children":1458},{"style":1400},[1459],{"type":50,"value":1460},"0.8",{"type":44,"tag":1362,"props":1462,"children":1463},{"style":1369},[1464],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1466,"children":1467},{"style":1369},[1468],{"type":50,"value":1411},{"type":44,"tag":1362,"props":1470,"children":1471},{"style":1369},[1472],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1474,"children":1475},{"style":1440},[1476],{"type":50,"value":1477},"eot_timeout_ms",{"type":44,"tag":1362,"props":1479,"children":1480},{"style":1369},[1481],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1483,"children":1484},{"style":1369},[1485],{"type":50,"value":1393},{"type":44,"tag":1362,"props":1487,"children":1488},{"style":1369},[1489],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1491,"children":1492},{"style":1400},[1493],{"type":50,"value":1494},"3000",{"type":44,"tag":1362,"props":1496,"children":1497},{"style":1369},[1498],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1500,"children":1501},{"style":1369},[1502],{"type":50,"value":1503}," },",{"type":44,"tag":1362,"props":1505,"children":1506},{"style":1369},[1507],{"type":50,"value":1377},{"type":44,"tag":1362,"props":1509,"children":1510},{"style":1380},[1511],{"type":50,"value":1512},"keyterms",{"type":44,"tag":1362,"props":1514,"children":1515},{"style":1369},[1516],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1518,"children":1519},{"style":1369},[1520],{"type":50,"value":1393},{"type":44,"tag":1362,"props":1522,"children":1523},{"style":1369},[1524],{"type":50,"value":1525}," [",{"type":44,"tag":1362,"props":1527,"children":1528},{"style":1369},[1529],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1531,"children":1532},{"style":1400},[1533],{"type":50,"value":9},{"type":44,"tag":1362,"props":1535,"children":1536},{"style":1369},[1537],{"type":50,"value":1388},{"type":44,"tag":1362,"props":1539,"children":1540},{"style":1369},[1541],{"type":50,"value":1542},"]",{"type":44,"tag":1362,"props":1544,"children":1545},{"style":1369},[1546],{"type":50,"value":1547}," }\n",{"type":44,"tag":1549,"props":1550,"children":1551},"br",{},[],{"type":50,"value":1553},"The server responds with ",{"type":44,"tag":87,"props":1555,"children":1557},{"className":1556},[],[1558],{"type":50,"value":1559},"ConfigureSuccess",{"type":50,"value":1561}," (echoing back applied values) or ",{"type":44,"tag":87,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":50,"value":1567},"ConfigureFailure",{"type":50,"value":1569},". Omitted threshold fields keep their current values.",{"type":44,"tag":977,"props":1571,"children":1573},{"id":1572},"authentication",[1574],{"type":50,"value":1575},"Authentication",{"type":44,"tag":984,"props":1577,"children":1579},{"start":1578},12,[1580],{"type":44,"tag":75,"props":1581,"children":1582},{},[1583,1588],{"type":44,"tag":79,"props":1584,"children":1585},{},[1586],{"type":50,"value":1587},"JWT TTL applies only to the initial handshake.",{"type":50,"value":1589}," Tokens default to 30 seconds. Once the WebSocket connection is established, the token expiring does not close it — tokens are only needed for the upgrade request.",{"type":44,"tag":59,"props":1591,"children":1593},{"id":1592},"sdk-specific-skills",[1594],{"type":50,"value":1595},"SDK-Specific Skills",{"type":44,"tag":53,"props":1597,"children":1598},{},[1599,1601,1606,1608,1613,1615,1621,1623,1629,1630,1636,1638,1644,1646,1652],{"type":50,"value":1600},"This ",{"type":44,"tag":87,"props":1602,"children":1604},{"className":1603},[],[1605],{"type":50,"value":4},{"type":50,"value":1607}," skill covers the product contracts (endpoints, query params, message shapes) that are identical across SDKs. For ",{"type":44,"tag":79,"props":1609,"children":1610},{},[1611],{"type":50,"value":1612},"language-idiomatic code",{"type":50,"value":1614}," — imports, async patterns, builder APIs, common errors — install the SDK-specific skills. Each Deepgram SDK publishes 7 product skills named ",{"type":44,"tag":87,"props":1616,"children":1618},{"className":1617},[],[1619],{"type":50,"value":1620},"deepgram-{lang}-{product}",{"type":50,"value":1622}," (e.g. ",{"type":44,"tag":87,"props":1624,"children":1626},{"className":1625},[],[1627],{"type":50,"value":1628},"deepgram-python-speech-to-text",{"type":50,"value":283},{"type":44,"tag":87,"props":1631,"children":1633},{"className":1632},[],[1634],{"type":50,"value":1635},"deepgram-js-voice-agent",{"type":50,"value":1637},") plus a maintainer skill ",{"type":44,"tag":87,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":50,"value":1643},"deepgram-{lang}-maintaining-sdk",{"type":50,"value":1645},". The ",{"type":44,"tag":87,"props":1647,"children":1649},{"className":1648},[],[1650],{"type":50,"value":1651},"deepgram-{lang}-",{"type":50,"value":1653}," prefix avoids collisions when you install skills from multiple SDKs.",{"type":44,"tag":145,"props":1655,"children":1659},{"className":1656,"code":1657,"language":1658,"meta":153,"style":153},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Install all skills from a specific SDK\nnpx skills add deepgram\u002Fdeepgram-python-sdk     # Python\nnpx skills add deepgram\u002Fdeepgram-js-sdk         # JavaScript \u002F TypeScript\nnpx skills add deepgram\u002Fdeepgram-java-sdk       # Java\nnpx skills add deepgram\u002Fdeepgram-go-sdk         # Go\nnpx skills add deepgram\u002Fdeepgram-rust-sdk       # Rust\nnpx skills add deepgram\u002Fdeepgram-swift-sdk      # Swift\nnpx skills add deepgram\u002Fdeepgram-kotlin-sdk     # Kotlin\nnpx skills add deepgram\u002Fdeepgram-dotnet-sdk     # C# \u002F .NET\nnpx skills add deepgram\u002Fdeepgram-browser-sdk    # Browser TypeScript\n\n# Or install a specific product skill from one SDK (note the deepgram-{lang}- prefix)\nnpx skills add deepgram\u002Fdeepgram-python-sdk --skill deepgram-python-speech-to-text\nnpx skills add deepgram\u002Fdeepgram-js-sdk     --skill deepgram-js-voice-agent\n","bash",[1660],{"type":44,"tag":87,"props":1661,"children":1662},{"__ignoreMap":153},[1663,1672,1701,1726,1752,1778,1804,1829,1855,1880,1905,1915,1923,1953],{"type":44,"tag":1362,"props":1664,"children":1665},{"class":1364,"line":1365},[1666],{"type":44,"tag":1362,"props":1667,"children":1669},{"style":1668},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1670],{"type":50,"value":1671},"# Install all skills from a specific SDK\n",{"type":44,"tag":1362,"props":1673,"children":1675},{"class":1364,"line":1674},2,[1676,1681,1686,1691,1696],{"type":44,"tag":1362,"props":1677,"children":1678},{"style":1440},[1679],{"type":50,"value":1680},"npx",{"type":44,"tag":1362,"props":1682,"children":1683},{"style":1400},[1684],{"type":50,"value":1685}," skills",{"type":44,"tag":1362,"props":1687,"children":1688},{"style":1400},[1689],{"type":50,"value":1690}," add",{"type":44,"tag":1362,"props":1692,"children":1693},{"style":1400},[1694],{"type":50,"value":1695}," deepgram\u002Fdeepgram-python-sdk",{"type":44,"tag":1362,"props":1697,"children":1698},{"style":1668},[1699],{"type":50,"value":1700},"     # Python\n",{"type":44,"tag":1362,"props":1702,"children":1703},{"class":1364,"line":32},[1704,1708,1712,1716,1721],{"type":44,"tag":1362,"props":1705,"children":1706},{"style":1440},[1707],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1709,"children":1710},{"style":1400},[1711],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1713,"children":1714},{"style":1400},[1715],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1717,"children":1718},{"style":1400},[1719],{"type":50,"value":1720}," deepgram\u002Fdeepgram-js-sdk",{"type":44,"tag":1362,"props":1722,"children":1723},{"style":1668},[1724],{"type":50,"value":1725},"         # JavaScript \u002F TypeScript\n",{"type":44,"tag":1362,"props":1727,"children":1729},{"class":1364,"line":1728},4,[1730,1734,1738,1742,1747],{"type":44,"tag":1362,"props":1731,"children":1732},{"style":1440},[1733],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1735,"children":1736},{"style":1400},[1737],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1739,"children":1740},{"style":1400},[1741],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1743,"children":1744},{"style":1400},[1745],{"type":50,"value":1746}," deepgram\u002Fdeepgram-java-sdk",{"type":44,"tag":1362,"props":1748,"children":1749},{"style":1668},[1750],{"type":50,"value":1751},"       # Java\n",{"type":44,"tag":1362,"props":1753,"children":1755},{"class":1364,"line":1754},5,[1756,1760,1764,1768,1773],{"type":44,"tag":1362,"props":1757,"children":1758},{"style":1440},[1759],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1761,"children":1762},{"style":1400},[1763],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1765,"children":1766},{"style":1400},[1767],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1769,"children":1770},{"style":1400},[1771],{"type":50,"value":1772}," deepgram\u002Fdeepgram-go-sdk",{"type":44,"tag":1362,"props":1774,"children":1775},{"style":1668},[1776],{"type":50,"value":1777},"         # Go\n",{"type":44,"tag":1362,"props":1779,"children":1781},{"class":1364,"line":1780},6,[1782,1786,1790,1794,1799],{"type":44,"tag":1362,"props":1783,"children":1784},{"style":1440},[1785],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1787,"children":1788},{"style":1400},[1789],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1791,"children":1792},{"style":1400},[1793],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1795,"children":1796},{"style":1400},[1797],{"type":50,"value":1798}," deepgram\u002Fdeepgram-rust-sdk",{"type":44,"tag":1362,"props":1800,"children":1801},{"style":1668},[1802],{"type":50,"value":1803},"       # Rust\n",{"type":44,"tag":1362,"props":1805,"children":1806},{"class":1364,"line":1196},[1807,1811,1815,1819,1824],{"type":44,"tag":1362,"props":1808,"children":1809},{"style":1440},[1810],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1812,"children":1813},{"style":1400},[1814],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1816,"children":1817},{"style":1400},[1818],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1820,"children":1821},{"style":1400},[1822],{"type":50,"value":1823}," deepgram\u002Fdeepgram-swift-sdk",{"type":44,"tag":1362,"props":1825,"children":1826},{"style":1668},[1827],{"type":50,"value":1828},"      # Swift\n",{"type":44,"tag":1362,"props":1830,"children":1832},{"class":1364,"line":1831},8,[1833,1837,1841,1845,1850],{"type":44,"tag":1362,"props":1834,"children":1835},{"style":1440},[1836],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1838,"children":1839},{"style":1400},[1840],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1842,"children":1843},{"style":1400},[1844],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1846,"children":1847},{"style":1400},[1848],{"type":50,"value":1849}," deepgram\u002Fdeepgram-kotlin-sdk",{"type":44,"tag":1362,"props":1851,"children":1852},{"style":1668},[1853],{"type":50,"value":1854},"     # Kotlin\n",{"type":44,"tag":1362,"props":1856,"children":1857},{"class":1364,"line":1247},[1858,1862,1866,1870,1875],{"type":44,"tag":1362,"props":1859,"children":1860},{"style":1440},[1861],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1863,"children":1864},{"style":1400},[1865],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1867,"children":1868},{"style":1400},[1869],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1871,"children":1872},{"style":1400},[1873],{"type":50,"value":1874}," deepgram\u002Fdeepgram-dotnet-sdk",{"type":44,"tag":1362,"props":1876,"children":1877},{"style":1668},[1878],{"type":50,"value":1879},"     # C# \u002F .NET\n",{"type":44,"tag":1362,"props":1881,"children":1882},{"class":1364,"line":1274},[1883,1887,1891,1895,1900],{"type":44,"tag":1362,"props":1884,"children":1885},{"style":1440},[1886],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1888,"children":1889},{"style":1400},[1890],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1892,"children":1893},{"style":1400},[1894],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1896,"children":1897},{"style":1400},[1898],{"type":50,"value":1899}," deepgram\u002Fdeepgram-browser-sdk",{"type":44,"tag":1362,"props":1901,"children":1902},{"style":1668},[1903],{"type":50,"value":1904},"    # Browser TypeScript\n",{"type":44,"tag":1362,"props":1906,"children":1908},{"class":1364,"line":1907},11,[1909],{"type":44,"tag":1362,"props":1910,"children":1912},{"emptyLinePlaceholder":1911},true,[1913],{"type":50,"value":1914},"\n",{"type":44,"tag":1362,"props":1916,"children":1917},{"class":1364,"line":1578},[1918],{"type":44,"tag":1362,"props":1919,"children":1920},{"style":1668},[1921],{"type":50,"value":1922},"# Or install a specific product skill from one SDK (note the deepgram-{lang}- prefix)\n",{"type":44,"tag":1362,"props":1924,"children":1926},{"class":1364,"line":1925},13,[1927,1931,1935,1939,1943,1948],{"type":44,"tag":1362,"props":1928,"children":1929},{"style":1440},[1930],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1932,"children":1933},{"style":1400},[1934],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1936,"children":1937},{"style":1400},[1938],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1940,"children":1941},{"style":1400},[1942],{"type":50,"value":1695},{"type":44,"tag":1362,"props":1944,"children":1945},{"style":1400},[1946],{"type":50,"value":1947}," --skill",{"type":44,"tag":1362,"props":1949,"children":1950},{"style":1400},[1951],{"type":50,"value":1952}," deepgram-python-speech-to-text\n",{"type":44,"tag":1362,"props":1954,"children":1955},{"class":1364,"line":28},[1956,1960,1964,1968,1972,1977],{"type":44,"tag":1362,"props":1957,"children":1958},{"style":1440},[1959],{"type":50,"value":1680},{"type":44,"tag":1362,"props":1961,"children":1962},{"style":1400},[1963],{"type":50,"value":1685},{"type":44,"tag":1362,"props":1965,"children":1966},{"style":1400},[1967],{"type":50,"value":1690},{"type":44,"tag":1362,"props":1969,"children":1970},{"style":1400},[1971],{"type":50,"value":1720},{"type":44,"tag":1362,"props":1973,"children":1974},{"style":1400},[1975],{"type":50,"value":1976},"     --skill",{"type":44,"tag":1362,"props":1978,"children":1979},{"style":1400},[1980],{"type":50,"value":1981}," deepgram-js-voice-agent\n",{"type":44,"tag":59,"props":1983,"children":1985},{"id":1984},"related-deepgram-skills",[1986],{"type":50,"value":1987},"Related Deepgram skills",{"type":44,"tag":199,"props":1989,"children":1990},{},[1991,2007],{"type":44,"tag":203,"props":1992,"children":1993},{},[1994],{"type":44,"tag":207,"props":1995,"children":1996},{},[1997,2002],{"type":44,"tag":211,"props":1998,"children":1999},{},[2000],{"type":50,"value":2001},"Skill",{"type":44,"tag":211,"props":2003,"children":2004},{},[2005],{"type":50,"value":2006},"Purpose",{"type":44,"tag":237,"props":2008,"children":2009},{},[2010,2027,2044,2061,2078],{"type":44,"tag":207,"props":2011,"children":2012},{},[2013,2022],{"type":44,"tag":244,"props":2014,"children":2015},{},[2016],{"type":44,"tag":87,"props":2017,"children":2019},{"className":2018},[],[2020],{"type":50,"value":2021},"recipes",{"type":44,"tag":244,"props":2023,"children":2024},{},[2025],{"type":50,"value":2026},"Minimal runnable snippets per feature per language",{"type":44,"tag":207,"props":2028,"children":2029},{},[2030,2039],{"type":44,"tag":244,"props":2031,"children":2032},{},[2033],{"type":44,"tag":87,"props":2034,"children":2036},{"className":2035},[],[2037],{"type":50,"value":2038},"examples",{"type":44,"tag":244,"props":2040,"children":2041},{},[2042],{"type":50,"value":2043},"Full integration examples with third-party platforms (Twilio, LiveKit, etc.)",{"type":44,"tag":207,"props":2045,"children":2046},{},[2047,2056],{"type":44,"tag":244,"props":2048,"children":2049},{},[2050],{"type":44,"tag":87,"props":2051,"children":2053},{"className":2052},[],[2054],{"type":50,"value":2055},"starters",{"type":44,"tag":244,"props":2057,"children":2058},{},[2059],{"type":50,"value":2060},"Runnable starter apps (framework × feature matrix)",{"type":44,"tag":207,"props":2062,"children":2063},{},[2064,2073],{"type":44,"tag":244,"props":2065,"children":2066},{},[2067],{"type":44,"tag":87,"props":2068,"children":2070},{"className":2069},[],[2071],{"type":50,"value":2072},"docs",{"type":44,"tag":244,"props":2074,"children":2075},{},[2076],{"type":50,"value":2077},"Navigate Deepgram documentation",{"type":44,"tag":207,"props":2079,"children":2080},{},[2081,2090],{"type":44,"tag":244,"props":2082,"children":2083},{},[2084],{"type":44,"tag":87,"props":2085,"children":2087},{"className":2086},[],[2088],{"type":50,"value":2089},"setup-mcp",{"type":44,"tag":244,"props":2091,"children":2092},{},[2093],{"type":50,"value":2094},"Install the Deepgram MCP server",{"type":44,"tag":59,"props":2096,"children":2098},{"id":2097},"documentation",[2099],{"type":50,"value":2100},"Documentation",{"type":44,"tag":71,"props":2102,"children":2103},{},[2104,2114,2124,2134,2144,2154],{"type":44,"tag":75,"props":2105,"children":2106},{},[2107],{"type":44,"tag":638,"props":2108,"children":2111},{"href":2109,"rel":2110},"https:\u002F\u002Fdevelopers.deepgram.com\u002Freference\u002Fdeepgram-api-overview",[642],[2112],{"type":50,"value":2113},"API Reference",{"type":44,"tag":75,"props":2115,"children":2116},{},[2117],{"type":44,"tag":638,"props":2118,"children":2121},{"href":2119,"rel":2120},"https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fstt\u002Fgetting-started",[642],[2122],{"type":50,"value":2123},"Speech-to-Text Getting Started",{"type":44,"tag":75,"props":2125,"children":2126},{},[2127],{"type":44,"tag":638,"props":2128,"children":2131},{"href":2129,"rel":2130},"https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Ftts-rest",[642],[2132],{"type":50,"value":2133},"Text-to-Speech Docs",{"type":44,"tag":75,"props":2135,"children":2136},{},[2137],{"type":44,"tag":638,"props":2138,"children":2141},{"href":2139,"rel":2140},"https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fvoice-agent",[642],[2142],{"type":50,"value":2143},"Voice Agent Docs",{"type":44,"tag":75,"props":2145,"children":2146},{},[2147],{"type":44,"tag":638,"props":2148,"children":2151},{"href":2149,"rel":2150},"https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Faudio-intelligence",[642],[2152],{"type":50,"value":2153},"Audio Intelligence",{"type":44,"tag":75,"props":2155,"children":2156},{},[2157],{"type":44,"tag":638,"props":2158,"children":2161},{"href":2159,"rel":2160},"https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fself-hosted-introduction",[642],[2162],{"type":50,"value":2163},"Self-Hosted Deployments",{"type":44,"tag":2165,"props":2166,"children":2167},"style",{},[2168],{"type":50,"value":2169},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2171,"total":1780},[2172,2180,2192,2203,2212,2227],{"slug":4,"name":4,"fn":5,"description":6,"org":2173,"tags":2174,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2175,2176,2177,2178,2179],{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"slug":2072,"name":2072,"fn":2181,"description":2182,"org":2183,"tags":2184,"stars":28,"repoUrl":29,"updatedAt":2191},"retrieve Deepgram product documentation","Find the right Deepgram documentation for any task. Use whenever someone needs help locating docs, understanding which API to use, or wants to ask questions about Deepgram. Covers all product areas: speech-to-text, text-to-speech, voice agents, audio intelligence, and self-hosted deployments.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2185,2186,2188],{"name":2100,"slug":2097,"type":15},{"name":682,"slug":2187,"type":15},"reference",{"name":2189,"slug":2190,"type":15},"Research","research","2026-07-12T08:30:00.459256",{"slug":2038,"name":2038,"fn":2193,"description":2194,"org":2195,"tags":2196,"stars":28,"repoUrl":29,"updatedAt":2202},"find Deepgram integration examples","Find working Deepgram integration examples with third-party platforms and frameworks. Use whenever someone wants to integrate Deepgram with Twilio, LiveKit, LangChain, Vercel AI SDK, Discord, Vonage, Pipecat, Expo, FastAPI, Cloudflare Workers, Slack, Telegram, LlamaIndex, Zoom, Next.js, Nuxt, Django, SvelteKit, NestJS, Spring Boot, CrewAI, Riverside, SignalWire, and more. Examples are full runnable integration demos, not minimal feature snippets.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2197,2198,2201],{"name":2100,"slug":2097,"type":15},{"name":2199,"slug":2200,"type":15},"Integrations","integrations",{"name":682,"slug":2187,"type":15},"2026-07-12T08:30:04.40341",{"slug":2021,"name":2021,"fn":2204,"description":2205,"org":2206,"tags":2207,"stars":28,"repoUrl":29,"updatedAt":2211},"retrieve Deepgram code recipes","Find focused, runnable Deepgram recipes for a specific feature × language. Use whenever someone wants a minimal working code snippet for ONE feature (transcribe URL, diarize, smart-format, voice agent connect, etc.) rather than a full starter app. Recipes are under 50 lines, read DEEPGRAM_API_KEY from env, and ship with a runnable example_test. Covers Python, JavaScript, Go, .NET, Java, Rust, and the Deepgram CLI.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2208,2209,2210],{"name":23,"slug":24,"type":15},{"name":2100,"slug":2097,"type":15},{"name":17,"slug":18,"type":15},"2026-07-12T08:30:01.883365",{"slug":2089,"name":2089,"fn":2213,"description":2214,"org":2215,"tags":2216,"stars":28,"repoUrl":29,"updatedAt":2226},"configure Deepgram MCP server","Set up the Deepgram MCP server for your AI coding tool. Checks whether the Deepgram CLI (dg\u002Fdeepctl) is installed: if so, uses the local CLI MCP server (dg mcp) for full tool access; otherwise offers the hosted documentation MCP or suggests installing the CLI. Use whenever someone wants to install Deepgram's agentic tools, set up the MCP server, or connect their editor to Deepgram.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2217,2220,2223],{"name":2218,"slug":2219,"type":15},"CLI","cli",{"name":2221,"slug":2222,"type":15},"Engineering","engineering",{"name":2224,"slug":2225,"type":15},"MCP","mcp","2026-07-12T08:30:05.638123",{"slug":2055,"name":2055,"fn":2228,"description":2229,"org":2230,"tags":2231,"stars":28,"repoUrl":29,"updatedAt":2239},"prototype Deepgram applications with starters","Clone a ready-to-run Deepgram demo app and start building on top of it. Use whenever someone wants a quick working demo, needs to prototype with Deepgram, or is starting a new project that uses speech-to-text, text-to-speech, voice agents, audio intelligence, or live streaming. Match the user's language, framework, and desired Deepgram feature to the right starter.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2232,2235,2238],{"name":2233,"slug":2234,"type":15},"Build","build",{"name":2236,"slug":2237,"type":15},"Prototyping","prototyping",{"name":26,"slug":27,"type":15},"2026-07-12T08:30:03.178788",{"items":2241,"total":2398},[2242,2256,2272,2286,2298,2310,2322,2333,2349,2363,2375,2387],{"slug":2243,"name":2243,"fn":2244,"description":2245,"org":2246,"tags":2247,"stars":2253,"repoUrl":2254,"updatedAt":2255},"deepclaw-voice","configure phone calls with Deepgram Voice","Set up phone calling to OpenClaw using Deepgram Voice Agent API",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2248,2249,2250],{"name":23,"slug":24,"type":15},{"name":9,"slug":8,"type":15},{"name":2251,"slug":2252,"type":15},"Voice","voice",78,"https:\u002F\u002Fgithub.com\u002Fdeepgram\u002Fdeepclaw","2026-07-12T08:29:25.371332",{"slug":2257,"name":2257,"fn":2258,"description":2259,"org":2260,"tags":2261,"stars":2269,"repoUrl":2270,"updatedAt":2271},"1password","manage secrets with 1Password CLI","Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading\u002Finjecting\u002Frunning secrets via op.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2262,2265,2266],{"name":2263,"slug":2264,"type":15},"Automation","automation",{"name":2218,"slug":2219,"type":15},{"name":2267,"slug":2268,"type":15},"Security","security",23,"https:\u002F\u002Fgithub.com\u002Fdeepgram\u002Fdglabs-deepclaw","2026-07-12T08:28:49.991939",{"slug":2273,"name":2273,"fn":2274,"description":2275,"org":2276,"tags":2277,"stars":2269,"repoUrl":2270,"updatedAt":2285},"apple-notes","manage Apple Notes on macOS","Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2278,2279,2282],{"name":2218,"slug":2219,"type":15},{"name":2280,"slug":2281,"type":15},"Knowledge Management","knowledge-management",{"name":2283,"slug":2284,"type":15},"macOS","macos","2026-07-12T08:29:01.538106",{"slug":2287,"name":2287,"fn":2288,"description":2289,"org":2290,"tags":2291,"stars":2269,"repoUrl":2270,"updatedAt":2297},"apple-reminders","manage Apple Reminders via CLI","Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON\u002Fplain output.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2292,2293,2294],{"name":2218,"slug":2219,"type":15},{"name":2283,"slug":2284,"type":15},{"name":2295,"slug":2296,"type":15},"Task Management","task-management","2026-07-12T08:29:14.035414",{"slug":2299,"name":2299,"fn":2300,"description":2301,"org":2302,"tags":2303,"stars":2269,"repoUrl":2270,"updatedAt":2309},"bear-notes","manage Bear notes via CLI","Create, search, and manage Bear notes via grizzly CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2304,2305,2306],{"name":2218,"slug":2219,"type":15},{"name":2280,"slug":2281,"type":15},{"name":2307,"slug":2308,"type":15},"Notes","notes","2026-07-12T08:28:51.246011",{"slug":2311,"name":2311,"fn":2312,"description":2313,"org":2314,"tags":2315,"stars":2269,"repoUrl":2270,"updatedAt":2321},"blogwatcher","monitor blogs and RSS feeds","Monitor blogs and RSS\u002FAtom feeds for updates using the blogwatcher CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2316,2317,2318],{"name":2263,"slug":2264,"type":15},{"name":2218,"slug":2219,"type":15},{"name":2319,"slug":2320,"type":15},"Monitoring","monitoring","2026-07-12T08:29:02.762321",{"slug":2323,"name":2323,"fn":2324,"description":2325,"org":2326,"tags":2327,"stars":2269,"repoUrl":2270,"updatedAt":2332},"blucli","control BluOS audio playback","BluOS CLI (blu) for discovery, playback, grouping, and volume.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2328,2331],{"name":2329,"slug":2330,"type":15},"Audio","audio",{"name":2218,"slug":2219,"type":15},"2026-07-12T08:28:21.009637",{"slug":2334,"name":2334,"fn":2335,"description":2336,"org":2337,"tags":2338,"stars":2269,"repoUrl":2270,"updatedAt":2348},"bluebubbles","send and manage iMessages","Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel=\"bluebubbles\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2339,2342,2345],{"name":2340,"slug":2341,"type":15},"Communications","communications",{"name":2343,"slug":2344,"type":15},"iMessage","imessage",{"name":2346,"slug":2347,"type":15},"Messaging","messaging","2026-07-12T08:28:57.517914",{"slug":2350,"name":2350,"fn":2351,"description":2352,"org":2353,"tags":2354,"stars":2269,"repoUrl":2270,"updatedAt":2362},"camsnap","capture frames and clips from cameras","Capture frames or clips from RTSP\u002FONVIF cameras.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2355,2356,2359],{"name":2263,"slug":2264,"type":15},{"name":2357,"slug":2358,"type":15},"Camera","camera",{"name":2360,"slug":2361,"type":15},"Media","media","2026-07-12T08:28:28.096134",{"slug":2364,"name":2364,"fn":2365,"description":2366,"org":2367,"tags":2368,"stars":2269,"repoUrl":2270,"updatedAt":2374},"clawhub","manage agent skills with ClawHub","Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new\u002Fupdated skill folders with the npm-installed clawhub CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2369,2372,2373],{"name":2370,"slug":2371,"type":15},"Agents","agents",{"name":2263,"slug":2264,"type":15},{"name":2218,"slug":2219,"type":15},"2026-07-12T08:28:30.589001",{"slug":2376,"name":2376,"fn":2377,"description":2378,"org":2379,"tags":2380,"stars":2269,"repoUrl":2270,"updatedAt":2386},"coding-agent","run coding agents for programmatic control","Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2381,2382,2383],{"name":2370,"slug":2371,"type":15},{"name":2263,"slug":2264,"type":15},{"name":2384,"slug":2385,"type":15},"Coding","coding","2026-07-12T08:29:08.6658",{"slug":2388,"name":2388,"fn":2389,"description":2390,"org":2391,"tags":2392,"stars":2269,"repoUrl":2270,"updatedAt":2397},"eightctl","control Eight Sleep pod settings","Control Eight Sleep pods (status, temperature, alarms, schedules).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2393,2394],{"name":2263,"slug":2264,"type":15},{"name":2395,"slug":2396,"type":15},"Hardware","hardware","2026-07-12T08:28:39.322181",73]