Provider Connectors

Anthropic

See what you spend on Claude, who uses it and how, whatever plan you are on. Connect the Claude API, Claude Enterprise, and the usage of Claude Code and Cowork.

What each plan can show

Anthropic publishes billing data for the Claude API and for Claude Enterprise only. For every other plan there is no bill to read, so LevelFour shows the usage that Claude Code and Cowork report themselves: who used which model, how much, what that usage is worth at API list price, and how developers work with Claude Code.

Your planWhat you payConnectWhat you see
Claude API, in a Claude Console organizationPer tokenClaude APIYour bill by model, workspace, token type and API key
Claude API on an individual Console accountPer tokenClaude Code and Cowork usage, picked as Claude Pro or MaxWhat Claude Code uses on your API key, by model. Anthropic offers individual accounts no Admin API, so LevelFour cannot connect the account or read its bill
Claude Enterprise, usage-basedPer tokenClaude EnterpriseYour bill by model, product and person, at list price and after your discount
Claude Enterprise, seat-basedSeats, plus usage creditsClaude Enterprise and Claude Code and Cowork usageYour usage credits by person, and who uses Claude, with which model, and how much
TeamSeats, plus usage creditsClaude Code and Cowork usageWho uses Claude, with which model, and how much
Pro and MaxA monthly subscription, plus usage creditsClaude Code and Cowork usageWhat you use, by model

Connect any mix of the three sources, in any order. Billing data holds no activity, so add Claude Code and Cowork usage beside a Claude API or Claude Enterprise connection to see sessions, tools and output next to what you pay.

A source can hold more than one account: a second Claude API organization, a second Claude Enterprise organization, or a settings block per team. Add another at any time from the same page. Name is optional free text, and LevelFour uses it only to tell accounts apart in the connected accounts list.

On the Claude API, the account is the Claude Console organization. A second Admin key of an organization you already connected adds no account: it ends as "already connected".

LevelFour does not ask you to type what a subscription costs. A subscription is the same every month whatever is used, so it has nothing to show day by day. Anthropic bills usage credits beyond a subscription at API rates, and publishes no report LevelFour can read for them.

LevelFour does not collect chat on claude.ai for Team, Pro and Max plans. Anthropic publishes no usage data for it, and it does not run on your machine. Only a Claude Enterprise connection shows chat.

History and what is left out

SourceHistory on connectFirst dataNot included
Claude API180 days, by dayAbout an hourPriority Tier and tax
Claude Enterprise180 days, by day, no earlier than January 1, 2026About an hourSeat fees. On a seat-based plan Anthropic reports usage credits only
Claude Code and Cowork usageFrom the day the settings are added. Claude Code reports nothing earlierA few minutes after you verifyYour bill, chat on claude.ai, developers who have not added the settings, and what LevelFour never reads

Prerequisites

  • An organization on Claude Console. Not available on Claude Platform on AWS.
  • Organization admin access, to create the Admin API key.
  • An individual Console account has no Admin keys and no cost report, because Anthropic offers individual accounts no Admin API. LevelFour cannot connect one. To see what Claude Code uses on it, pick Claude Pro or Max and connect Claude Code and Cowork usage.
  • A Claude Enterprise organization, billed by usage or by seat.
  • The Primary Owner, to create the Analytics key. Cost data starts at January 1, 2026, so history before that date is not available.
  • Claude Code on each developer's machine, on any plan, personal ones included.
  • For a whole organization on Team or Enterprise: an owner, to paste the settings once for everyone.

Connect

Open Connect Providers and select Anthropic. The first time an admin opens it, Connect Claude starts by itself; after that, click Add account. Pick each plan your company pays for and click Continue:

Plan you pickStep it adds
Claude APIClaude API: an Admin API key. Claude Code: a settings block, optional
Claude EnterpriseClaude Enterprise: an Analytics API key. Claude Code and Cowork: a settings block, optional
Claude TeamClaude Code and Cowork: a settings block
Claude Pro or Max, or Claude Code on your own API keyClaude Code: a settings block

