Seeing spend

Per-developer usage reporting: how to get a Claude Code number for each person

Per-developer usage reporting for Claude Code comes from a different source on each setup, by Anthropic's documentation read on 4 October 2026: the spend report CSV on the Teams plan, the Enterprise Analytics API on the Enterprise plan, the Console dashboard and the Claude Code Analytics API on the Claude Console, and OpenTelemetry export or a gateway on a cloud provider. OpenTelemetry export is, in Anthropic's words, the only option that streams per-user token and cost metrics into your own monitoring system in near real time on every setup. This page explains each source in plain words, lists the metrics Claude Code exports, and says which source to use on each plan.

Published October 4, 2026. Editorial.

Key takeaways

  • On the Teams plan, the spend report CSV lists token usage and estimated usage-credit spend per user and per model, updated daily, by Anthropic's documentation read on 4 October 2026.
  • On the Enterprise plan, the Enterprise Analytics API returns per-user usage and cost reports across Claude surfaces, with a key a Primary Owner creates with the read:analytics scope; Anthropic says the API is not available on the Teams plan.
  • On the Claude Console, the Claude Code Analytics API returns the same daily per-user metrics as the dashboard, fetched by a script with an Admin API key.
  • OpenTelemetry export works on every setup and sends a cost counter in US dollars and a token counter split by input, output, cache read and cache creation, with the user's account and email attached, by Anthropic's monitoring documentation.
  • Anthropic names LiteLLM as an open-source gateway that several large enterprises reported using, and states that the project is unaffiliated with Anthropic and has not been audited for security.

Per-developer usage reporting for Claude Code, Anthropic's coding tool, comes from a different source on each of the three setups, and only one source works on all three. Anthropic's documentation on managing costs, read on 4 October 2026, names them: a spend report file and an Enterprise Analytics API on Teams and Enterprise plans, a dashboard and a Claude Code Analytics API on the Claude Console, and OpenTelemetry export or a gateway on a cloud provider [1]. This page explains each in plain words and says which to use. It is part of the guide to Claude Code costs for teams, and the screens that show totals, as opposed to per-person figures, are on the page on where to see Claude Code spend.

Three terms appear throughout. A token is a piece of text the model reads or writes, and all usage is counted in tokens. A CSV file is a plain spreadsheet file, one row per record, which opens in Excel or Google Sheets. An API is an interface that lets a program, instead of a person, ask a service for data; an API key is the secret string that proves which account the program belongs to. A dashboard is a web page of figures and charts. A cloud provider means Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry. A gateway is a server the company runs between Claude Code and the model provider. OpenTelemetry is explained in its own section below.

Teams and Enterprise plans: the spend report file and the Enterprise Analytics API

On a Teams or Enterprise plan, usage draws from each member's seat allowance, the usage included in their seat, and Anthropic says usage inside the allowance "isn't metered in dollars" [1]. Per-person dollar figures therefore describe usage credits, the paid usage a member draws on after the allowance runs out.

The spend report CSV. Anthropic's documentation says that on the Teams plan an administrator exports the spend report CSV, "which lists token usage and estimated spend per user and per model" [1]. The report is updated daily and appears once usage credits are turned on [1]. This is the one per-person file available on the Teams plan, and it answers the two questions a monthly review asks: who spent what, and on which model.

The analytics dashboard export. The dashboard at claude.ai/analytics/claude-code has an Export all users button that downloads contribution data for every user as a CSV, including users outside the top 10 shown on the leaderboard [2]. Contribution data means pull requests and lines of code shipped with Claude Code assistance, which needs the GitHub integration an Owner enables [2]. It is a measure of output per person, which pairs with the spend report's measure of cost per person.

The Enterprise Analytics API. On the Enterprise plan, Anthropic's documentation says this API "returns per-user usage and cost reports across Claude surfaces, including Claude Code" [1]. Two conditions apply. A Primary Owner creates the key, with the read:analytics scope, at claude.ai/analytics/api-keys [1]; a scope is the list of things a key is allowed to do. And, in the words of the analytics documentation, "The API is not available on the Teams plan" [2]. Reveneau's reading: on Enterprise, this is the source to build a monthly report from, because it covers chat, Cowork and Claude Code in one place; on Teams, the spend report CSV is the source.

The Claude Console: the dashboard and the Claude Code Analytics API

The Claude Console is Anthropic's web console for accounts billed per token. Anthropic's documentation names two per-person sources on it.

