Claude Enterprise seats
Each member as a code, not a name. Each person's cost and tokens, by model. Claude Code commits, and the skills and connectors used. All but the members need read:analytics. Never conversations, prompts or project names.
Access
- Kind
- A read-only key you paste
- What to give
- Claude Enterprise API key
- Why that one
- A key the primary owner creates in claude.ai under Organization settings → API, with read:members for the roster and read:analytics for activity, cost and usage. Tested first, then stored encrypted; shown only as its last four characters.
What it attributes on its own
- From the source
- seat holder (hashed); organization role; the day the seat started; seat-days in the period; with an Analytics key: cost and tokens per person, model, product and day; Claude Code commits, pull requests and lines; skills, connectors and projects used
- Needs a rule or a trace
- who was active, cost and tokens, unless an Analytics key is entered; a dollar figure per seat from Anthropic — on a seat plan the contract price is the price; cost of the last thirty days is not final: Anthropic revises it and each sync reads it again; Claude Code used through Amazon Bedrock, which this API does not report; outcome
The addresses it calls
- https://api.anthropic.com/v1/organizations/users
- https://api.anthropic.com/v1/organizations/analytics/
Valistry calls only these addresses. It blocks any other call and logs every call.
Connecting it
- Create a key with two scopes. Organization settings → API. Turn on API access, then + Create key. Open ↗
- Find your seat price. Look on your Claude Enterprise order form: the monthly price per seat.
Without read:analytics, the seats are counted but an idle seat cannot be told from a busy one. Where your people use Claude Code, the Anthropic usage source has their activity, matched to the same person.