Two plans with the same source share one step. You can skip a step or hand it to a colleague, and a review at the end lists what is connected and what is still open. Run it again at any time to add a second organization or another team: it only adds accounts. Only admins connect, rotate and disconnect; a member or viewer sees each account and its status.

Create an Admin API key

Sign in to Claude Console as an org admin. Go to Settings > Admin keys, create a key, and set an expiry. An individual Console account has no such page, and LevelFour cannot connect one.

Copy the key (it starts with sk-ant-admin01-). Admin keys have no scopes, so this key can also make changes in your organization. LevelFour only reads with it. Create one for LevelFour alone, so you can revoke it without touching anything else.

Add it to LevelFour

In Connect Claude, pick Claude API. On the Claude API step, paste the key and click Connect account.

LevelFour reads the cost report for what Anthropic billed you and the usage report for who used it. Anthropic publishes no cost per API key, so LevelFour shares each charge between the keys that used that model in that workspace on that day, in proportion to their tokens. The shares add up to the charge.

Create an Analytics key

Sign in to claude.ai as the organization's Primary Owner. Go to Organization settings > API, turn on public API access, and create a key with the read:analytics scope.

Copy the key (it starts with sk-ant-api01-) and your Organization ID.

Add it to LevelFour

In Connect Claude, pick Claude Enterprise. On the Claude Enterprise step, paste the key and the Organization ID, and click Connect account.

On a seat-based Enterprise plan, Anthropic reports usage credits only, not your seat fee, so your Claude Enterprise total will be lower than your invoice. Add Claude Code and Cowork usage in the next step to see how your people use their seats.

Spend that belongs to no seat user, such as a service account, appears as (not a seat user), so the rows still add up to your organization's total.

Generate the settings

In Connect Claude, pick Claude Team or Claude Pro or Max, or add the optional step to Claude Enterprise or Claude API. Pick Claude Pro or Max too for Claude Code that runs on your own API key. On the Claude Code and Cowork step, called Claude Code when you picked no Team or Enterprise plan, click Generate settings. LevelFour shows a settings block that holds a new ingest key.

~/.claude/settings.json
{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/json",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "https://api.levelfour.ai/api/v1/otlp",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer l4i_...",
    "OTEL_LOGS_EXPORT_INTERVAL": "60000",
    "OTEL_METRIC_EXPORT_INTERVAL": "60000"
  }
}

Copy the block before you leave the page. LevelFour keeps only a hash of the key and shows it this one time.

Add them to Claude Code

  • One developer, on any plan or on a Claude Console API key: add the eight entries of the block to the env object of ~/.claude/settings.json, next to what is already there. If the file has no env, add the whole env object.
  • A whole organization on Team or Enterprise: an owner pastes the block under Organization settings > Claude Code > Managed settings in claude.ai. Each developer approves the endpoint the next time Claude Code starts, and Claude Code exits for a developer who declines. A developer signed in with a Claude Console API key never gets managed settings, so they add the block themselves.
  • Cowork on Team or Enterprise: an owner opens Organization settings > Cowork in claude.ai and fills in three fields: OTLP endpoint with the value of OTEL_EXPORTER_OTLP_ENDPOINT in the block, OTLP protocol with http/json, and OTLP headers with the value of OTEL_EXPORTER_OTLP_HEADERS.

A block with six entries comes from before LevelFour collected activity. Add the two it lacks wherever you pasted it: "OTEL_METRICS_EXPORTER": "otlp" and "OTEL_METRIC_EXPORT_INTERVAL": "60000". They turn on Claude Code's metrics, which carry sessions, active time, edits, lines of code, commits and pull requests. The key in that block stays valid.

Verify

Run one prompt in Claude Code, then click Verify connection in the step. If your rollout takes days, close the dialog: the block waits for its first event on the Anthropic page, and you verify it there later.

