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 plan | What you pay | Connect | What you see |
|---|---|---|---|
| Claude API, in a Claude Console organization | Per token | Claude API | Your bill by model, workspace, token type and API key |
| Claude API on an individual Console account | Per token | Claude Code and Cowork usage, picked as Claude Pro or Max | What 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-based | Per token | Claude Enterprise | Your bill by model, product and person, at list price and after your discount |
| Claude Enterprise, seat-based | Seats, plus usage credits | Claude Enterprise and Claude Code and Cowork usage | Your usage credits by person, and who uses Claude, with which model, and how much |
| Team | Seats, plus usage credits | Claude Code and Cowork usage | Who uses Claude, with which model, and how much |
| Pro and Max | A monthly subscription, plus usage credits | Claude Code and Cowork usage | What 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
| Source | History on connect | First data | Not included |
|---|---|---|---|
| Claude API | 180 days, by day | About an hour | Priority Tier and tax |
| Claude Enterprise | 180 days, by day, no earlier than January 1, 2026 | About an hour | Seat fees. On a seat-based plan Anthropic reports usage credits only |
| Claude Code and Cowork usage | From the day the settings are added. Claude Code reports nothing earlier | A few minutes after you verify | Your 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 pick | Step it adds |
|---|---|
| Claude API | Claude API: an Admin API key. Claude Code: a settings block, optional |
| Claude Enterprise | Claude Enterprise: an Analytics API key. Claude Code and Cowork: a settings block, optional |
| Claude Team | Claude Code and Cowork: a settings block |
| Claude Pro or Max, or Claude Code on your own API key | Claude 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.
{
"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
envobject of~/.claude/settings.json, next to what is already there. If the file has noenv, add the wholeenvobject. - 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_ENDPOINTin the block, OTLP protocol withhttp/json, and OTLP headers with the value ofOTEL_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.
| Kept | As a daily total of |
|---|---|
| Usage | Requests, 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 time | Sessions started (fresh, resumed or continued) and time of active use |
| Prompts | How many, and their length in characters |
| Tools | Calls per tool, how many succeeded, the error type of those that failed, and how long they took |
| Tool approvals | Calls accepted or rejected, and what decided: configuration, a hook or a person |
| Edits | Edits accepted or rejected, by programming language |
| MCP connections | Connections and failures by scope and transport, and the time to connect |
| Plugins and skills | Loads and uses by name, as Claude Code sends the name |
| Permission modes | Each change: the mode switched to and what triggered it |
| API errors | Failed requests by status code |
| Speed | Response time and time to first token by model, and requests per effort level and in fast mode |
| Output | Lines 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 Code | Arrives in LevelFour as |
|---|---|
| A third-party plugin | third-party |
| A custom skill | custom_skill |
| An MCP tool | One 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 see | Add to env | Card 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 machines | Usage 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.
| Data | Through a Collector |
|---|---|
| Usage | Kept for every request, whatever the batch holds |
| Activity | Kept for the first 50 people a batch names. LevelFour leaves the rest out and says so in its answer to the Collector |
| A retried batch | Counted 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 by | Claude API | Claude Enterprise | Claude Code and Cowork usage |
|---|---|---|---|
| Model | The model, or Web search, Code execution | The model | The model |
| Workspace or product | Workspace | Chat, Claude Code, Cowork and others | Claude Code or Cowork |
| Token type | Input, Output, Cache read, Cache write | Not reported | On the board's tokens card |
| Key or person | API key, or the person signed in | Person | Person |
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
| Card | Shows | Needs |
|---|---|---|
| Spend summary | Billed spend month to date, last month, and the forecast for this month | |
| Cost by model | Billed spend per model | |
| Cost by workspace or product | Billed spend per Claude Console workspace or Claude Enterprise product | |
| Cost by token type | Billed spend on input, output, cache read and cache write | Claude API |
| Cost by key or person | Billed spend per API key or person | |
| List price versus after discount | Each product at list price, beside the amount after your discount | Claude Enterprise |
| Cost chart and table | Billed spend over time, and the same figures as rows | |
| Active anomalies | Unusual jumps in billed spend |
Usage
| Card | Shows | Needs |
|---|---|---|
| Usage value, active developers, requests and tokens | The totals for the period | |
| Usage value per day | Each day's usage value | |
| Tokens by type | Input, output, cache read and cache write tokens per day | |
| Active developers per day | People with at least one request that day | |
| Usage value by person | People ranked, with each one's share of the total | |
| Usage value by model | Models ranked, with each one's share of the total | |
| Claude Code versus Cowork | Usage value split by product | Cowork usage |
| Usage bands | How many developers fall in each band of usage value | Two or more people |
| Concentration | The usage value of the developers who used the most, about a tenth of them, against everyone else | Two or more people |
| Cache efficiency | Cache reads as a share of input tokens, per model and overall | |
| Inactive developers | People who reported before and have sent nothing for 14 days, and for 30 | Two or more people |
Activity
| Card | Shows | Needs |
|---|---|---|
| Sessions per day | Sessions started each day: fresh, resumed or continued | |
| Active time | Time of active use per day, and the three most active people | |
| Prompts | Prompts per developer and per session, and their average length | |
| New and returning developers | Who started in the period, and who came back after time away | Two or more people |
How Claude is used
| Card | Shows |
|---|---|
| Tools used most | Bash, Edit, Read, MCP tools and the rest, by number of calls |
| Tool success rate | The share of calls that succeeded, and the error types behind the failures |
| MCP connections | Connections by scope and transport, failures, and time to connect |
| Plugins | Plugins loaded, by name and version |
| Skills | Skills used, and whether a person or Claude started them |
| Subagents and SDK | Usage value from the main loop, subagents, the SDK and background work |
Trust and control
| Card | Shows | Needs |
|---|---|---|
| Edits accepted versus rejected | Edits accepted and rejected, by programming language | |
| Tool approvals | Tool calls accepted and rejected, and what decided: configuration, a hook or a person | |
| Permission mode changes | How often developers switch mode per day, such as to auto-accept or plan | Two or more people |
| Managed settings coverage | Developers who run with organization-managed settings, and those who run without | Two or more people |
| Company versus other organizations | People and usage value in the Claude organization most of your developers report from, against every other organization | Two or more Claude organizations |
Speed and reliability
| Card | Shows |
|---|---|
| Response time by model | Total time and time to first token: the median and the 90th percentile |
| Rate limits and API errors | Failed requests per day by status code, rate limits among them, and the three people who hit the most |
| Slowest tools | Average duration per tool |
| Effort and fast mode | The share of requests at each effort level and in fast mode |
Output
| Card | Shows |
|---|---|
| Lines of code | Lines added and removed through Claude Code per day, and the three people with the most |
| Commits and pull requests | Commits and pull requests created through Claude Code per day, and the three people with the most |
Fleet
| Card | Shows | Needs |
|---|---|---|
| Claude Code versions | Versions in use, and who is behind the newest of them | |
| Terminals and IDEs | Where Claude Code runs: VS Code, iTerm, Cursor and the rest | |
| Operating systems | macOS, Linux and Windows | Two or more people |
| Usage by repository | Usage value per repository | Repository names turned on |
| Usage by team | People and usage value per team | A 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
| Symptom | What to do |
|---|---|
| LevelFour rejects the key you pasted | A 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 key | You need the admin role on the Claude Console organization, not member access |
| The Claude Enterprise key cannot be created | Only 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 2026 | Expected. 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 organization | The 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 arrived | Check 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 value | They 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 fill | The 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 row | Expected. Claude Code redacts these names by default |
| Usage by repository or Usage by team is not on the board | Claude Code sends neither until you turn it on |
| The settings block shows a placeholder where the key was | The key is shown once. Disconnect the source, keeping its data, and generate the settings again |
Next
- Connect Providers lists every provider you can connect
- OpenAI connects with a single Admin key