Usage details
General
Workspace defaults for the usage dashboard.
Users
Create users under the current organization (Global Admin can choose any org).
| Username | Name | Role | Status |
|---|
Connectors
Manage AISP connector preferences and review live integration health.
| Integration | Key | Name | Enabled | Credentials | Notes |
|---|
Integration status
Alerts
Threshold rules that notify your team when usage or spend changes.
| Name | Type | Threshold | Enabled | Emails |
|---|
Billing
Plan details and invoice records for this workspace.
| Number | Period | Amount | Status |
|---|
Edit
Goal
Provide one place to understand AI token consumption across OpenAI, Azure OpenAI, AWS Bedrock, Google Vertex AI, Anthropic AI, Oracle AI, GitHub Copilot, Meta AI, xAI, Perplexity AI, Mistral AI, Cohere, DeepSeek, Manus AI, Sarvam AI, Krutrim, and Cursor Agents — by provider, model, date, and application when AISP metadata is available.
Need
Each cloud provider exposes usage differently. This dashboard normalizes metrics into a common view so platform, FinOps, and engineering teams can compare consumption, validate integrations, and drill into request-level details without switching consoles.
- Demo mode — works immediately with synthetic data (no credentials).
- Live mode — queries configured providers server-side; one failing provider does not block others.
- Request details — click a Requests count to see per-request rows; AppName appears when AISP tags or metadata provide it.
Deployment
Copy .env.example to .env, install dependencies, and run:
- Local:
uvicorn app.main:app --reload --port 8000 - Docker:
docker compose up --buildor./br.sh start
Set environment variables for each provider you want in live mode. Providers appear as not configured until their required variables are set. API docs: /docs · Prompt Runner: /prompt-runner
Configure
Enable a provider by setting its usage variables in .env, restarting the service, then switching the dashboard to Live mode. Full variable lists live in .env.example and README.md.
To enable a connector for this organization without editing server .env, open Settings → Connectors, add the provider key, paste credentials, and save. Values are encrypted at rest using DB_Encrypt_Key / AITUD_ENCRYPTION_KEY.
GitHub Copilot
- Ensure Copilot Business/Enterprise is active and the Copilot usage metrics policy is enabled for your org or enterprise.
- Create a PAT with metrics read access: classic
read:org(org) ormanage_billing:copilot/read:enterprise(enterprise); or fine-grained View Organization Copilot Metrics (or enterprise equivalent). - Set in
.env:DEMO_MODE=falseGITHUB_COPILOT_TOKEN=ghp_…(orGITHUB_TOKEN)GITHUB_COPILOT_ORG=your-orgorGITHUB_COPILOT_ENTERPRISE=your-enterprise - Optional:
GITHUB_COPILOT_REGION,GITHUB_COPILOT_CREDIT_USD,GITHUB_COPILOT_FETCH_CONCURRENCY,GITHUB_API_BASE_URL. - Restart, open Live mode, filter Provider → GitHub Copilot, and confirm Integration status is
connected.
Prompt Runner (optional): set GITHUB_COPILOT_RUN_MODEL (default gpt-4.1), choose GitHub Copilot on /prompt-runner, and run in live mode. Live completions create billable Copilot usage.
Meta AI
- Create an API key at dev.meta.ai (Model API) or llama.developer.meta.com (Llama API).
- Set in
.env:DEMO_MODE=falseMETA_AI_API_KEY=…(orMODEL_API_KEY/LLAMA_API_KEY)META_AI_BASE_URL=https://api.meta.ai(orhttps://api.llama.com/compatfor Llama) - Optional:
META_AI_USAGE_PATHfor an OpenAI-shaped usage endpoint;META_AI_INPUT_USD_PER_MTOK/META_AI_OUTPUT_USD_PER_MTOKfor cost estimates. - Restart, open Live mode, filter Provider → Meta AI, and confirm Integration status is
connected.
Prompt Runner (optional): set META_AI_RUN_MODEL (default muse-spark-1.1), choose Meta AI on /prompt-runner, and run in live mode.
xAI · Perplexity AI · Mistral AI · Cohere · DeepSeek
These AISPs use OpenAI-compatible chat and usage endpoints. Set the API key in .env, optionally override base URL / usage path / default run model, restart, and switch to Live mode.
- xAI —
XAI_API_KEY, basehttps://api.x.ai, modelgrok-4.5. Docs: docs.x.ai - Perplexity AI —
PERPLEXITY_API_KEY, basehttps://api.perplexity.ai, modelsonar-pro. Docs: docs.perplexity.ai - Mistral AI —
MISTRAL_API_KEY, basehttps://api.mistral.ai. Docs: docs.mistral.ai - Cohere —
COHERE_API_KEY, basehttps://api.cohere.ai(chat via/compatibility/v1). Docs: docs.cohere.com - DeepSeek —
DEEPSEEK_API_KEY, basehttps://api.deepseek.com. Docs: api-docs.deepseek.com
If historical usage is not exposed on the account, set the provider *_USAGE_PATH to a gateway that exports OpenAI-style organization usage, or use demo mode.
Integrations
Official dashboards and docs for each AISP. Open these to create keys, enable metrics, and verify API access before switching this app to Live mode.
- OpenAIUsage dashboardUsage APIAdmin keys
- Azure OpenAIAzure OpenAI docsAzure Monitor metricsAzure portal
- AWS BedrockBedrock docsAPI keysCloudWatch metricsBedrock console
- Google Vertex AIVertex AI docsCloud MonitoringGoogle Cloud console
- Anthropic AIAnthropic docsUsage & Cost Admin APIAnthropic console
- Oracle AIOCI Generative AIOCI MonitoringOracle Cloud
- GitHub CopilotUsage metrics APIView usage metricsPersonal access tokens
- Meta AIMeta Model APIModel API docsLlama APILlama quickstart
- xAIxAI docsxAI consoleAPI reference
- Perplexity AIPerplexity docsAPI settingsChat completions
- Mistral AIMistral docsMistral consoleAPI reference
- CohereCohere docsCohere dashboardChat API
- DeepSeekDeepSeek docsDeepSeek platformChat completions
- Manus AIManus API docsAuthenticationTeam usage statsmanus.im
- Sarvam AIAPI docsAuthenticationsarvam.ai
- KrutrimCloud docsKrutrim Cloudolakrutrim.com
- Cursor AgentsCloud AgentsAdmin APIAPI keys
Manus AI
- Create an API key in Manus API Integration settings.
- Set in
.env:DEMO_MODE=falseMANUS_API_KEY=…MANUS_BASE_URL=https://api.manus.ai - Optional:
MANUS_CREDIT_USD,MANUS_TOKENS_PER_CREDIT,MANUS_RUN_MODEL. - Restart, open Live mode, filter Provider → Manus AI. Team keys use daily credit stats; personal keys fall back to session usage history.
Prompt Runner (optional): Manus creates an agent task and polls until completion — live runs consume credits.
Sarvam AI
- Create an API subscription key in the Sarvam console.
- Set in
.env:DEMO_MODE=falseSARVAM_API_KEY=…SARVAM_BASE_URL=https://api.sarvam.ai - Optional:
SARVAM_USAGE_PATH,SARVAM_RUN_MODEL(defaultsarvam-30b). - Restart, open Live mode, filter Provider → Sarvam AI. Auth uses the
api-subscription-keyheader.
Prompt Runner (optional): set SARVAM_RUN_MODEL, choose Sarvam AI on /prompt-runner, and run in live mode.
Krutrim
- Create an API key in Krutrim Cloud.
- Set in
.env:DEMO_MODE=falseKRUTRIM_API_KEY=…KRUTRIM_BASE_URL=https://cloud.olakrutrim.com - Optional:
KRUTRIM_USAGE_PATH,KRUTRIM_RUN_MODEL(defaultkrutrim-2). - Restart, open Live mode, filter Provider → Krutrim.
Prompt Runner (optional): set KRUTRIM_RUN_MODEL, choose Krutrim on /prompt-runner, and run in live mode.
Cursor Agents
- Create an API key at Cursor Dashboard → API Keys (user or service account). An Enterprise Admin key is optional.
- Set in
.env:DEMO_MODE=falseCURSOR_API_KEY=…CURSOR_BASE_URL=https://api.cursor.com - Optional:
CURSOR_USAGE_SOURCE=auto(Admin API, then Cloud Agents on 401/403),agents, oradmin. - Restart, open Live mode, filter Provider → Cursor Agents. Live usage uses Admin API when allowed; otherwise Cloud Agents
GET /v1/agents+/usage.
Prompt Runner (optional): set CURSOR_REPO_URL (GitHub repo), CURSOR_RUN_MODEL (default composer-2), choose Cursor Agents on /prompt-runner, and run in live mode (Cloud Agents API).
Permissions
Credentials are used only on the server — never in the browser. Grant least privilege to the identity running this service. Use the Integrations links above to open each provider console.
| Provider | Usage dashboard | Prompt Runner (live) |
|---|---|---|
| OpenAI | Organization Admin API key (OPENAI_ADMIN_KEY) with access to GET /v1/organization/usage/completions | OPENAI_API_KEY with permission to call the configured model |
| Azure OpenAI | AZURE_OPENAI_RESOURCE_ID + DefaultAzureCredential with Monitoring Reader on the Cognitive Services account | AZURE_OPENAI_ENDPOINT, API key, and deployment with chat completion access |
| AWS Bedrock | AWS_REGION + IAM access keys for CloudWatch (AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY); Bedrock API keys cannot read metrics | AWS_BEDROCK_API_KEY (or AWS_BEARER_TOKEN_BEDROCK) + AWS_BEDROCK_MODEL_ID for Converse |
| Google Vertex AI | GCP_PROJECT_ID + ADC with Monitoring Viewer (monitoring.timeSeries.list) and configured metric types | Vertex AI User (roles/aiplatform.user) to call the configured model |
| Anthropic AI | ANTHROPIC_ADMIN_KEY with access to GET /v1/organizations/usage_report/messages | ANTHROPIC_API_KEY with permission to call the configured model |
| Oracle AI | OCI_COMPARTMENT_ID, OCI_REGION, OCI config profile, and Monitoring read on configured MQL queries | OCI Generative AI Inference permission for OCI_GENAI_MODEL_ID |
| GitHub Copilot | GITHUB_COPILOT_TOKEN (or GITHUB_TOKEN) + GITHUB_COPILOT_ORG or GITHUB_COPILOT_ENTERPRISE; PAT needs Copilot usage metrics read (read:org or fine-grained View Organization Copilot Metrics). Metrics policy must be enabled. | Same token with Copilot chat access; set GITHUB_COPILOT_RUN_MODEL (default gpt-4.1) |
| Meta AI | META_AI_API_KEY (or MODEL_API_KEY / LLAMA_API_KEY) + META_AI_BASE_URL; OpenAI-compatible organization usage path (auto-discovered or META_AI_USAGE_PATH) | Same key for POST /v1/chat/completions; set META_AI_RUN_MODEL (default muse-spark-1.1) |
| xAI | XAI_API_KEY + XAI_BASE_URL (default https://api.x.ai); OpenAI-compatible usage path or XAI_USAGE_PATH | Same key for chat completions; XAI_RUN_MODEL (default grok-4.5) |
| Perplexity AI | PERPLEXITY_API_KEY + PERPLEXITY_BASE_URL; OpenAI-compatible usage or PERPLEXITY_USAGE_PATH | PERPLEXITY_RUN_MODEL (default sonar-pro) |
| Mistral AI | MISTRAL_API_KEY + MISTRAL_BASE_URL; OpenAI-compatible usage or MISTRAL_USAGE_PATH | MISTRAL_RUN_MODEL (default mistral-small-latest) |
| Cohere | COHERE_API_KEY + COHERE_BASE_URL; OpenAI-compatible usage or COHERE_USAGE_PATH | COHERE_RUN_MODEL (default command-r-plus) |
| DeepSeek | DEEPSEEK_API_KEY + DEEPSEEK_BASE_URL; OpenAI-compatible usage or DEEPSEEK_USAGE_PATH | DEEPSEEK_RUN_MODEL (default deepseek-chat) |
| Manus AI | MANUS_API_KEY + MANUS_BASE_URL (default https://api.manus.ai); uses /v2/usage.teamStatistic or /v2/usage.list (credits mapped to tokens) | Same key for /v2/task.create; MANUS_RUN_MODEL / MANUS_AGENT_PROFILE |
| Cursor Agents | CURSOR_API_KEY for Cloud Agents usage (GET /v1/agents + /usage); Enterprise Admin key optional for POST /teams/filtered-usage-events | CURSOR_API_KEY + CURSOR_REPO_URL for Cloud Agents (POST /v1/agents); set CURSOR_RUN_MODEL (default composer-2) |
See the project README.md for full IAM policy examples, GitHub Copilot and Meta AI setup steps, and environment variable reference.
Usage
- Select a time range with presets or custom start/end dates, then click Refresh.
- Toggle Demo mode or Live mode with the button in the header.
- Set Country of origin under Settings → General to focus on AISPs from one country (Global shows all).
- Filter by Provider, change Group by (None, Date, AISP, Model, Region, AppName), and pick a Metric (Tokens, Requests, Cost, #Tkns/Req, Cost/Req, or Latency) for table columns or chart values.
- Switch between Table and Chart views; use chart type icons for line, bar, and pie charts.
- When grouped by Date with a line chart, use Subgroup to split series by AISP or model.
- Click column headers to sort; hover headers for metric definitions.
- Click any Requests value to open request-level details.
- Review Provider distribution (with country-of-origin flags) and Integration status from the settings icon in the header.
Estimated cost in demo mode is illustrative. For production billing, use provider invoices or a versioned price catalog.
Disclaimer
Important limitations of this dashboard and its data.
This AI Token Usage Dashboard aggregates usage metrics from configured AI service providers for monitoring and operational awareness. Estimated costs, token counts, and request details may be incomplete, delayed, or derived from provider APIs and demo data.
No warranty
The software and displayed information are provided “as is” without warranties of any kind, express or implied, including accuracy, completeness, merchantability, or fitness for a particular purpose.
Not billing advice
Figures shown here are for governance and FinOps visibility. They are not an invoice and may differ from provider billing statements. Always reconcile spend against official provider invoices and contracts.
Third-party services
Provider availability, APIs, pricing, and policies can change without notice. Integration failures or missing credentials may cause gaps in the data presented.
Terms & Conditions
Terms of use for this workspace deployment.
By accessing or using this dashboard you agree to use it only for legitimate operational, engineering, and FinOps purposes within your organization.
Acceptable use
- Do not attempt unauthorized access to provider accounts, credentials, or other tenants.
- Do not misuse request-level details or exported data outside your organization’s policies.
- Keep API keys and secrets on the server; never expose them in the browser or public repositories.
Data & credentials
Usage data and settings stored by this application remain under your deployment’s control. You are responsible for configuring providers, access controls, and retention according to your security and compliance requirements.
Changes
These terms may be updated as the product evolves. Continued use after an update constitutes acceptance of the revised terms for this deployment.
Support
How to get help with this dashboard.
For setup and operations, start with the in-app Help guide (header “?”), the project README.md, and .env.example.
Common checks
- Confirm
DEMO_MODE/ Live mode and that required provider environment variables are set. - Open Settings → Connectors for integration status after a usage refresh.
- Review container or process logs for provider API errors.
- Use
/healthto confirm the service is up and see the running version.
Contact
Contact your platform or FinOps owner for access, credentials, and production support. For product defects or feature requests, open an issue in the GitHub repository that hosts this deployment and include the version shown in the footer.