The Console dashboard at platform.claude.com/claude-code has a team insights table with one row per user who has authenticated to Claude Code [2]. Each row shows spend this month, the user's total API costs for the current month, and lines this month, their accepted code lines [2]. Users who signed in with an API key appear by key identifier, and users who signed in with an account login appear by email address [2]. Opening the dashboard needs the UsageView permission, granted to the Developer, Billing, Admin, Owner and Primary Owner roles [2]. Anthropic notes that the spend figures are estimates for analytics purposes and that actual costs are on the billing page [2].

The Claude Code Analytics API returns, in Anthropic's words, "the same daily per-user metrics programmatically with an Admin API key" [1]. The Admin API key is created at platform.claude.com/settings/admin-keys [1]. Programmatically means a script fetches the figures instead of a person reading the page, which is what a finance team needs to match the figures to a cost centre list each month.

Cloud providers: nothing returns to Anthropic, so the data has to be collected

On Amazon Bedrock, Google Cloud's Agent Platform and Microsoft Foundry, which are the Amazon, Google and Microsoft services that offer Claude models inside a company's cloud account, Anthropic's documentation says Claude Code "does not send metrics from your cloud back to Anthropic", so the dashboards and the Claude Code Analytics API above do not cover this usage [1]. The cloud billing console shows the total. For per-person figures, Anthropic names three options: OpenTelemetry, a Claude apps gateway, or an LLM gateway [1].

OpenTelemetry: the one method that works on every setup

OpenTelemetry is an open standard for sending measurements and event records from a program to a monitoring system. In Claude Code's case, each developer's copy of the tool sends its figures to a system the company runs. Anthropic's cost documentation says OpenTelemetry export "works on every setup and is the only option that streams per-user token and cost metrics into your own observability stack in near real time" [1]. An observability stack is the company's monitoring system, such as the tools an operations team already uses to watch servers.

Anthropic's monitoring documentation, read on 4 October 2026, says it is turned on with environment variables, which are named values a program reads at start-up: CLAUDE_CODE_ENABLE_TELEMETRY=1 turns export on, OTEL_METRICS_EXPORTER=otlp picks the standard export format, and OTEL_EXPORTER_OTLP_ENDPOINT gives the address of the receiving system [3]. The default export interval is 60,000 milliseconds, which is one minute [3]. A developer's own setting can still switch a signal off or redirect it to the console, so Anthropic says to set the exporter selectors in managed settings too "if you need them locked", and marks that behaviour as requiring Claude Code version 2.1.223 or later [3]. Managed settings are settings the organisation deploys to every machine that a developer cannot override.

Claude Code exports eight metrics, listed in the monitoring documentation [3]:

Metric name What it counts Unit
claude_code.session.count Sessions started none
claude_code.lines_of_code.count Lines of code modified none
claude_code.pull_request.count Pull requests created none
claude_code.commit.count Git commits created none
claude_code.cost.usage Cost of the session USD
claude_code.token.usage Tokens used tokens
claude_code.code_edit_tool.decision Permission decisions on code edits none
claude_code.active_time.total Active time seconds

The two that matter for a budget are the cost counter and the token counter. Each is incremented after every API request, and each includes the model name, a query_source of main, subagent or auxiliary that separates the main conversation from helper requests, and the effort level [3]. The token counter also includes a type of input, output, cacheRead or cacheCreation, so a report can show how much of a developer's usage was read from the prompt cache at the lower price [3].

The per-person part comes from the attributes attached to every metric. Anthropic's list includes user.account_uuid and user.account_id, which identify the account; user.email, the sign-in email, included when available; organization.id; and session.id [3]. A company can add its own labels through the OTEL_RESOURCE_ATTRIBUTES variable, and Anthropic's example is department=engineering,team.id=platform,cost_center=eng-123, which it says allows filtering by team or department and tracking costs per cost centre [3]. Anthropic adds a warning: each custom key becomes a label on every metric series, so values with many distinct entries increase storage cost in the monitoring system [3].

Two limits apply. Anthropic's note reads: "Cost metrics are approximations. For official billing data, refer to your API provider (Claude Console, Amazon Bedrock, or Google Cloud's Agent Platform)" [3]. And by default the cost figure is at list price; the modelPricing managed setting, explained on the page on where to see Claude Code spend, changes the exported cost metric to contracted rates. The sister guide's page on how to check your cache hit rate shows what the token counter's cache types reveal.

Gateways: per-person attribution through one shared credential

