Skip to main content

deepgram-rust-management-api

Use when implementing Deepgram project, key, member, scope, billing, invitation, or usage operations from the Rust SDK, including manage feature flags and the real Deepgram::projects/keys/members/scopes/billing/usage APIs.

ソース情報

リポジトリ
deepgram/deepgram-rust-sdk
ソースの最終更新活動
2026年10月8日 12:36
検出された SKILL.md の言語
英語
スター
67
フォーク
45

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
deepgram-rust-management-api
description
Use when implementing Deepgram project, key, member, scope, billing, invitation, or usage operations from the Rust SDK, including manage feature flags and the real Deepgram::projects/keys/members/scopes/billing/usage APIs.
# Using Deepgram Management API (Rust SDK) Use this skill for project/account administration against Deepgram's Manage APIs. ## When to use this product - Listing or updating projects. - Managing project API keys, members, scopes, invitations, balances, and usage. - Explaining which admin surfaces are available in the current crate. ## Authentication For a management-only install: ```toml [dependencies] deepgram = { version = "0.12", default-features = false, features = ["manage"] } tokio = { version = "1", features = ["full"] } ``` ```rust let dg = deepgram::Deepgram::new(std::env::var("DEEPGRAM_API_KEY")?)?; ``` - Manage APIs require a regular API key with `Token` auth. - Temporary auth tokens created via `auth().grant(...)` do **not** work for Manage APIs. ## Quick start ## Quick start: projects + usage ```rust use deepgram::{ manage::{projects::options::Options as ProjectOptions, usage::get_usage_options}, Deepgram, }; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let api_key = std::env::var("DEEPGRAM_API_KEY")?; let project_id = std::env::var("DEEPGRAM_PROJECT_ID")?; let dg = Deepgram::new(&api_key)?; let projects = dg.projects().list().await?; println!("{projects:#?}"); let project = dg.projects().get(&project_id).await?; println!("{project:#?}"); let update = ProjectOptions::builder() .name("The Transcribinator") .company("Doofenshmirtz Evil Incorporated") .build(); let message = dg.projects().update(&project_id, &update).await?; println!("{}", message.message); let usage_options = get_usage_options::Options::builder().build(); let usage = dg.usage().get_usage(&project_id, &usage_options).await?; println!("{usage:#?}"); Ok(()) } ``` ## Key parameters - Project APIs: `projects().list()`, `get(project_id)`, `update(project_id, &options)`, `delete(project_id)`. - Key APIs: `keys().list(project_id)`, `get(project_id, key_id)`, `create(project_id, &options)`, `delete(project_id, key_id)`. - Member APIs: `members().list_members(project_id)`, `remove_member(project_id, member_id)`. - Scope APIs: `scopes().get_scope(project_id, member_id)`, `update_scope(project_id, member_id, scope)`. - Billing APIs: `billing().list_balance(project_id)`, `get_balance(project_id, balance_id)`. - Usage APIs: `usage().list_requests(...)`, `get_request(...)`, `get_usage(...)`, `get_fields(...)`. - Invitation API: `invitations().leave_project(project_id)`. - Models APIs: `models().get_models()`, `get_models_including_outdated()`, `get_model(model_id)`, `get_project_models(project_id)`, `get_project_models_including_outdated(project_id)`, `get_project_model(project_id, model_id)`. The listing calls take no arguments and return the latest model versions only; the `_including_outdated` variants also return non-latest versions. - Self-hosted APIs: `self_hosted().list_distribution_credentials(project_id)`, `get_distribution_credentials(project_id, credentials_id)`, `create_distribution_credentials(project_id, &request)`, `delete_distribution_credentials(project_id, credentials_id)`. The credentials ID is a `Uuid`, and `create_distribution_credentials` returns the registry secret exactly once, so store it as soon as the call returns. ## API reference (layered) 1. **In-repo** - `src/manage/projects.rs` - `src/manage/keys.rs` - `src/manage/members.rs` - `src/manage/scopes.rs` - `src/manage/billing.rs` - `src/manage/usage.rs` - `src/manage/invitations.rs` - `src/manage/models.rs` - `src/manage/self_hosted.rs` - `examples/manage/*.rs` 2. **OpenAPI** - Raw spec: `https://developers.deepgram.com/openapi.yaml` - Examples: `https://developers.deepgram.com/reference/manage/usage/get`, `https://developers.deepgram.com/reference/manage/keys/list` 3. **AsyncAPI** - Not applicable for the Rust crate's current management surface 4. **Context7** - `/llmstxt/developers_deepgram_llms_txt` 5. **Product docs** - `https://developers.deepgram.com/reference/` - `https://developers.deepgram.com/docs/create-additional-api-keys` ## Gotchas 1. **Use API keys, not temp tokens.** `auth().grant(...)` explicitly does not authorize Manage APIs. 2. **Examples in `examples/manage/` are useful, but source files are the source of truth.** Prefer `src/manage/*.rs` when you need exact method names and return types. 3. **Most admin traffic stays on hosted Deepgram.** Even with `with_base_url(...)`, billing, usage, keys, members, invitations, projects, and scopes still target `https://api.deepgram.com`, as does the `/v1/auth/grant` token exchange. Two admin surfaces are the exception: `models()` and `self_hosted()` build their requests against the client's configured base URL, so a self-hosted client reaches `/v1/models` and its distribution-credentials paths on its own host. ## Example files in this repo - `examples/manage/projects.rs` - `examples/manage/keys.rs` - `examples/manage/members.rs` - `examples/manage/scopes.rs` - `examples/manage/billing.rs` - `examples/manage/usage.rs` - `examples/manage/invitations.rs` - `examples/manage/models.rs` - `examples/manage/self_hosted_credentials.rs` ## 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で見る