deepgram/deepgram-python-sdk · Archived

deepgram-python-management-api

Use when writing or reviewing Python code in this repo that calls Deepgram Management APIs - projects, API keys, members, invites, usage, billing, models, and reusable Voice Agent configurations. Covers `client.manage.v1.projects`, project-scoped resources under `client.manage.v1.projects.*` (keys, members, members.invites, usage, billing, models, requests), global `client.manage.v1.models`, think-model discovery at `client.agent.v1.settings.think.models`, and `client.voice_agent.configurations…

First seen May 11, 2026

Installation

$ npx skills add deepgram/deepgram-python-sdk --skill deepgram-python-management-api

Summary

  • Use when writing or reviewing Python code in this repo that calls Deepgram Management APIs - projects, API keys, members, invites, usage, billing, models, and reusable Voice Agent configurations.
  • Covers `client.manage.v1.projects`, project-scoped resources under `client.manage.v1.projects.*` (keys, members, members.invites, usage, billing, models, requests), global `client.manage.v1.models`, think-model discovery at `client.agent.v1.settings.think.models`, and `client.voice_agent.configurations.*`.
  • Use `deepgram-python-voice-agent` when you want to run an agent interactively, this skill to PERSIST/LIST agent configs.
  • Triggers include "management API", "list projects", "API keys", "members", "usage stats", "billing", "list models", "agent configurations", "manage.v1".

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from deepgram/deepgram-python-sdk.

npx skills add deepgram/deepgram-python-sdk

Browse all from deepgram/deepgram-python-sdk

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 459
License LICENSE
Default branch main
Open issues 10
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 9,035 B
  • docs SUMMARY.md 815 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 28 installs

SKILL.md

Using Deepgram Management API (Python SDK)

Administrative REST endpoints at api.deepgram.com/v1/projects, /v1/models, and reusable agent configuration storage. Project-scoped resources live under client.manage.v1.projects. (keys, members, members.invites, usage, billing, models, requests). Global models at client.manage.v1.models. Think-model discovery at client.agent.v1.settings.think.models. Reusable agent configs at client.voice_agent.configurations..

When to use this product

  • Discover / pin models: client.manage.v1.models.list() returns the active STT/TTS set.
  • Project admin: list/get/update/delete/leave projects.
  • API key lifecycle: list/create/delete project keys.
  • Member + invite management: add/remove members, manage roles, send/revoke invites.
  • Usage + billing: query request volume, balances.
  • Reusable Voice Agent configs: persist the agent block of a Settings message on the server, reference by agent_id. The stored blob is the agent object only (listen / think / speak providers + prompt), not the full AgentV1Settings.

Use a different skill when:

  • You want to actually talk to an agent → deepgram-python-voice-agent.
  • You want to transcribe or synthesize → STT/TTS skills.

Authentication

from dotenv import load_dotenv
load_dotenv()

from deepgram import DeepgramClient
client = DeepgramClient()

Header: Authorization: Token <api_key>. All methods are REST.

Quick start — projects + models

# Projects
projects = client.manage.v1.projects.list()
for p in projects.projects:
    print(p.project_id, p.name)

project = client.manage.v1.projects.get(project_id=projects.projects[0].project_id)
client.manage.v1.projects.update(project_id=project.project_id, name="New name")
# client.manage.v1.projects.delete(project_id=...)   # irreversible
# client.manage.v1.projects.leave(project_id=...)

# Models
models = client.manage.v1.models.list()
print("STT:", [m.canonical_name for m in models.stt])
print("TTS:", [m.canonical_name for m in models.tts])

# Include deprecated/outdated models
older = client.manage.v1.models.list(include_outdated=True)

# Per-project model access
project_models = client.manage.v1.projects.models.list(project_id=project.project_id)

Quick start — keys / members / invites / usage / billing

All project-scoped resources live under client.manage.v1.projects.*:

# Keys — `create` takes a single `request=` payload, not top-level kwargs
keys = client.manage.v1.projects.keys.list(project_id=pid)
client.manage.v1.projects.keys.create(
    project_id=pid,
    request={"comment": "CI key", "scopes": ["usage:write"]},
)
client.manage.v1.projects.keys.delete(project_id=pid, key_id=kid)

# Members + invites (invites are nested under members; method is `create`, not `send`)
members = client.manage.v1.projects.members.list(project_id=pid)
invites = client.manage.v1.projects.members.invites.list(project_id=pid)
client.manage.v1.projects.members.invites.create(project_id=pid, email="[email protected]", scope="member")

# Usage (get, not list) + billing balances (nested)
usage = client.manage.v1.projects.usage.get(project_id=pid)
usage_breakdown = client.manage.v1.projects.usage.breakdown.list(project_id=pid)
balance = client.manage.v1.projects.billing.balances.get(project_id=pid)

See examples/51-55 for each sub-module.

Quick start — Voice Agent configurations

# List reusable configs
configs = client.voice_agent.configurations.list(project_id=pid)

# Create: `config` is a JSON string of the `agent` BLOCK ONLY — not the full
# Settings message. Do NOT include top-level Settings fields like `audio`;
# those are sent at connect-time in the live Settings message. The stored
# `agent_id` later replaces the inline `agent` object in a Settings message.
import json
config_json = json.dumps({
    "listen": {"provider": {"type": "deepgram", "model": "nova-3"}},
    "think":  {"provider": {"type": "open_ai", "model": "gpt-4o-mini"}, "prompt": "..."},
    "speak":  {"provider": {"type": "deepgram", "model": "aura-2-asteria-en"}},
})
created = client.voice_agent.configurations.create(
    project_id=pid,
    config=config_json,
    metadata={"label": "support-en"},
)
print(created.agent_id)

# Update metadata (immutable config body — create a new one to change behavior)
client.voice_agent.configurations.update(project_id=pid, agent_id=created.agent_id, metadata={"label": "v2"})

# Get / delete
one = client.voice_agent.configurations.get(project_id=pid, agent_id=created.agent_id)
# client.voice_agent.configurations.delete(project_id=pid, agent_id=...)

Think-provider model discovery (which LLMs Agent supports):

think_models = client.agent.v1.settings.think.models.list()

Async equivalent

from deepgram import AsyncDeepgramClient
client = AsyncDeepgramClient()
projects = await client.manage.v1.projects.list()

API reference (layered)

  1. In-repo reference: reference.md — "Manage V1 Projects/Keys/Members/Invites/Usage/Billing/Models", "Voice Agent Configurations".
  2. OpenAPI (REST): https://developers.deepgram.com/openapi.yaml
  3. Context7: library ID /llmstxt/developersdeepgramllms_txt.
  4. Product docs:

- https://developers.deepgram.com/reference/manage/projects/list - https://developers.deepgram.com/reference/manage/models/list - https://developers.deepgram.com/reference/voice-agent/agent-configurations/list-agent-configurations - https://developers.deepgram.com/reference/voice-agent/agent-configurations/create-agent-configuration - https://developers.deepgram.com/reference/voice-agent/think-models

Gotchas

  1. Token auth, not Bearer.
  2. **Project-scoped resources are nested under .projects.*.** There is no top-level client.manage.v1.keys / .members / .invites / .usage / .billing. Use client.manage.v1.projects.keys, ...projects.members, ...projects.members.invites, ...projects.usage, ...projects.billing.balances, and ...projects.requests for request logs. The only top-level client.manage.v1.* namespaces are projects and models.
  3. Think-model discovery is on the Agent client, not Manage: client.agent.v1.settings.think.models.list(). There is no client.manage.v1.agent.*.
  4. Agent config body is a JSON STRING on create, not a nested object. Pass config=json.dumps(...).
  5. Agent config is the agent block only, not the full Settings message. Do not include top-level fields like audio — those go in the live Settings message at connect time.
  6. Agent configs are immutable — you cannot edit the config body. Create a new one to change behavior. Only metadata is mutable.
  7. Use include_outdated=True on models.list() when pinning older models.
  8. Delete is irreversible. Wire tests typically comment out destructive calls.
  9. Project-scoped vs global models: client.manage.v1.models.list() returns all; client.manage.v1.projects.models.list(project_id=...) returns what the project can access.
  10. Returned agent configs are uninterpolated — raw stored JSON string. Parse before use.

Example files in this repo

  • examples/50-management-projects.py
  • examples/51-management-keys.py
  • examples/52-management-members.py
  • examples/53-management-invites.py
  • examples/54-management-usage.py
  • examples/55-management-billing.py
  • examples/56-management-models.py
  • tests/wire/testmanagev1_projects.py
  • tests/wire/testmanagev1_models.py
  • tests/wire/testvoiceAgentconfigurations.py

Related skills

  • deepgram-python-voice-agent — run an agent (use a config created here)

Central product skills

For cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills:

npx skills add deepgram/skills

This SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).