A gateway is a server the company runs between Claude Code and the model provider. Anthropic's gateway overview, read on 4 October 2026, says developers authenticate to the gateway with their own credential while the gateway forwards every request with one company credential, "so authentication, usage tracking, budgets, and audit logging happen in one place you control" [5]. Per-person reporting follows from the developer credential: Anthropic's rollout advice is to "issue each developer a gateway credential, so usage is attributed to the developer" [4].

A Claude apps gateway is Anthropic's own self-hosted gateway, included in the claude program. Anthropic says it provides, on the cloud providers, "per-user usage attribution, OTLP metrics with token counts, and per-user spend limits" [1]. Developers sign in through /login with the company's identity provider, the system the company already uses to sign staff in to other services, and the gateway emits OpenTelemetry usage metrics to the company's monitoring system [5]. Its spend-limits documentation adds a reporting endpoint, /effective, that returns each person's resolved cap and period-to-date spend, with a sort option of spend_desc that lists the top spenders first [6]. The same page says that by default the provider's bill attributes everything to the one shared credential, and that on Amazon Bedrock a per-developer AWS cost attribution option changes this [6]. One limit: the sign-in is a browser step that a person approves, and there is no sign-in method for a program running alone, so an automated pipeline with nobody present cannot authenticate through it and is configured against the provider directly [5].

An LLM gateway is a gateway product the company already runs. Anthropic's cost documentation describes the option as routing all Claude Code traffic "through a proxy that tracks spend per key", and states that "Several large enterprises reported using LiteLLM, an open-source tool that tracks spend by key. This project is unaffiliated with Anthropic and has not been audited for security" [1]. That is the whole of what Anthropic says about it, and this page adds nothing to it. The gateway documentation adds that Anthropic "doesn't endorse, maintain, or audit third-party gateway products", and that a gateway maintained separately needs its forwarding rules updated as Claude Code changes [4].

Every method in one table

Method Plans it works on What you get, per person
Spend report CSV Teams and Enterprise Token usage and estimated usage-credit spend per user and per model, updated daily [1]
Analytics dashboard export Teams and Enterprise, with GitHub integration Pull requests and lines of code with Claude Code assistance, all users [2]
Enterprise Analytics API Enterprise only Usage and cost reports across Claude chat, Cowork and Claude Code; key with read:analytics scope from a Primary Owner [1][2]
Console dashboard, team insights Claude Console Spend this month and lines this month per member; estimates [2]
Claude Code Analytics API Claude Console The same daily per-user metrics, fetched by a script with an Admin API key [1]
OpenTelemetry export Every setup Token and cost counters per user, model, request source and token type, one minute apart by default; approximations [1][3]
Claude apps gateway Cloud providers and the Anthropic API Per-user attribution, OpenTelemetry metrics, per-user spend limits, a top-spenders listing [1][6]
LLM gateway Any provider the gateway forwards to Spend per developer key; Anthropic names LiteLLM as reported in use, unaffiliated and unaudited [1]

Which method to use

Reveneau's recommendation. On the Teams plan, export the spend report CSV monthly and match it against the analytics export, so each person has a cost and an output figure. On the Enterprise plan, produce the monthly report from the Enterprise Analytics API, because it covers every Claude surface in one call. On the Claude Console, use the Claude Code Analytics API for the same reason. On a cloud provider, set up OpenTelemetry export first, because it is the only method Anthropic says works everywhere and the only one that reports during the month; add a Claude apps gateway when the company also wants per-person spend limits, which the page on spend limits for an organisation, a group and a person explains. Whatever the method, reconcile the per-person figures to the invoice once a month, because every per-person figure in this table is an estimate by Anthropic's own description.

Reveneau is an AI software development consultancy. All of its code is written by AI, so token use is a running cost of every Reveneau build, and Reveneau is independent of Anthropic. Every API name, scope name and metric name on this page is from Anthropic's documentation read on 4 October 2026. If you want help setting up per-developer reporting, contact Reveneau.

Common questions

How do I get Claude Code spend per developer on a Teams plan?

On the Teams plan, export the spend report CSV from the claude.ai admin console. Anthropic's documentation, read on 4 October 2026, says it lists token usage and estimated spend per user and per model, is updated daily, and covers usage-credit spend, so it appears once usage credits are turned on. The Enterprise Analytics API is available on the Enterprise plan only, so on Teams the CSV is the per-person source.

What is the Enterprise Analytics API for Claude Code?

The Enterprise Analytics API is an interface that returns per-user usage and cost reports across Claude surfaces, including Claude Code, to a script instead of a web page, by Anthropic's documentation read on 4 October 2026. A Primary Owner creates the key for it, with the read:analytics scope, at claude.ai/analytics/api-keys. Anthropic's analytics documentation says the API is not available on the Teams plan.

