{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m6b3b5n2gk3mz6bmjhj1fkhk",
 "ids": {
  "org": "org_01m6b3b5n2fc6v1t47ntg5hscf",
  "surfaces": {
   "web": "srf_01m6b3b5n2p4p7ybpats6bsy0w",
   "api": "srf_01m6b3b5n2wtz0mtxmz678nr2e",
   "mcp": "srf_01m6b3b5n2gq2ss649yvc2st1e",
   "cli": "srf_01m6b3b5n2c8n6qq9xw10nw95y",
   "sdk": "srf_01m6b3b5n2596a8bbmf8bva8gp"
  },
  "slugs": [
   "deepgram"
  ],
  "domain": "deepgram.com"
 },
 "slug": "deepgram",
 "name": "Deepgram",
 "url": "https://deepgram.com",
 "domain": "deepgram.com",
 "category": "speech",
 "category_name": "Speech and voice AI",
 "tested_at": "2026-11-01",
 "run": "20261101T065932Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261101T065932Z",
   "date": "2026-11-01",
   "level": 3,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.11.01",
    "commit": "ec81c2c9ee96dcdbebb170f4e8311cac1070bbef",
    "prompts": {
     "version": "2026.10.31",
     "commit": "89bf772fa7ebc3254cfd6313591a49f5c52a28b7"
    },
    "rules": {
     "version": "2026.10.31",
     "commit": "035d6752f8e8b4dfd75b95d48b7890d0101c6352"
    }
   },
   "stop": null,
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 3,
 "level_name": "Does the work",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 1,
  "tries": 1,
  "self_start": true
 },
 "badges": [
  "agent-can-leave"
 ],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed",
   "how": "no-account",
   "way": "keyless"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "part",
   "text": "Work done: 56% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "No payment made: paying needs an account",
   "value": "not_tried",
   "route": "portal",
   "why": "account"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, made nothing to delete",
   "how": "no-account",
   "left": "nothing_made",
   "delete": {
    "state": "na",
    "text": "Made nothing to delete",
    "why": "No account was made; the keyless playground and keyless reads stored nothing for us beyond an IP trial counter."
   }
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "yes",
   "text": "Docs it can act on: llms.txt and an OpenAPI",
   "have": [
    "llms_txt",
    "openapi"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed",
   "how": "no-account",
   "way": "keyless",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "part",
   "text": "Work done: 56% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "No payment made: paying needs an account",
   "value": "not_tried",
   "route": "portal",
   "why": "account",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, made nothing to delete",
   "how": "no-account",
   "left": "nothing_made",
   "delete": {
    "state": "na",
    "text": "Made nothing to delete",
    "why": "No account was made; the keyless playground and keyless reads stored nothing for us beyond an IP trial counter."
   },
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "keyless",
   "label": "No key needed",
   "routes": [
    "keyless"
   ],
   "minutes": 20,
   "core": "5/9"
  }
 ],
 "minutes": 20,
 "next": {
  "to": 4,
  "text": "Next: do 80% of the core work (now 56%)"
 },
 "stop": null,
 "core": "5/9",
 "scores": {
  "coverage": 56,
  "reliability": 76,
  "resilience": 70,
  "setup": 100,
  "surface_coverage": 13,
  "docs_accuracy": 84,
  "docs_completeness": 51
 },
 "parts": {
  "holds_up": 73,
  "docs_match": 74,
  "setup": 100,
  "security": "private",
  "standards": [
   {
    "standard": "MCP discovery",
    "state": "behind",
    "behind": null,
    "value": "legacy"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 71,
   "recovery": 70
  },
  "summary": {
   "error_legibility": "mixed",
   "recovery": "partial",
   "idempotency": "n/a",
   "rate_limits": "none-seen",
   "notes": "A bad key gets a clear 401 that says to check the credentials; a missing model gets an empty 404 and an unknown model on a stream only \"Failed to connect.\". 15 quick reads all answered 200 with no rate-limit headers; no create could be retried without a key."
  }
 },
 "stress": [
  {
   "capability": "Transcribe a pre-recorded audio or video file",
   "probe": "bad credential on a documented endpoint",
   "outcome": "HTTP/2 401  {\"category\":\"UNAUTHORIZED\",\"message\":\"Authentication failed.\",\"details\":\"Check that you are using the correct credentials.\",\"request_id\":\"25d35c43-3dfd-4c06-9b44-90e1f385a3aa\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "List available speech and voice models",
   "probe": "well-formed model id that does not exist",
   "outcome": "404 with empty body; GET /v1/models/not-a-uuid -> 404 text \"UUID parsing failed: invalid character: found `n` at 0\"",
   "grade": "vague",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "List available speech and voice models",
   "probe": "burst of 15 sequential reads",
   "outcome": "statuses 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200; no RateLimit / X-RateLimit / Retry-After headers",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  },
  {
   "capability": "Transcribe a pre-recorded audio or video file",
   "probe": "idempotent retry of a create",
   "outcome": "n/a",
   "grade": "vague",
   "idempotent": "n/a",
   "rate_limit": null
  },
  {
   "capability": "Transcribe a pre-recorded audio or video file",
   "probe": "malformed transcription request without a key",
   "outcome": "401 dg-error: Invalid credentials. {\"err_code\":\"INVALID_AUTH\",\"err_msg\":\"Invalid credentials.\",\"request_id\":\"01a19606-532d-7ca1-bcd3-e8c48fb3b1d7\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Transcribe streaming audio in real time",
   "probe": "unknown model name on a streaming session",
   "outcome": "socket opened and closed with no message frame; the page shows only \"Failed to connect.\"",
   "grade": "vague",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": {
  "totals": {
   "items": 171,
   "documented": 165,
   "safe": 165,
   "exercised": 28,
   "passed": 22,
   "skipped": 0,
   "blocked": 137,
   "not_run": 0,
   "match": 21,
   "drift": 4,
   "broken_doc": 0,
   "docs_complete": 24,
   "docs_partial": 119,
   "docs_missing": 22,
   "errors_clear": 3,
   "errors_vague": 2,
   "errors_silent": 1
  }
 },
 "coverage_core": 56,
 "coverage_own": 56,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.11.01",
  "commit": "ec81c2c9ee96dcdbebb170f4e8311cac1070bbef",
  "prompts": {
   "version": "2026.10.31",
   "commit": "89bf772fa7ebc3254cfd6313591a49f5c52a28b7"
  },
  "rules": {
   "version": "2026.10.31",
   "commit": "035d6752f8e8b4dfd75b95d48b7890d0101c6352"
  }
 },
 "same_level_drives": 1,
 "drives": 1,
 "same_stop_drives": 1,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Google reCAPTCHA v2",
  "visible": true,
  "type": "challenge",
  "human": "",
  "how": "In Google Cloud Fraud Defense (reCAPTCHA), lower the score your sign-up action needs or give it a challenge policy. Or offer a documented sign-up API with email verification.",
  "recognises_us": false,
  "vendor_id": "recaptcha",
  "other_way": true,
  "way": "email_password",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-11-01"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "verified",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt (deepgram.com and developers.deepgram.com), OpenAPI 3.1.0 (50 operations), AsyncAPI 2.6.0, Markdown on every docs page (.md and Accept: text/markdown), CLI and MCP pages all fetched without a browser."
  },
  "signup": {
   "status": "n/a",
   "cause": "check",
   "note": "Not needed: a documented route works without an account.",
   "via": "",
   "way": "keyless",
   "no_account": true,
   "note_driver": "Not needed on the keyless route: the playground works without an account. The Console sign-up (email and password) showed a visible reCAPTCHA v2 checkbox after Create account and no account was made, so what needs an account stays untested.",
   "status_driver": "n/a"
  },
  "verify": {
   "status": "n/a",
   "cause": "check",
   "note": "Not needed: a documented route works without an account.",
   "no_account": true,
   "note_driver": "No account was made on the keyless route, so nothing to verify.",
   "status_driver": "n/a"
  },
  "credentials": {
   "status": "n/a",
   "cause": "check",
   "note": "Not needed: a documented route works without an account.",
   "via": "",
   "no_account": true,
   "note_driver": "The keyless playground needs no key. The API, CLI and keys need a Console account, which was not made (visible reCAPTCHA at sign-up); this shows in coverage.",
   "status_driver": "n/a"
  },
  "first_call": {
   "status": "browser",
   "route": "no_account",
   "note": "The keyless playground (playground.deepgram.com) transcribed sample calls and our own streamed clips and synthesized speech without an account. Over the API every core call answered 401 INVALID_AUTH without a key; only GET /v1/models answered keyless."
  },
  "first_action": {
   "status": "browser",
   "note": "In the keyless playground: an 8-minute sample call transcribed with diarization, summary, topics, intents, sentiment, entities and PII redaction; speech made with Flux and Aura 2 voices; our own clips streamed and transcribed live (fed as the tab's microphone) and a voice agent call held. Uploading own audio files needs an account."
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "portal",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "captcha": "visible",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "",
    "currency": "USD",
    "period": "usage",
    "plan": "Pay as you go",
    "last_button": ""
   },
   "person": "captcha",
   "ours": "account",
   "note": "Pay as you go starts with a free $200 credit with no card required; Growth is $4,000+/year prepaid; Enterprise is sales. Every buy button leads to the Console sign-up, which has a visible reCAPTCHA, so no account was made and the checkout was not reached; its processor is unknown. No 402, x402 or MPP on Deepgram's own hosts; mpp.dev lists a third-party proxy only. The billing API only reads balances and purchases. No payment went through."
  },
  "cancel": {
   "status": "n/a",
   "note": "Nothing to cancel: our agent used the free plan.",
   "docs_note": "Nothing was started. Terms (section 5): \"To cancel your subscription ... you must use the appropriate functionalities of our Services in your account settings\"; Growth must be cancelled at least one day before the yearly term ends.",
   "docs_grade": "",
   "nothing": "free_plan"
  },
  "delete": {
   "status": "n/a",
   "left": "nothing_made",
   "after_hours": null,
   "note": "No account was made; the keyless playground and keyless reads stored nothing for us beyond an IP trial counter. The API deletes projects (DELETE /v1/projects/{id}); account deletion is not in the API.",
   "account": false
  }
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 20,
   "browser": true
  },
  {
   "route": "local",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": "each",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 2,
   "browser": null
  },
  {
   "route": "sso_github",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "once",
   "brings": "github_account",
   "fresh": true,
   "minutes": 0,
   "browser": null
  },
  {
   "route": "sso_google",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "once",
   "brings": "google_account",
   "fresh": true,
   "minutes": 0,
   "browser": null
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "consent_needs_account",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 2,
   "browser": null
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "consent_needs_account",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 1,
   "browser": null
  },
  {
   "route": "sso_microsoft",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "once",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none",
  "period": "usage",
  "plan": "Pay as you go"
 },
 "docs": {
  "at": "2026-11-01",
  "read": 373,
  "listed": 660,
  "sampled": true,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-11-01",
  "core_pages": "8 of 9",
  "capabilities": "most",
  "label": "No gaps in what we read"
 },
 "claims": {
  "claimed": 9,
  "tried": 1,
  "held": 0,
  "broken": 1,
  "unclear": 0,
  "not_tried": 8,
  "undocumented_works": 1
 },
 "pay_options": {
  "checked": "2026-11-01",
  "source": "probe",
  "options": [
   {
    "id": "mpp",
    "name": "MPP",
    "kind": "agent-rail",
    "first_party": false,
    "lead": true,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "docs",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "urls": {
  "docs": "https://developers.deepgram.com/home",
  "llms_txt": "https://deepgram.com/llms.txt",
  "mcp": null
 },
 "surface_notes": {
  "api": "REST + WebSocket, 50 OpenAPI operations, 5 AsyncAPI channels",
  "openapi": "3.1.0; responses list only 200 and 400",
  "mcp": "official: docs MCP (1 tool, legacy protocol) and dg mcp proxy in the CLI (needs a key)",
  "cli": "deepctl 0.4.0 (dg), 23 commands, device-flow login",
  "sdk": "Python deepgram-sdk 7.16.0, JS @deepgram/sdk 5.17.0, plus Go, .NET, Java, Rust",
  "webhooks": ""
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 55,
   "tested": 3
  },
  {
   "kind": "mcp",
   "listed": 3,
   "tested": 1
  },
  {
   "kind": "cli",
   "listed": 52,
   "tested": 22
  },
  {
   "kind": "sdk",
   "listed": 48,
   "tested": 1
  }
 ],
 "can_do": [
  "Transcribe Deepgram's sample calls in the keyless browser playground, with diarization, summaries, topics, intents, sentiment, entities and PII redaction",
  "Stream its own audio to live transcription in the keyless playground by feeding it as the browser's microphone",
  "Hold a voice agent call in the keyless playground: the agent hears the caller, handles barge-in and answers in speech",
  "Read a voice agent's per-turn latency (time to first token, TTS and total) from its LatencyReport frames in the keyless playground",
  "Fix the spelling of a brand name with keyterm prompting while streaming",
  "Transcribe a clip that switches from English to Spanish in one stream with language=multi",
  "Make speech from text with Flux and Aura 2 voices in the keyless playground",
  "List every speech and voice model over the API without a key (GET /v1/models)",
  "Read every docs page as Markdown, plus OpenAPI and AsyncAPI specs",
  "Install the CLI and its coding-agent skills without a browser"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "The sign-up shows a visible reCAPTCHA checkbox"
  },
  {
   "what": "Get an API key or log in the CLI",
   "why": "Keys and the CLI's device login need a Console account"
  },
  {
   "what": "Transcribe own audio files or call the API",
   "why": "The API needs a key; the playground uploads files only for signed-in users"
  },
  {
   "what": "Stream text to speech over WebSocket",
   "why": "The WebSocket needs a key; the playground's speech page uses plain HTTP"
  },
  {
   "what": "Bring a custom LLM to a voice agent",
   "why": "The playground asks to log in or sign up for custom LLMs"
  },
  {
   "what": "Use Saga (dictation, meetings, daily brief)",
   "why": "Saga is a Mac and iOS app only, with no web, API or CLI route"
  },
  {
   "what": "Sign in to the docs MCP server from an agent",
   "why": "Its OAuth server takes no client registration, only pre-registered clients"
  },
  {
   "what": "Pay",
   "why": "No agent payment rail; buying happens in the Console behind the sign-up"
  }
 ],
 "blockers": [
  "Visible reCAPTCHA on the Console sign-up",
  "API keys only from a Console account",
  "No client registration (CIMD or DCR) on the MCP's OAuth server"
 ],
 "tips_for_agents": [
  "Read the docs as Markdown: append .md to any developers.deepgram.com page, or send Accept: text/markdown",
  "Use https://developers.deepgram.com/openapi.json and asyncapi.json for exact request shapes",
  "GET https://api.deepgram.com/v1/models lists models without a key",
  "For CI, pass DEEPGRAM_API_KEY instead of `dg login`; `dg mcp` exposes the API to MCP clients with that key",
  "Try features first in playground.deepgram.com: it shows the exact query parameters (e.g. summarize=v2, keyterm, language=multi)",
  "Without a key, a browser agent can still use the playground's streaming and voice agent pages by giving the tab its own audio as the microphone",
  "Check a model name against GET /v1/models first: a streaming session with an unknown model just fails to connect"
 ],
 "selfhost": {
  "install": {
   "status": "skipped",
   "minutes": 0,
   "note": "Self-hosted Deepgram needs distribution credentials that only Enterprise-plan projects get (self-hosted-self-service-tutorial.md); not installable on our own."
  }
 },
 "edge_case": "none",
 "summary": "An agent can read all of Deepgram's docs as Markdown, list models over the API without a key, and, in the keyless browser playground, transcribe sample calls, stream its own audio, hold a voice agent call and make speech. Every API call needs a key, keys come only from a Console account, and the sign-up shows a visible reCAPTCHA, so no account was made. Saga is a Mac and iOS app with no agent route.",
 "wall": "reCAPTCHA on the Console sign-up",
 "plan_scope": "none (no free access: sign-up behind a visible reCAPTCHA); keyless playground only",
 "robots_stop": null,
 "robots": null,
 "terms": null,
 "terms_read": "2026-11-01",
 "email_gate": null,
 "plain": {
  "summary": "Deepgram sells speech-to-text, text-to-speech and voice agents. An agent could use its free browser playground to transcribe, speak and hold a voice call without an account, but could not get an API key. The account sign-up shows a visible CAPTCHA.",
  "can_do": [
   "Read all the docs as Markdown, plus the API specs",
   "List every speech and voice model over the API without a key",
   "Transcribe sample calls and the agent's own streamed audio in the free playground",
   "Hold a voice agent call and read its latency in the playground",
   "Make speech from text with several voices in the playground"
  ],
  "cannot_do": [
   {
    "what": "Create an account",
    "why": "The sign-up shows a visible CAPTCHA checkbox"
   },
   {
    "what": "Get an API key",
    "why": "Keys come only from a Console account"
   },
   {
    "what": "Transcribe own audio files or call the API",
    "why": "The API needs a key; file upload needs sign-in"
   },
   {
    "what": "Stream text to speech over WebSocket",
    "why": "The WebSocket needs a key"
   },
   {
    "what": "Use Saga",
    "why": "It is a Mac and iOS app with no web or API route"
   },
   {
    "what": "Pay",
    "why": "Buying happens in the Console, behind the CAPTCHA sign-up"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Self-host Deepgram models",
   "plan": "Enterprise",
   "evidence": "self-hosted-self-service-tutorial.md: \"you will need to enroll in a Deepgram Enterprise Plan\""
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Transcribe streaming audio in real time",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": "dg listen --stream",
    "ui": "Deepgram Playground"
   },
   "check": "WebSocket session returns ListenV1Results messages with transcript text for submitted audio",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/speech-to-text/listen-streaming",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-02",
   "capability": "Transcribe a pre-recorded audio or video file",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": "dg listen",
    "ui": "Deepgram Playground"
   },
   "check": "Response JSON contains results.channels[].alternatives[].transcript for the submitted file",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/speech-to-text/listen-pre-recorded",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-03",
   "capability": "Convert text to speech in a single request",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": "dg speak",
    "ui": "talk.deepgram.com"
   },
   "check": "Response returns binary audio bytes for the submitted text and chosen voice model",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/text-to-speech/speak-request",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-04",
   "capability": "Stream text to speech over WebSocket",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "talk.deepgram.com"
   },
   "check": "WebSocket session emits SpeakV1Audio chunks after a SpeakV1Text message is sent",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/text-to-speech/speak-streaming",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-05",
   "capability": "Run a real-time voice agent conversation",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "WebSocket session returns AgentV1ConversationText and AgentV1Audio messages for a configured agent",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/voice-agent/voice-agent",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-06",
   "capability": "Detect speaker turns and interruptions during a call",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Agent stream emits AgentV1UserStartedSpeaking when the caller barges in and ends the turn within ~260ms of silence",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/voice-agents",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-07",
   "capability": "Dictate text into any Mac app",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Saga Mac app, global shortcut"
   },
   "check": "Clean, punctuated text appears in the focused text field after speaking and releasing the shortcut",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/saga",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-08",
   "capability": "Record a meeting without a bot joining the call",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Saga Mac app"
   },
   "check": "A searchable transcript of the call appears in Saga's history with no bot listed among call participants",
   "capability_id": "cap_v032qf26",
   "unmapped": null,
   "source": "https://deepgram.com/product/saga",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-09",
   "capability": "Get a daily brief of calendar, email and messages",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Saga Mac/iOS app"
   },
   "check": "A morning brief listing items from connected calendar, inbox and messages appears in the app",
   "capability_id": "cap_86eg48k6",
   "unmapped": null,
   "source": "https://deepgram.com/product/saga",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-10",
   "capability": "Diarize speakers in a transcript",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Transcript words each carry a speaker index that changes when the speaker changes",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/speech-to-text/listen-streaming",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-11",
   "capability": "Redact sensitive information from a transcript",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Transcript substitutes a redaction marker for detected PII such as card numbers or SSNs",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/pricing",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-12",
   "capability": "Prompt custom vocabulary with keyterms",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Transcript spells a submitted keyterm (e.g. a product name) correctly where generic models would mis-hear it",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/pricing",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-13",
   "capability": "Summarize a transcript or block of text",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Response results.summary.results.summary.text contains a short summary of the input",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/audio-intelligence",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-14",
   "capability": "Analyze sentiment of a transcript or text",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Response results.sentiments returns per-segment and average sentiment scores",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/text-intelligence/analyze-text",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-15",
   "capability": "Detect topics in a transcript or text",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Response results.topics.segments lists detected topic labels with confidence scores",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/text-intelligence/analyze-text",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-16",
   "capability": "Recognize speaker intent in a transcript or text",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Response results.intents.segments lists a detected intent label per segment",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/text-intelligence/analyze-text",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-17",
   "capability": "Detect named entities in audio",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Final transcript results include an entities array naming detected entities and types",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/speech-to-text/listen-streaming",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-18",
   "capability": "Automatically detect or switch spoken language mid-conversation",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Transcript correctly switches languages mid-utterance without a client reconnect when code-switching occurs",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/speech-to-text",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-19",
   "capability": "Choose the speech or voice model",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Playground"
   },
   "check": "Changing the model parameter changes which Flux/Nova/Aura voice or model produces the output",
   "capability_id": "cap_k399y5wn",
   "unmapped": null,
   "source": "https://developers.deepgram.com/reference/text-to-speech/speak-streaming",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-20",
   "capability": "Bring your own LLM or TTS provider to a voice agent",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Agent conversation routes think or speak traffic to the configured third-party endpoint instead of Deepgram's own model",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/voice-agents",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-21",
   "capability": "Get a per-turn latency report from a voice agent",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Each conversation turn emits a latency report broken down by STT, LLM time-to-first-token, tool time and TTS",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/voice-agents",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-22",
   "capability": "Register a callback URL for async transcription results",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "The callback URL receives a POST with the completed transcription or analysis result",
   "capability_id": "cap_977hxacb",
   "unmapped": null,
   "source": "https://developers.deepgram.com/reference/text-intelligence/analyze-text",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-23",
   "capability": "List available speech and voice models",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/models",
    "mcp": null,
    "cli": "dg models list",
    "ui": "Deepgram Console"
   },
   "check": "Response lists model names, UUIDs and metadata for every model available to the project",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.deepgram.com/reference/deepgram-api-overview",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-24",
   "capability": "Ask the meeting transcript a question",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Saga Mac/iOS app"
   },
   "check": "Asking what was decided or who owns a task returns an answer drawn from the live or saved transcript",
   "capability_id": "cap_9qpyn3bj",
   "unmapped": null,
   "source": "https://deepgram.com/product/saga",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-25",
   "capability": "Learn a user's vocabulary and writing style over time",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Saga Mac app, personal dictionary"
   },
   "check": "A name or term added to the personal dictionary is spelled correctly in later dictation without re-adding it",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/product/saga",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-26",
   "capability": "Self-host Deepgram models in your own VPC or on-prem",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "manage/self-hosted/distribution-credentials",
    "mcp": null,
    "cli": "Helm chart deployment",
    "ui": null
   },
   "check": "Transcription, TTS or agent requests are served from containers running inside the customer's own network with no call out to Deepgram's cloud",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://deepgram.com/pricing",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-27",
   "capability": "Create an API key",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/projects/{project_id}/keys",
    "mcp": null,
    "cli": "dg login",
    "ui": "Deepgram Console"
   },
   "check": "GET /v1/projects/{project_id}/keys lists the newly created key with its scopes",
   "capability_id": "cap_wbg916v9",
   "unmapped": null,
   "source": "https://developers.deepgram.com/reference/manage/keys/list",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-28",
   "capability": "Invite a teammate to a project",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/projects/{project_id}/invites",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Console"
   },
   "check": "GET /v1/projects/{project_id}/invites lists the pending invitation for the invited email",
   "capability_id": "cap_3w8sjh12",
   "unmapped": null,
   "source": "https://developers.deepgram.com/reference/deepgram-api-overview",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-29",
   "capability": "Read usage and billing balance",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/projects/{project_id}/balances, GET /v1/projects/{project_id}/usage",
    "mcp": null,
    "cli": null,
    "ui": "Deepgram Console"
   },
   "check": "Response returns the project's current credit balance and a usage breakdown by request",
   "capability_id": "cap_n0zefvzh",
   "unmapped": null,
   "source": "https://developers.deepgram.com/reference/deepgram-api-overview",
   "result": "blocked",
   "via": "api"
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/deepgram.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a Google reCAPTCHA v2 check our agent doesn't solve",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a Google reCAPTCHA v2 check our agent doesn't solve."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "first_call",
   "why": "it needs a browser",
   "tone": "wall",
   "text": "Stops at the first API call: it needs a browser."
  }
 },
 "sdk": {
  "packages": [
   {
    "ecosystem": "pypi",
    "name": "deepgram-sdk",
    "url": "https://pypi.org/project/deepgram-sdk/",
    "source": "https://raw.githubusercontent.com/deepgram/deepgram-python-sdk/HEAD/pyproject.toml"
   },
   {
    "ecosystem": "npm",
    "name": "@deepgram/sdk",
    "url": "https://www.npmjs.com/package/@deepgram/sdk",
    "source": "https://raw.githubusercontent.com/deepgram/deepgram-js-sdk/HEAD/package.json"
   },
   {
    "ecosystem": "pypi",
    "name": "deepctl",
    "url": "https://pypi.org/project/deepctl/",
    "source": "https://developers.deepgram.com/developer-tools/agentic-tools"
   }
  ],
  "read_at": "2026-11-01T20:59:23Z"
 },
 "surface_reach": {
  "surfaces": {
   "api": true,
   "mcp": true,
   "cli": false
  },
  "read_at": "2026-10-30T02:12:14Z"
 },
 "connect": {
  "mcp": {
   "url": "https://api.dx.deepgram.com/kapa/mcp",
   "state": "documented",
   "sign_in": "2026-11-01"
  },
  "cli": {
   "install": "brew install deepgram",
   "package": "deepgram",
   "ecosystem": "homebrew",
   "source": "https://developers.deepgram.com/developer-tools/cli/installation",
   "state": "documented"
  },
  "api": {
   "base_url": "https://agent.deepgram.com",
   "state": "documented"
  },
  "signup": {
   "url": "https://console.deepgram.com/signup",
   "state": "documented"
  },
  "docs": {
   "url": "https://developers.deepgram.com/home",
   "state": "tested"
  }
 },
 "surface_sources": {
  "docs": "https://developers.deepgram.com/home",
  "llms_txt": "https://deepgram.com/llms.txt",
  "mcp": "https://api.dx.deepgram.com/kapa/mcp",
  "cli": "https://developers.deepgram.com/developer-tools/cli/installation",
  "api": "https://developers.deepgram.com/openapi.json",
  "sdk": "https://developers.deepgram.com/sdks/sdk-features.md",
  "openapi": "https://developers.deepgram.com/openapi.json",
  "pay": "https://mpp.dev/api/services"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": null,
 "wall_vendor": null,
 "mcp_sign_in": null,
 "safety_issues": 2,
 "fix_counts": {
  "small": 5,
  "medium": 1,
  "large": 1,
  "total": 7
 },
 "evidence_sha256": "f650d14a168f14041930fa560b2c58fa1ae28f45e4061000f5e57308f441462b",
 "first_seen": "2026-11-01",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": {
  "vendor": "Google reCAPTCHA v2",
  "at": "signup",
  "state": "seen",
  "stopped": false,
  "line": null
 },
 "confirmation": {
  "state": "awaiting",
  "drives": 1,
  "agree": 1,
  "review": null,
  "text": "1 drive, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 105,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Deepgram sells speech-to-text, text-to-speech and voice agents.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": {
  "API-03": {
   "basis": "all",
   "n": 88,
   "below": 0,
   "above": 53,
   "percentile": 20
  },
  "API-04": {
   "basis": "all",
   "n": 86,
   "below": 24,
   "above": 0,
   "percentile": 64
  },
  "API-07": {
   "basis": "all",
   "n": 98,
   "below": 38,
   "above": 0,
   "percentile": 69
  },
  "DOCS-08": {
   "basis": "all",
   "n": 142,
   "below": 0,
   "above": 54,
   "percentile": 31
  },
  "DOCS-10": {
   "basis": "all",
   "n": 142,
   "below": 39,
   "above": 31,
   "percentile": 53
  },
  "DOCS-11": {
   "basis": "all",
   "n": 142,
   "below": 98,
   "above": 0,
   "percentile": 85
  },
  "ERR-01": {
   "basis": "all",
   "n": 128,
   "below": 2,
   "above": 0,
   "percentile": 51
  },
  "ERR-02": {
   "basis": "all",
   "n": 105,
   "below": 40,
   "above": 21,
   "percentile": 59
  },
  "ERR-03": {
   "basis": "all",
   "n": 104,
   "below": 24,
   "above": 23,
   "percentile": 50
  },
  "ERR-04": {
   "basis": "all",
   "n": 36,
   "below": 0,
   "above": 12,
   "percentile": 33
  },
  "ERR-07": {
   "basis": "all",
   "n": 104,
   "below": 34,
   "above": 40,
   "percentile": 47
  },
  "FIND-06": {
   "basis": "all",
   "n": 106,
   "below": 25,
   "above": 0,
   "percentile": 62
  },
  "IN-03": {
   "basis": "all",
   "n": 86,
   "below": 14,
   "above": 0,
   "percentile": 58
  },
  "IN-08": {
   "basis": "all",
   "n": 120,
   "below": 55,
   "above": 0,
   "percentile": 73
  },
  "IN-11": {
   "basis": "all",
   "n": 146,
   "below": 56,
   "above": 38,
   "percentile": 56
  },
  "IN-12": {
   "basis": "all",
   "n": 148,
   "below": 98,
   "above": 0,
   "percentile": 83
  },
  "LEAVE-03": {
   "basis": "all",
   "n": 145,
   "below": 0,
   "above": 89,
   "percentile": 19
  },
  "MCP-03": {
   "basis": "all",
   "n": 66,
   "below": 4,
   "above": 0,
   "percentile": 53
  },
  "MCP-04": {
   "basis": "all",
   "n": 66,
   "below": 0,
   "above": 46,
   "percentile": 15
  },
  "MCP-05": {
   "basis": "all",
   "n": 66,
   "below": 1,
   "above": 20,
   "percentile": 36
  },
  "MCP-06": {
   "basis": "all",
   "n": 66,
   "below": 50,
   "above": 0,
   "percentile": 88
  },
  "MCP-07": {
   "basis": "all",
   "n": 66,
   "below": 32,
   "above": 0,
   "percentile": 74
  },
  "MCP-08": {
   "basis": "all",
   "n": 37,
   "below": 0,
   "above": 22,
   "percentile": 20
  },
  "MCP-09": {
   "basis": "all",
   "n": 32,
   "below": 16,
   "above": 0,
   "percentile": 75
  },
  "MCP-11": {
   "basis": "all",
   "n": 66,
   "below": 33,
   "above": 0,
   "percentile": 75
  },
  "PAY-05": {
   "basis": "all",
   "n": 119,
   "below": 85,
   "above": 6,
   "percentile": 83
  },
  "PROTO-02": {
   "basis": "all",
   "n": 94,
   "below": 0,
   "above": 2,
   "percentile": 49
  }
 },
 "probe": null,
 "probe_history": [],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": null,
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261101T065932Z",
    "date": "2026-11-01",
    "level": 3,
    "stop": null,
    "entry": "self-start",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/deepgram/changes.json"
 },
 "agreement": null,
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 3,
  "surface_issues": 27
 },
 "agent_surfaces": {
  "api": {
   "state": "tested",
   "reachable": true,
   "documented": 55,
   "tested": 3,
   "source": "https://developers.deepgram.com/openapi.json"
  },
  "mcp": {
   "state": "tested",
   "reachable": true,
   "documented": 3,
   "tested": 1,
   "source": "https://api.dx.deepgram.com/kapa/mcp"
  },
  "cli": {
   "state": "tested",
   "reachable": true,
   "documented": 52,
   "tested": 22,
   "source": "https://developers.deepgram.com/developer-tools/cli/installation"
  },
  "sdk": {
   "state": "tested",
   "documented": 48,
   "tested": 1,
   "source": "https://developers.deepgram.com/sdks/sdk-features.md"
  },
  "docs": {
   "state": "tested",
   "documented": 660,
   "tested": 373,
   "source": "https://developers.deepgram.com/home"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": "https://mpp.dev/api/services"
  }
 },
 "issues_found": 30,
 "rank": 1,
 "rank_of": 1,
 "rank_change": null,
 "rank_since": "2026-11-01",
 "links": {
  "category": [
   {
    "label": "AI and agent infrastructure",
    "href": "https://agentdrives.com/categories/ai"
   },
   {
    "label": "Speech and voice AI",
    "href": "https://agentdrives.com/categories/speech"
   }
  ],
  "tasks": [],
  "walls": [
   {
    "label": "Bot checks",
    "href": "https://agentdrives.com/access/get-in/bot-checks",
    "note": "our agent got in another way"
   }
  ],
  "vendors": [
   {
    "label": "Google reCAPTCHA",
    "href": "https://agentdrives.com/vendors/recaptcha",
    "note": "on one way in",
    "slug": "recaptcha"
   }
  ],
  "standards": [
   {
    "label": "OpenAPI",
    "href": "https://agentdrives.com/standards/openapi",
    "note": "its API, described"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   },
   {
    "label": "MPP",
    "href": "https://agentdrives.com/standards/mpp",
    "note": "machine payments"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Transcribe streaming audio in real time",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "untried",
    "ui": "done"
   }
  },
  {
   "id": "cap-02",
   "name": "Transcribe a pre-recorded audio or video file",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "untried",
    "ui": "done"
   }
  },
  {
   "id": "cap-03",
   "name": "Convert text to speech in a single request",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "untried",
    "ui": "done"
   }
  },
  {
   "id": "cap-04",
   "name": "Stream text to speech over WebSocket",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Run a real-time voice agent conversation",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-06",
   "name": "Detect speaker turns and interruptions during a call",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-07",
   "name": "Dictate text into any Mac app",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-08",
   "name": "Record a meeting without a bot joining the call",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-09",
   "name": "Get a daily brief of calendar, email and messages",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-10",
   "name": "Diarize speakers in a transcript",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-11",
   "name": "Redact sensitive information from a transcript",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-12",
   "name": "Prompt custom vocabulary with keyterms",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-13",
   "name": "Summarize a transcript or block of text",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-14",
   "name": "Analyze sentiment of a transcript or text",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-15",
   "name": "Detect topics in a transcript or text",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-16",
   "name": "Recognize speaker intent in a transcript or text",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-17",
   "name": "Detect named entities in audio",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-18",
   "name": "Automatically detect or switch spoken language mid-conversation",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-19",
   "name": "Choose the speech or voice model",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-20",
   "name": "Bring your own LLM or TTS provider to a voice agent",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-21",
   "name": "Get a per-turn latency report from a voice agent",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-22",
   "name": "Register a callback URL for async transcription results",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-23",
   "name": "List available speech and voice models",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-24",
   "name": "Ask the meeting transcript a question",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-25",
   "name": "Learn a user's vocabulary and writing style over time",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-26",
   "name": "Self-host Deepgram models in your own VPC or on-prem",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "untried",
    "ui": "none"
   }
  },
  {
   "id": "cap-27",
   "name": "Create an API key",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-28",
   "name": "Invite a teammate to a project",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-29",
   "name": "Read usage and billing balance",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "speech",
  "products": 1,
  "higher": 0,
  "same_level": 0,
  "as_of": "2026-11-01",
  "stop": null,
  "rivals_by": "level",
  "rivals": []
 },
 "page": "https://agentdrives.com/tools/deepgram?via=api"
}