Skip to main content

List Users (Admin)

List org members + invited users with role, status, API key count, and lifetime credit usage. Supports filtering and cursor pagination. Requires an admin-scoped API key.

Parameters

NameTypeDefaultDescription
rolestring-Filter by role.
statusstring-Filter by membership status. active = team_membership exists; invited = unexpired sent invitation.
limitinteger-Page size (1-500, default 100).
cursorstring-Opaque pagination cursor returned in nextCursor of a prior page.

Use Cases

  • Who is in the org, with their role, status, and lifetime credit usage?
  • List pending (invited-but-not-accepted) users
  • Find all org admins — filter by role

Example Usage

First page of all members and invites

{
"tool": "admin_list_users",
"arguments": {}
}

Only active admins

{
"tool": "admin_list_users",
"arguments": {
"role": "admin",
"status": "active"
}
}

Pending invitations

{
"tool": "admin_list_users",
"arguments": {
"status": "invited"
}
}

Response Format

FieldTypeDescription
usersarrayUsers page (up to limit items). Use nextCursor to fetch the next page.
users[].userIdstring | nullID of the public.users row. Null for invited-only rows that have no public.users row yet.
users[].emailstring
users[].namestring | null
users[].rolestring
users[].statusstringactive = team_membership row exists; invited = unexpired team_invitations row with status='sent'.
users[].createdAtstringISO timestamp; team_membership.createdAt for active, invitation.sentAt for invited.
users[].apiKeyCountintegerCount of non-system-managed API keys for this user in this org.
users[].lifetimeCreditsnumberAll-time sum of credits consumed by this user × org across all tool_metering rows. Rounded to 6 decimals.
nextCursorstring | nullOpaque cursor for the next page; null when no more results.