How do I get per-user Claude Code metrics from the Claude Console by script?

Use the Claude Code Analytics API with an Admin API key, created at platform.claude.com/settings/admin-keys. Anthropic's documentation, read on 4 October 2026, says it returns the same daily per-user metrics as the Console dashboard at platform.claude.com/claude-code, whose team insights table shows each member's spend this month and lines this month. Anthropic calls the dashboard's spend figures estimates and sends readers to the billing page for actual costs.

What is OpenTelemetry, in plain words, for Claude Code?

OpenTelemetry is an open standard for sending measurements and event records from a program to a monitoring system. For Claude Code, each developer's copy sends its figures to a system the company runs. Anthropic's documentation, read on 4 October 2026, says it is turned on with environment variables, starting with CLAUDE_CODE_ENABLE_TELEMETRY=1, exports every 60,000 milliseconds by default, and is the only option that streams per-user token and cost metrics on every setup.

Which metrics does Claude Code export through OpenTelemetry?

Claude Code exports eight metrics through OpenTelemetry, by Anthropic's monitoring documentation read on 4 October 2026: session count, lines of code modified, pull requests created, commits created, cost in US dollars, tokens used, code edit permission decisions, and active time in seconds. The cost and token counters are incremented after each API request and include the model, the request source and the effort level; the token counter also includes the token type.

How does OpenTelemetry identify the developer behind a Claude Code metric?

Every Claude Code metric includes standard attributes that identify the developer, by Anthropic's monitoring documentation read on 4 October 2026: user.account_uuid and user.account_id for the account, user.email from the sign-in when available, organization.id, and session.id. In a session signed in to a Claude apps gateway, the exports include the identity provider's subject and email instead. A company can add its own labels through the OTEL_RESOURCE_ATTRIBUTES variable.

Can I split Claude Code costs by department or cost centre?

Yes, through OpenTelemetry export. Anthropic's monitoring documentation, read on 4 October 2026, shows the OTEL_RESOURCE_ATTRIBUTES variable set to department=engineering,team.id=platform,cost_center=eng-123 and says these custom attributes are attached to every metric, allowing filtering by team or department and tracking costs per cost centre. Anthropic warns that each custom key becomes a label on every metric series, so many distinct values increase storage cost in the monitoring system.

Are OpenTelemetry cost figures from Claude Code exact?

No. Anthropic's monitoring documentation, read on 4 October 2026, says cost metrics are approximations and that official billing data comes from the API provider: the Claude Console, Amazon Bedrock or Google Cloud's Agent Platform. By default the figures are at list price; the modelPricing managed setting changes the exported cost metric to contracted rates. Reveneau recommends reconciling per-person figures to the invoice once a month.

How do I get per-developer Claude Code reporting on Amazon Bedrock?

On Amazon Bedrock, per-developer Claude Code reporting comes from OpenTelemetry export, a Claude apps gateway, or an LLM gateway, by Anthropic's documentation read on 4 October 2026, because Claude Code sends no metrics from a cloud back to Anthropic and the Anthropic dashboards do not cover that usage. OpenTelemetry gives per-user token counts and costs from each machine; a Claude apps gateway adds per-user attribution and per-user spend limits.

What does Anthropic say about LiteLLM for Claude Code?

Anthropic's cost documentation, read on 4 October 2026, says several large enterprises reported using LiteLLM, which it describes as an open-source tool that tracks spend by key, as an LLM gateway in front of Claude Code. The same sentence states that the project is unaffiliated with Anthropic and has not been audited for security. Anthropic's gateway documentation adds that it does not endorse, maintain or audit third-party gateway products.

What is a Claude apps gateway?

A Claude apps gateway is Anthropic's self-hosted gateway, included in the claude program, by Anthropic's gateway documentation read on 4 October 2026. Developers sign in with the company's identity provider through /login, the gateway forwards requests with one company credential, and it emits OpenTelemetry usage metrics. On cloud providers it provides per-user usage attribution and per-user spend limits, and its /effective endpoint lists each person's cap and period-to-date spend.

Which per-developer reporting method should a company use for Claude Code?

Reveneau recommends the spend report CSV on the Teams plan, the Enterprise Analytics API on the Enterprise plan, the Claude Code Analytics API on the Claude Console, and OpenTelemetry export on a cloud provider, with a Claude apps gateway added when per-person spend limits are also wanted. The reason is Anthropic's own description, read on 4 October 2026, of which source each plan offers and of OpenTelemetry as the one method that works on every setup.