The ingest key can write these reports and nothing else. What LevelFour keeps from Claude Code and Cowork lists what it stores and what it never reads.

A developer who has not added the settings, or who removes them, does not appear. LevelFour does not enforce collection.

What LevelFour keeps from Claude Code and Cowork

Claude Code and Cowork report each thing a developer does as an event or a counter. LevelFour adds it to a daily total and stores the total, never one row per event.

KeptAs a daily total of
UsageRequests, tokens by type and usage value, per person and model, and the share from the main loop, subagents, the SDK and background work
Sessions and active timeSessions started (fresh, resumed or continued) and time of active use
PromptsHow many, and their length in characters
ToolsCalls per tool, how many succeeded, the error type of those that failed, and how long they took
Tool approvalsCalls accepted or rejected, and what decided: configuration, a hook or a person
EditsEdits accepted or rejected, by programming language
MCP connectionsConnections and failures by scope and transport, and the time to connect
Plugins and skillsLoads and uses by name, as Claude Code sends the name
Permission modesEach change: the mode switched to and what triggered it
API errorsFailed requests by status code
SpeedResponse time and time to first token by model, and requests per effort level and in fast mode
OutputLines of code added and removed, commits and pull requests

LevelFour keeps usage, sessions, active time, prompt counts, API errors, lines of code, commits and pull requests per person. Every other total covers all developers together and carries no name.

Each person has one profile: the Claude Code version, terminal and operating system they last reported, their Claude organization ID, whether managed settings applied, and the first and last day they reported.

What LevelFour never reads

LevelFour never reads or stores:

  • the text of a prompt or a response
  • a tool's input or parameters
  • a command
  • file content
  • an error message

Claude Code redacts prompt and response text by default. If you turn that text on in Claude Code, LevelFour does not read it.

On a Team or Enterprise plan, Cowork sends prompt text, response text and tool input with its events by default, along with each person's email. LevelFour keeps the email to tell people apart and never stores the text. Anthropic's Cowork monitoring guide says how to stop Cowork sending the text.

Names Claude Code redacts by default

In Claude CodeArrives in LevelFour as
A third-party pluginthird-party
A custom skillcustom_skill
An MCP toolOne row, MCP tools, with no server or tool name

LevelFour shows them as they arrive. An official plugin, and a skill it ships, arrives under its real name.

Leave OTEL_LOG_TOOL_DETAILS off. It makes Claude Code send the real names, and commands and tool input along with them. LevelFour does not ask for it.

Repository names and team tags

Claude Code sends no repository name and no team until you turn them on. The block LevelFour generates holds neither, so add them yourself to the env object that holds the block.

To seeAdd to envCard that appears
Usage per repository"OTEL_METRICS_INCLUDE_REPOSITORY": "true"Usage by repository
Usage per team"OTEL_RESOURCE_ATTRIBUTES": "team=<name>", with one name per group of machinesUsage by team

Each card appears once data arrives with a repository or a team on it. LevelFour stores a repository as owner/name.

Sending through an OpenTelemetry Collector

You can put an OpenTelemetry Collector between Claude Code and LevelFour. Have it export OTLP over HTTP as JSON (http/json), to the endpoint and with the header from the block. LevelFour refuses protobuf, a batch over 2 MB, and a batch that holds more than 1,024 usage events or more than 1,024 other events or data points.

DataThrough a Collector
UsageKept for every request, whatever the batch holds
ActivityKept for the first 50 people a batch names. LevelFour leaves the rest out and says so in its answer to the Collector
A retried batchCounted once when the Collector sends the same batch again, as an exporter does on its own retry. A Collector that re-batches before it retries sends a different batch, and its activity counts twice. Usage counts once either way, because each request carries its own ID

What you see

Anthropic spend appears under Costs and Usage and on its own Anthropic board under Boards, which appears once a source is connected.

Group byClaude APIClaude EnterpriseClaude Code and Cowork usage
ModelThe model, or Web search, Code executionThe modelThe model
Workspace or productWorkspaceChat, Claude Code, Cowork and othersClaude Code or Cowork
Token typeInput, Output, Cache read, Cache writeNot reportedOn the board's tokens card
Key or personAPI key, or the person signed inPersonPerson

Billed and usage value

LevelFour keeps two figures apart, and a switch on the chart and the table chooses between them.

  • Billed is what Anthropic charges you through the Claude API and Claude Enterprise.
  • Usage value is Claude Code and Cowork usage priced at API list price. It estimates what that usage would cost per token, and it shows who uses Claude and how much. LevelFour never adds it to a billed total.

On a Team, Pro or Max plan there is no billed spend in LevelFour, and the usage value shows how the subscription is being used.

The Anthropic board

The board sorts its cards into groups, each under a heading. A card appears once it has data, and a heading appears once its group has a card.

Bill reads the Claude API and Claude Enterprise. Every other group reads what Claude Code and Cowork report, as it arrives and with the current day included. Under Costs and Usage, the usage value is as of the last daily sync.

Some cards need two or more people who have reported usage: with one person they have nothing to compare. The Needs column names them. The top-three lists of people inside other cards follow the same rule.

Bill

CardShowsNeeds
Spend summaryBilled spend month to date, last month, and the forecast for this month
Cost by modelBilled spend per model
Cost by workspace or productBilled spend per Claude Console workspace or Claude Enterprise product
Cost by token typeBilled spend on input, output, cache read and cache writeClaude API
Cost by key or personBilled spend per API key or person
List price versus after discountEach product at list price, beside the amount after your discountClaude Enterprise
Cost chart and tableBilled spend over time, and the same figures as rows
Active anomaliesUnusual jumps in billed spend

Usage

CardShowsNeeds
Usage value, active developers, requests and tokensThe totals for the period
Usage value per dayEach day's usage value
Tokens by typeInput, output, cache read and cache write tokens per day
Active developers per dayPeople with at least one request that day
Usage value by personPeople ranked, with each one's share of the total
Usage value by modelModels ranked, with each one's share of the total
Claude Code versus CoworkUsage value split by productCowork usage
Usage bandsHow many developers fall in each band of usage valueTwo or more people
ConcentrationThe usage value of the developers who used the most, about a tenth of them, against everyone elseTwo or more people
Cache efficiencyCache reads as a share of input tokens, per model and overall
Inactive developersPeople who reported before and have sent nothing for 14 days, and for 30Two or more people

Activity

CardShowsNeeds
Sessions per daySessions started each day: fresh, resumed or continued
Active timeTime of active use per day, and the three most active people
PromptsPrompts per developer and per session, and their average length
New and returning developersWho started in the period, and who came back after time awayTwo or more people

How Claude is used

CardShows
Tools used mostBash, Edit, Read, MCP tools and the rest, by number of calls
Tool success rateThe share of calls that succeeded, and the error types behind the failures
MCP connectionsConnections by scope and transport, failures, and time to connect
PluginsPlugins loaded, by name and version
SkillsSkills used, and whether a person or Claude started them
Subagents and SDKUsage value from the main loop, subagents, the SDK and background work

Trust and control

CardShowsNeeds
Edits accepted versus rejectedEdits accepted and rejected, by programming language
Tool approvalsTool calls accepted and rejected, and what decided: configuration, a hook or a person
Permission mode changesHow often developers switch mode per day, such as to auto-accept or planTwo or more people
Managed settings coverageDevelopers who run with organization-managed settings, and those who run withoutTwo or more people
Company versus other organizationsPeople and usage value in the Claude organization most of your developers report from, against every other organizationTwo or more Claude organizations

Speed and reliability

CardShows
Response time by modelTotal time and time to first token: the median and the 90th percentile
Rate limits and API errorsFailed requests per day by status code, rate limits among them, and the three people who hit the most
Slowest toolsAverage duration per tool
Effort and fast modeThe share of requests at each effort level and in fast mode

Output

