Skip to main content

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.*`. 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".

معلومات المصدر

المستودع
deepgram/deepgram-python-sdk
آخر نشاط في المصدر
٢٧ أبريل ٢٠٢٦ في ١١:٠٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤٦٩
التفرعات
١٤٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
deepgram-python-management-api
description
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".
# 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 ```python 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 ```python # 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.*`: ```python # 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="new@example.com", 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 ```python # 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): ```python think_models = client.agent.v1.settings.think.models.list() ``` ## Async equivalent ```python 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/developers_deepgram_llms_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/test_manage_v1_projects.py` - `tests/wire/test_manage_v1_models.py` - `tests/wire/test_voiceAgent_configurations.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: ```bash 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`).
عرض على GitHub