Everyone in the team with their name, email, role, and join date, owners first, then admins, then members. Open to every member's key, like the team page in the app. The userId values are the memberIds the usage endpoints take.
Authorization
bearerAuth usage:readIn: header
Scope: usage:read
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/members"{ "data": [ { "userId": "string", "name": "string", "email": "string", "role": "owner", "joinedAt": "2019-08-24T14:15:22Z" } ]}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}List sessions by spend GET
Sessions with their all-time credit spend, runs and top model. Matches the Sessions card on the account usage page. sort is spend (default, by gross credits spent), runs, or newest. Any key may read session totals. memberId returns only that member's sessions and their share; another member's requires the key's member to be a team owner or admin, and only those keys receive contributors. A deleted session keeps its spend and is returned with deleted: true. Returns usage_breakdown_unavailable (409) until the workspace's usage history has been indexed.
List credit log entries GET
Individual credit charges and refunds, newest first. Matches the credit log on the account usage page. The window is range (default month, the same UTC buckets as GET /usage/breakdown) or createdAfter/createdBefore; combining the two returns unsupported_filter_combination. Entries name the member who spent, so listing other members' entries requires the key's member to be a team owner or admin; anyone else passes their own user id (actor.userId from GET /me) as memberIds. source narrows to API-key (api) or hosted-connector (mcp) spend; because the source is derived per entry, a page can then hold fewer than limit entries while nextCursor is still set. For totals over the same filters use GET /usage/breakdown.