Skip to content

Repository files navigation

examples

A collection of working examples showing how to use Deepgram SDKs with popular platforms, frameworks, and ecosystems.

→ Contributing · → Open PRs · → Suggest an example

Examples

#ExampleLanguageIntegration
010Getting Started — Transcribe a URL with Node.jsNode.jsDeepgram SDK
020Twilio Media Streams — Real-Time Call TranscriptionNode.jsTwilio
021Twilio Voice + Deepgram Voice Agent — AI Phone AgentNode.jsTwilio
030LiveKit Agents — Voice Assistant with Deepgram STTPythonLiveKit
040LangChain STT Tool — Transcribe Audio in AI PipelinesPythonLangChain
050Vercel AI SDK — Transcribe Audio and Generate Speech with DeepgramNode.jsVercel AI SDK
051Next.js Streaming STT + TTS with Deepgram via the Vercel AI SDKNode.jsVercel AI SDK
052Vercel AI SDK Agent with Deepgram Voice ToolsNode.jsVercel AI SDK
060Discord Bot — Transcribe Audio Attachments with DeepgramNode.jsDiscord
070Vonage Voice API — Real-Time Call TranscriptionNode.jsVonage
080Pipecat Voice Pipeline — Conversational Bot with Deepgram STT & TTSPythonPipecat
090Expo Live TranscriptionNode.jsExpo
100FastAPI Audio Transcription APIPythonFastAPI
110Cloudflare Worker — Edge Audio TranscriptionNode.jsCloudflare
120Slack Bot — Auto-Transcribe Audio Messages with DeepgramNode.jsSlack
130Telegram Voice Transcription BotPythonTelegram
140Audio to Subtitles CLIPythonDeepgram SDK
150Flutter Voice TranscriptionDartFlutter
160LlamaIndex Audio Document Loader — Transcribe Audio into RAG PipelinesPythonLlamaIndex
170Electron Live Transcription OverlayNode.jsElectron
180Zoom Cloud Recording Transcription with DeepgramNode.jsZoom
190Daily.co Real-Time Transcription OverlayNode.jsDaily.co
200Vanilla JavaScript Browser Transcription (No Bundler)Node.jsDeepgram SDK
210OpenAI Agents SDK Voice Pipeline with Deepgram STT & TTSPythonOpenAI Agents SDK
220Django Channels Real-Time Transcription with Deepgram Live STTPythonDjango
230n8n Community Nodes for DeepgramNode.jsn8n
240Nuxt Streaming STT + TTS with DeepgramNode.jsNuxt
260NestJS WebSocket Real-Time TranscriptionNode.jsNestJS
270SvelteKit Real-Time Live TranscriptionNode.jsSvelteKit
280Express.js + React Live Transcription (TypeScript)Node.jsExpress + React
290AWS Lambda Serverless Audio TranscriptionPythonAWS Lambda
300Spring Boot Real-Time Transcription with DeepgramJavaSpring Boot
310CrewAI Voice-Enabled Multi-Agent System with DeepgramPythonCrewAI
340Tauri Desktop Live TranscriptionPythonTauri
350Asterisk / FreeSWITCH PBX to Deepgram Streaming STTPythonAsterisk/FreeSWITCH
360Kotlin Android Live TranscriptionKotlinJetpack Compose
370Swift iOS Live TranscriptionSwiftSwiftUI
400Riverside.fm Recording TranscriptionNode.jsRiverside
420SignalWire Real-Time Call Transcription with Deepgram STTNode.jsSignalWire
430Telnyx TeXML Stream to Deepgram Real-Time TranscriptionNode.jsTelnyx
440Plivo Audio Streaming — Real-Time Call TranscriptionNode.jsPlivo
450Jitsi Meet Real-Time Transcription with Deepgram STTNode.jsJitsi
460Webex Recording Transcription with DeepgramNode.jsWebex
480OBS Studio Live Captioning Plugin (C + Deepgram STT)PythonOBS Studio
490Haystack Audio Transcription Pipeline with Deepgram STTPythonHaystack
500Semantic Kernel Voice Plugin with Deepgram (.NET)JavaScriptSemantic Kernel
510Gin Real-Time WebSocket Transcription ServerGoGin
520Deepgram Proxy Server (Node.js)Node.jsDeepgram SDK

CI / testing

Every PR that touches examples/** runs language-specific test jobs automatically. The e2e-api-check status check is required before merge.

LanguageMarker file
Node.js / TypeScriptpackage.json
Pythonrequirements.txt or pyproject.toml
Gogo.mod
Javapom.xml or build.gradle
RustCargo.toml
.NET*.csproj or *.sln
Dartpubspec.yaml
Kotlinbuild.gradle.kts
SwiftPackage.swift or *.xcodeproj
CLIexample.sh or src/*.sh

All examples are also tested on a recurring schedule to catch regressions from SDK updates or API changes.

Automated example building

Suggesting a new integration is as simple as opening an issue. From there, a GitHub Actions workflow handles the build: an LLM agent (Claude Opus) writes the code, runs it in a Docker sandbox, diagnoses failures, and iterates until tests pass — then opens a PR for human review before anything merges. The workflow also sweeps open suggestions on a schedule, so nothing sits unbuilt indefinitely.

The agent uses a neurosymbolic architecture to stay on track. A symbolic working memory records observed facts as tools fire — which files exist, whether tests are passing, which phases are complete — without the LLM being able to misreport them. A forward-chaining rule engine pattern-matches tool output each turn and injects targeted guidance when things go wrong: missing imports get named, repeated failing commands trigger a strategy nudge, turn-budget warnings reprioritise the remaining work. And a constraint checker holds a formal veto over completion: when the agent signals it's done, the checker verifies the definition of done deterministically — required files exist, test directories are non-empty, no hardcoded secrets — and rejects the signal if anything is missing. The LLM handles open-ended reasoning and generation; the symbolic layer handles state, rules, and verification.

Directory structure

examples/
{NNN}-{slug}/ # e.g. 010-getting-started-node
README.md # Quickstart — what it does, prerequisites, env vars, how to run
BLOG.md # Developer walkthrough — how it was built, step by step
.env.example # Every required environment variable (no values)
screenshot.png # 1240×760 Playwright screenshot (UI/terminal examples)
src/ # Source code
tests/ # Tests — exit 0=pass, 1=fail, 2=missing credentials
tests/
e2e.py # Deepgram STT + TTS smoke test (runs on every PR)
.github/
workflows/ # CI workflows
scripts/ # Agent scripts (plan, build, filter secrets, symbolic layer)
ISSUE_TEMPLATE/ # Issue templates

Numbering convention

Examples are numbered globally in increments of 10: 010, 020, 030 … A platform owns its group — a second Twilio example would be 021, not a new slot. New platforms claim the next free multiple of 10.

Setup

  1. Add DEEPGRAM_API_KEY as a repository secret — required for E2E tests
  2. Add partner credentials as needed (each example's .env.example lists them)

GITHUB_TOKEN is provided automatically by GitHub Actions.

Contributing

Open an issue to suggest a new example, or submit a PR directly. See CONTRIBUTING.md for guidelines.

About

Deepgram SDK integrations with popular platforms, frameworks, and ecosystems maintained by the DX team

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages