Use when writing or reviewing C# code in this repo that calls Deepgram Management APIs for projects, models, keys, members, invitations, usage, balances, and auth token grants. Covers `ClientFactory.CreateManageClient()` and `ClientFactory.CreateAuthClient()`. Unlike some other SDKs, this repo does not currently expose reusable Voice Agent configuration management endpoints.
89
86%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Administrative REST endpoints for projects, models, API keys, members, invites, usage, balances, and auth token grants.
GrantToken().Use a different skill when:
deepgram-dotnet-voice-agent.dotnet add package Deepgramusing Deepgram;
Library.Initialize();
var manageClient = ClientFactory.CreateManageClient();
var authClient = ClientFactory.CreateAuthClient();Both factory calls read credentials from the DEEPGRAM_API_KEY (or DEEPGRAM_ACCESS_TOKEN) environment variable by default. To pass them explicitly: ClientFactory.CreateManageClient(apiKey: "...", options: ...) / ClientFactory.CreateAuthClient(apiKey: "...", options: ...). DeepgramHttpClientOptions throws if neither the env var nor an explicit credential is provided.
using Deepgram.Models.Manage.v1;
var client = ClientFactory.CreateManageClient();
var projects = await client.GetProjects();
var projectId = projects.Projects[0].ProjectId;
var project = await client.GetProject(projectId);
var models = await client.GetModels(new ModelSchema { IncludeOutdated = true });
var projectModels = await client.GetProjectModels(projectId);var client = ClientFactory.CreateManageClient();
var projectId = (await client.GetProjects()).Projects[0].ProjectId;
var key = await client.CreateKey(projectId, new KeySchema()
{
Comment = "MyTestKey",
Scopes = new List<string> { "member" },
});
await client.SendInvite(projectId, new InviteSchema()
{
Email = "spam@spam.com",
Scope = "member",
});
var members = await client.GetMembers(projectId);
var usage = await client.GetUsageRequests(projectId, new UsageRequestsSchema());
var balances = await client.GetBalances(projectId);using Deepgram.Models.Auth.v1;
using Deepgram.Models.Authenticate.v1;
var authClient = ClientFactory.CreateAuthClient();
var token = await authClient.GrantToken(new GrantTokenSchema
{
TtlSeconds = 300,
});
var bearerOptions = new DeepgramHttpClientOptions(accessToken: token.AccessToken);
var prerecordClient = ClientFactory.CreateListenRESTClient(options: bearerOptions);Management:
GetProjects, GetProject, UpdateProject, DeleteProject, LeaveProjectGetModels, GetModel, GetProjectModels, GetProjectModelGetKeys, GetKey, CreateKey, DeleteKeyGetInvites, SendInvite, DeleteInviteGetMembers, GetMemberScopes, UpdateMemberScope, RemoveMemberGetUsageRequests, GetUsageRequest, GetUsageFields, GetUsageSummaryGetBalances, GetBalanceAuth:
GrantToken()GrantToken(GrantTokenSchema)Deepgram/ClientFactory.csDeepgram/Clients/Manage/v1/Client.csDeepgram/Clients/Auth/v1/Client.csDeepgram/Models/Manage/v1/*.csDeepgram/Models/Auth/v1/*.cshttps://context7.com/deepgram/deepgram-dotnet-sdk/llmstxt/developers_deepgram_llms_txtclient.voice_agent.configurations.* examples into C#.CreateManageClient() for admin APIs and CreateAuthClient() for GrantToken().DeleteProject, DeleteKey, DeleteInvite, and RemoveMember should stay commented or guarded in examples/tests unless you mean it.DeepgramHttpClientOptions prefers explicit accessToken over apiKey, then env vars in that order.examples/manage/projects/Program.csexamples/manage/models/Program.csexamples/manage/keys/Program.csexamples/manage/members/Program.csexamples/manage/scopes/Program.csexamples/manage/invitations/Program.csexamples/manage/usage/Program.csexamples/manage/balances/Program.csexamples/auth/grant-token/Program.csexamples/auth/bearer-token-workflow/Program.csFor 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/skillsThis SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).
d0d6fee
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.