API Reference
Log In
API Reference

List Per-Person Analytics

Retrieves cost per person for the authenticated user's organization, one row per person,
for providers that attribute spend to a person at the source.

Cost only. Token counts, request counts and per-million figures have no source on this
path and come back absent rather than zero. Spend attributed to nobody is not a row here.

Envelope: totalCost is every provider's spend for the period, as on the sibling
views. peopleTotalCost is the part the rows carry, summed over every page, and
userCostRemainder names the rest: emailWithoutPersonId (a provider such as Cursor
recorded an address but no person id), outsideDeveloperReport (GitHub Copilot spend
outside its per-person report), enterpriseNotAttributed (Claude Enterprise spend the
vendor attributed to no person) and apiKeysAndWorkspaces (everything else). The five
parts add up to totalCost. Both fields follow the period, provider, usageType and
apiKey filters and ignore query, minCost, maxCost and paging.

provider: only anthropic_enterprise and github_copilot return rows, because
they are the providers that attribute spend to a person today. Any other value, including
anthropic and openai, returns an empty page rather than an error.

usageType: filtering narrows a person to that one type, and the provider writes
its non-token charges under their own type names, so a filter drops them from the
person's total. Omit it for a person's whole cost.

sort: totalCost (default, descending), userId, userEmail, userLogin,
provider, percentage, creditsApplied. These are the aggregate names, not the
response field names, and an unknown key fails the request with 400.

All costs are in USD.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string
required

ID of the team that owns this data.

string
enum
required

Time period for analytics

Allowed:
string

Filter start date/time in ISO 8601 format.

string

Filter end date/time in ISO 8601 format.

string
enum

Filter results by AI provider. Omit to include all providers.

string
enum

Filter by usage type. Omit to include all types.

Allowed:
string

Narrow results to a single API key id within the caller's organization, matched exactly. Honoured by /billing/chart, /billing/models, /billing/api-keys and /billing/users; other billing endpoints ignore it. On those four, rows and totals cover only charges stored under that id, so a value that matches no stored charge returns a zero total, never the organization total.

number
≥ 0

Filter by a starting cost (inclusive).

number
≥ 0

Filter by an ending cost (inclusive).

string

Search query matched against any address, or any handle, the person carried during the period

integer
≥ 0
Defaults to 0

Zero-based page index (0..N)

integer
≥ 1
Defaults to 20

The size of the page to be returned

sort
array of strings
Defaults to totalCost,DESC,userId,DESC

Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

sort
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
*/*