CardShows
Lines of codeLines added and removed through Claude Code per day, and the three people with the most
Commits and pull requestsCommits and pull requests created through Claude Code per day, and the three people with the most

Fleet

CardShowsNeeds
Claude Code versionsVersions in use, and who is behind the newest of them
Terminals and IDEsWhere Claude Code runs: VS Code, iTerm, Cursor and the rest
Operating systemsmacOS, Linux and WindowsTwo or more people
Usage by repositoryUsage value per repositoryRepository names turned on
Usage by teamPeople and usage value per teamA team tag

Limits of the figures

  • One profile per person. Someone who runs two installs, such as a terminal and an editor extension on different versions, shows under whichever reported last.
  • Inactive developers ignores the period. The card counts from today, among people seen in the last 400 days.
  • Average prompt length can read low. Claude Code 2.1.288 and older send no prompt length, and LevelFour counts those prompts as empty.
  • Response times are estimates. LevelFour sorts each request's time into a range, then works out the median and the 90th percentile from the count in each range.

Confirming it worked

Each account you connect moves to Connected on the Anthropic page. Claude API and Claude Enterprise data appears in about an hour. Claude Code and Cowork usage turns Connected after the first prompt and Verify connection, and its figures appear on the board within minutes.

Rotating or removing access

Rotating a credential

Create a new key in Claude Console or claude.ai. On the Anthropic page under Connect Providers, click Rotate credential on the account, paste the new key, then revoke the old key at its source.

You cannot rotate an ingest key. Disconnect the Claude Code and Cowork usage source, keeping its data, generate the settings again, and replace the block wherever you pasted it.

Removing access

Click Disconnect on the account under Connect Providers, then revoke the key. An Admin API key is revoked from Claude Console's Settings > Admin keys; an Analytics key from claude.ai's Organization settings > API. Disconnecting the Claude Code and Cowork usage source stops its ingest key working at once. Remove the block from your settings so Claude Code stops sending.

Troubleshooting

SymptomWhat to do
LevelFour rejects the key you pastedA workspace-scoped API key is refused, whatever else it can do. The reporting endpoints take an Admin key (sk-ant-admin01-), an unscoped personal or service account key, or an OAuth token with the org:admin scope. On an individual Console account every key is refused, because Anthropic offers individual accounts no Admin API
Claude Console has no Admin keys page, or the link opens "Page not found"Your Console account is an individual account, which has no Admin keys and no cost report, so LevelFour cannot connect it. To see what Claude Code uses on it, pick Claude Pro or Max and connect Claude Code and Cowork usage
"Organization admin access required" when creating an Admin keyYou need the admin role on the Claude Console organization, not member access
The Claude Enterprise key cannot be createdOnly the Primary Owner can create an Analytics key with read:analytics. Ask them, or check that public API access is turned on
Claude Enterprise shows no data before January 2026Expected. Enterprise Analytics has no data before that date, regardless of when your organization started using Claude
The Claude Enterprise key is refused as belonging to another organizationThe Organization ID does not match the key. Copy both from the same page in claude.ai
A Claude API charge shows (no key)No API key or signed-in person used that model in that workspace on that day in the usage report. Code execution and Priority Tier are reported this way
Verify connection says no usage has arrivedCheck the block is in the settings Claude Code reads, restart Claude Code, and run one prompt. On managed settings, each developer has to approve the endpoint once
A developer is missing from the usage valueThey have not added the settings, or use Claude only through chat on claude.ai
Sessions, active time, edits, lines of code and commits are missing while other cards fillThe block in use has six entries. Add the two metrics entries under Claude Code and Cowork usage
A plugin shows as third-party, a skill as custom_skill, or every MCP tool as one rowExpected. Claude Code redacts these names by default
Usage by repository or Usage by team is not on the boardClaude Code sends neither until you turn it on
The settings block shows a placeholder where the key wasThe key is shown once. Disconnect the source, keeping its data, and generate the settings again

Next

On this page

Ask the FinOps Agent about your cloud spend