On a Team plan there's no API for this: the owner exports the CSV from the Claude.ai console's usage/billing screen. It downloads one file covering whatever date range you pick — and unlike Cursor's event log, this file has no per-request rows and no per-day rows at all.
A Claude Enterprise org isn't limited to the console export: Anthropic documents
the Claude Enterprise Analytics API, created as an API key under Organization settings → API,
with endpoints under api.anthropic.com/v1/organizations/analytics/ that return
per-user and org-level token usage and cost over time. Everything below — the CSV's columns, the
gross/net distinction, the per-window rollup — describes the console export a Team owner
downloads, not the Enterprise Analytics API. (Source:
platform.claude.com/docs/en/manage-claude/analytics-api and
platform.claude.com/docs/en/manage-claude/usage-cost-api, both fetched 2026-08-30.)
Two header styles show up depending on export version — both describe the same underlying data:
user_email,account_uuid,product,model,total_requests,total_prompt_tokens,total_completion_tokens,total_net_spend_usd,total_gross_spend_usd,user_id,total_uncached_input_tokens,total_cache_read_tokens,total_cache_write_5m_tokens,total_cache_write_1h_tokens,total_web_search_count,slack_channel_id,teams_channel_id
User's email,Account UUID,Product,Model and model family,total_requests,total_prompt_tokens,total_completion_tokens,total_net_spend_usd,total_gross_spend_usd
What each row actually represents
Every row is a sum over the whole export window for one
(email, product, model) combination. Product is one of eight values in a
real export: Chat, Claude Code, Claude Design,
Claude Tag, Claude in Chrome, Cowork,
Office Agents, or Research. Model is a display name like
Claude Opus 4.1 or an API-style id like claude-opus-5 depending on export
version. If Alice used Sonnet in Chat and Opus in Claude Code this month, that's two rows for Alice,
not one — but each of those two rows is itself already a 30-day total, not a daily breakdown.
| Column | Meaning |
|---|---|
total_requests | Request count for this person/product/model, summed over the window. |
total_prompt_tokens / total_completion_tokens | Input/output tokens, window total. |
total_net_spend_usd | What was actually billed — the number to trust as spend. |
total_gross_spend_usd | List price before any Team/Enterprise discount is applied. Not what you paid. |
Two separate ways this goes wrong, both real:
Wrong column. total_gross_spend_usd is the list-price figure before
your organization's negotiated discount — summing that column instead of
total_net_spend_usd reports what Anthropic's rate card would have charged, not what
your invoice says. The gap between the two reflects that discount, whatever it is for your
contract — it's often just a percent or two, not a dramatic swing, so don't assume it's large
enough to notice; check both columns to be sure.
Overlapping exports. This file carries no per-row date — a 90-day export's total
is one number, not 90 daily numbers. Download a wide range (say, the whole quarter) and later a
narrower one inside it (say, just last week) and add both files' total_net_spend_usd
together, and you've now counted last week's spend twice. Nothing in the CSV itself warns you the
two exports overlap.
What it can't tell you on its own
No conversation-level detail, no timestamp per request, and no way to tell which specific day inside a multi-day window a burst of spend happened on — that granularity only exists in Cursor's and the Anthropic Console's own exports (see the other guides below), never in this one. A report built from this file alone can show accurate per-person, per-model totals for the exact window you picked — not a daily trend inside it.