mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-10 07:11:25 +03:00
docs(www): hide Console Usage API documentation (#51358)
Co-authored-by: vimtor <36263538+vimtor@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
Unverified
parent
144ce00e00
commit
ff1bf315ed
@@ -128,5 +128,4 @@ workspace with `/connect`, and `/models` lists their enabled models.
|
||||
## Usage and limits
|
||||
|
||||
The provider bills you for the tokens. Console records every request and, using the pricing configured on the model,
|
||||
counts it toward workspace and member monthly limits. In [usage exports](/console/usage), BYOK rows have
|
||||
`billing_source` set to `byok` and a zero `cost_micro_cents`.
|
||||
counts it toward workspace and member monthly limits.
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
---
|
||||
title: "Usage API"
|
||||
description: "Export usage records as CSV for a workspace, member, service account, or model."
|
||||
---
|
||||
|
||||
Export usage records as CSV for a workspace, member, service account, or model. Use the versioned endpoint in scripts,
|
||||
reporting jobs, and billing integrations.
|
||||
|
||||
## Quick start
|
||||
|
||||
Create a service account API key in the [Console](https://opencode.ai/console). This endpoint accepts service account
|
||||
keys only; user session tokens are rejected.
|
||||
|
||||
```bash
|
||||
export CONSOLE_URL="https://opencode.ai/console"
|
||||
export SERVICE_API_KEY="oc_sk_..."
|
||||
```
|
||||
|
||||
Export the last seven days of workspace usage:
|
||||
|
||||
```bash
|
||||
curl --fail-with-body --get \
|
||||
"${CONSOLE_URL}/api/v1/usage/export" \
|
||||
--header "Authorization: Bearer ${SERVICE_API_KEY}" \
|
||||
--header "Accept: text/csv" \
|
||||
--data-urlencode "scope=organization" \
|
||||
--data-urlencode "range=7d" \
|
||||
--output "usage-organization-7d.csv"
|
||||
```
|
||||
|
||||
A successful request writes `usage-organization-7d.csv`. Remove `--output` to print the CSV in your terminal instead.
|
||||
|
||||
## Endpoint and scopes
|
||||
|
||||
```text
|
||||
GET /api/v1/usage/export
|
||||
```
|
||||
|
||||
Every request requires `scope` and `range`. Supported ranges are `24h`, `7d`, and `30d`. They start at midnight UTC
|
||||
rather than being rolling windows. The full range is returned as a single streamed CSV file, regardless of size.
|
||||
|
||||
| Scope | Additional parameters | Result |
|
||||
| ----------------- | ---------------------- | ---------------------------------------- |
|
||||
| `organization` | None | All usage in the workspace. |
|
||||
| `member` | `user_email` | Usage attributed to one member. |
|
||||
| `service_account` | `service_account_id` | Usage attributed to one service account. |
|
||||
| `model` | `provider` and `model` | Usage for one provider and model pair. |
|
||||
|
||||
<Callout title="Use only the parameters for your scope">
|
||||
Member, service account, and model filters are mutually exclusive. Extra filters return HTTP 400 instead of being
|
||||
silently ignored.
|
||||
</Callout>
|
||||
|
||||
## Export examples
|
||||
|
||||
One member:
|
||||
|
||||
```bash
|
||||
curl --fail-with-body --get \
|
||||
"${CONSOLE_URL}/api/v1/usage/export" \
|
||||
--header "Authorization: Bearer ${SERVICE_API_KEY}" \
|
||||
--header "Accept: text/csv" \
|
||||
--data-urlencode "scope=member" \
|
||||
--data-urlencode "range=24h" \
|
||||
--data-urlencode "user_email=alice@example.com" \
|
||||
--output "usage-member-24h.csv"
|
||||
```
|
||||
|
||||
One service account:
|
||||
|
||||
```bash
|
||||
curl --fail-with-body --get \
|
||||
"${CONSOLE_URL}/api/v1/usage/export" \
|
||||
--header "Authorization: Bearer ${SERVICE_API_KEY}" \
|
||||
--header "Accept: text/csv" \
|
||||
--data-urlencode "scope=service_account" \
|
||||
--data-urlencode "range=30d" \
|
||||
--data-urlencode "service_account_id=svcacct_..." \
|
||||
--output "usage-service-account-30d.csv"
|
||||
```
|
||||
|
||||
One provider and model:
|
||||
|
||||
```bash
|
||||
curl --fail-with-body --get \
|
||||
"${CONSOLE_URL}/api/v1/usage/export" \
|
||||
--header "Authorization: Bearer ${SERVICE_API_KEY}" \
|
||||
--header "Accept: text/csv" \
|
||||
--data-urlencode "scope=model" \
|
||||
--data-urlencode "range=7d" \
|
||||
--data-urlencode "provider=anthropic" \
|
||||
--data-urlencode "model=claude-sonnet-4-5" \
|
||||
--output "usage-model-7d.csv"
|
||||
```
|
||||
|
||||
Provider is the provider catalog key, such as `anthropic`, `deepseek`, or `opencode`. A valid filter with no matching
|
||||
records still returns HTTP 200 with a header-only CSV file.
|
||||
|
||||
## CSV response
|
||||
|
||||
Results are newest first. Empty optional values are blank cells. `cost_micro_cents` is the amount charged by Console
|
||||
in microcents, where 100,000,000 equals one dollar. Managed-inference usage carries its charge; free, BYOK, and
|
||||
unclassified legacy usage have a zero charge.
|
||||
|
||||
Organization and member exports include [Websearch](/console/websearch) charges. Search rows identify `web-search` in
|
||||
the `service` column and leave provider, model, and token fields blank. Model and provider filters select inference
|
||||
records only.
|
||||
|
||||
<div class="docs-table-scroll" role="region" aria-label="Usage export CSV fields" tabIndex={0}>
|
||||
|
||||
| Field | Description |
|
||||
| ------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | Unique record ID. New service records use a `service:` prefix; inference and historical IDs are numeric. |
|
||||
| `user_email` | Current email of the member that generated the usage, when applicable. |
|
||||
| `service_account_name` | Current name of the service account that generated the usage, when applicable. |
|
||||
| `app` | Client app title, or its referrer when no title was reported. |
|
||||
| `provider` | Provider catalog key, such as `openai`, `anthropic`, `deepseek`, or `opencode`. |
|
||||
| `model` | Model identifier reported for the request. |
|
||||
| `input_tokens` | Number of input tokens consumed. |
|
||||
| `output_tokens` | Number of output tokens generated. |
|
||||
| `reasoning_tokens` | Number of reasoning tokens reported by the provider. |
|
||||
| `cache_read_tokens` | Number of input tokens read from the provider cache. |
|
||||
| `cache_write_5m_tokens` | Number of tokens written to a five-minute cache. |
|
||||
| `cache_write_1h_tokens` | Number of tokens written to a one-hour cache. |
|
||||
| `reasoning_mode` | Reasoning mode used, such as `effort`, `adaptive`, `budget`, or `disabled`. |
|
||||
| `reasoning_effort` | Provider-specific reasoning effort value, when supplied. |
|
||||
| `reasoning_budget_tokens` | Requested reasoning-token budget, when supplied. |
|
||||
| `reasoning_source` | Source from which the reasoning configuration was derived. |
|
||||
| `billing_source` | How the request was funded, such as `managed-inference`, `credit`, `byok`, or `free`. |
|
||||
| `cost_micro_cents` | Amount charged by Console in microcents. Divide by 100,000,000 to convert to USD. |
|
||||
| `created_at` | When the usage was recorded, as an ISO 8601 UTC timestamp. |
|
||||
| `service` | Service identifier, currently `web-search`. Blank for model requests. |
|
||||
| `quantity` | Number of billable operations represented by the record; normally one. |
|
||||
|
||||
</div>
|
||||
|
||||
## Errors
|
||||
|
||||
| Status | Meaning |
|
||||
| ------ | ------------------------------------------------------------------------------------ |
|
||||
| `400` | Missing parameters, invalid values, or filters that do not match the selected scope. |
|
||||
| `401` | Missing, invalid, expired, or revoked service API key. |
|
||||
| `403` | The authenticated service account is not allowed to read usage. |
|
||||
|
||||
Curl uses `--fail-with-body` in these examples so authentication and validation failures produce a non-zero exit code
|
||||
while preserving any error response.
|
||||
@@ -146,7 +146,6 @@ export const docsSections: DocsSection[] = [
|
||||
items: [
|
||||
{ title: "Inference", slug: "console/inference" },
|
||||
{ title: "BYOK", slug: "console/byok" },
|
||||
{ title: "Usage", slug: "console/usage" },
|
||||
{ title: "Budgets", slug: "console/budgets" },
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user