deepgram-js-management-api
Using Deepgram Management API (JavaScript / TypeScript SDK)
Administrative REST endpoints under /v1/projects, /v1/models, and related project subresources.
When to use this product
- Projects: list, get, update, delete, leave.
- Keys: list, get, create, delete API keys.
- Members + invites: inspect members, update scopes, create/delete invites.
- Usage + billing: inspect requests, usage, usage breakdown, balances, purchases, billing breakdown.
- Models: list global models and project-scoped models.
- Agent think models: discover available model providers for Voice Agent
thinksettings.
Use a different skill when:
- You want to run a live websocket agent session →
deepgram-js-voice-agent. - You want transcription or synthesis calls rather than project/admin APIs → product-specific skills.
Authentication
require("dotenv").config();
const { DeepgramClient } = require("@deepgram/sdk");
const deepgramClient = new DeepgramClient({
apiKey: process.env.DEEPGRAM_API_KEY,
});
Most examples also rely on process.env.DEEPGRAM_PROJECT_ID for project-scoped calls.
Quick start — projects + models
From examples/13-management-projects.ts, examples/19-management-models.ts, and examples/32-management-project-models.ts:
const projectId = process.env.DEEPGRAM_PROJECT_ID;
const projects = await deepgramClient.manage.v1.projects.list();
console.log("Projects:", JSON.stringify(projects, null, 2));
const project = await deepgramClient.manage.v1.projects.get(projects.projects[0].project_id);
await deepgramClient.manage.v1.projects.update(project.project_id, {
name: "Naomi's Sandbox",
});
const models = await deepgramClient.manage.v1.models.list();
const projectModels = await deepgramClient.manage.v1.projects.models.list(
projectId,
{ include_outdated: false },
);
Quick start — keys / members / invites / usage / billing
Based on examples/14-18:
const projectId = process.env.DEEPGRAM_PROJECT_ID;
await deepgramClient.manage.v1.projects.keys.list(projectId);
await deepgramClient.manage.v1.projects.members.list(projectId);
await deepgramClient.manage.v1.projects.members.invites.create(projectId, {
email: "user@example.com",
scope: "member",
});
await deepgramClient.manage.v1.projects.requests.list(projectId, {});
await deepgramClient.manage.v1.projects.usage.get(projectId, {});
await deepgramClient.manage.v1.projects.billing.balances.list(projectId);
Think-model discovery for Voice Agent:
await deepgramClient.agent.v1.settings.think.models.list();
Key parameters / API surface
- Projects:
client.manage.v1.projects.list/get/update/delete/leave. - Keys:
client.manage.v1.projects.keys.list/create/get/delete. - Members:
client.manage.v1.projects.members.list/deleteandmembers.scopes.list/update. - Invites:
client.manage.v1.projects.members.invites.list/create/delete. - Requests + usage:
projects.requests.list/get,projects.usage.get,projects.usage.breakdown.list,projects.usage.fields.list. - Billing:
projects.billing.balances.*,projects.billing.breakdown.list,projects.billing.fields.list,projects.billing.purchases.list. - Models:
client.manage.v1.models.list/getandclient.manage.v1.projects.models.list/get.
Limitations
The current JS SDK does not expose persisted Voice Agent configuration CRUD endpoints. The repo surfaces client.agent.v1.settings.think.models.list() for discovery, but not voice_agent.configurations.*-style helpers.
API reference (layered)
- In-repo reference:
reference.md→Manage V1 Models,Manage V1 Projects,Manage V1 Projects Keys,Members,Models,Requests,Usage,Billing *, plusAgent V1 Settings Think Models. - Canonical OpenAPI (REST): https://developers.deepgram.com/openapi.yaml
- Canonical AsyncAPI (WSS): https://developers.deepgram.com/asyncapi.yaml
- Context7: library ID
/llmstxt/developers_deepgram_llms_txt - 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
- Namespace depth matters. Most admin calls live under
client.manage.v1.projects.*, not on the root client. - Project-scoped and global models differ.
/v1/modelsreturns public models;/v1/projects/{id}/modelscan include private/custom access. projects.usage.get(...)is marked deprecated in source. Preferprojects.usage.breakdown.list(...)for richer reporting.- Destructive operations are real.
delete,leave, member removal, and key deletion are not safe example calls. - Management APIs are not the same as regional STT routing.
examples/33-configuration-eu-endpoint.tsexplicitly notes management stays on the default US endpoint. - Returned IDs can be nested. Example key lookup uses
keys.api_keys[0].api_key.api_key_id; inspect real response shape before hard-coding paths. - No persisted agent config helpers are present. If you need Voice Agent configuration CRUD, use raw HTTP for now.
Example files in this repo
examples/13-management-projects.tsexamples/14-management-keys.tsexamples/15-management-members.tsexamples/16-management-invites.tsexamples/17-management-usage.tsexamples/18-management-billing.tsexamples/19-management-models.tsexamples/29-management-usage-breakdown.tsexamples/30-management-billing-detailed.tsexamples/31-management-member-permissions.tsexamples/32-management-project-models.ts
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).