---
title: "List team members"
method: GET
path: "/team_members"
tags: ["Team"]
---

# List team members

`GET /team_members`

## Request

- Base URL: `https://api.llmpulse.ai/api/v1`
- URL: `https://api.llmpulse.ai/api/v1/team_members`
- Auth: API key in header `Authorization`

Lists the account owner first, then every team member who joined, with their access level (permission_role, account role and the resulting permissions), co-owner and billing flags, project access, status (active or blocked) and last sign-in. Pending invitations are listed by GET /team_invitations; GET /account limits.team_members.used counts both. Available to the account owner, co-owners and team members with the Team Members permission. A key limited to some projects answers ERR_KEY_PROJECT_SCOPED: the team belongs to the whole account.

## Query parameters

- `page` integer
- `per_page` integer

## Response `200`

OK

- object
  - `page` integer
  - `per_page` integer
  - `total` integer
  - `data` TeamMember[]
    - `id` integer, required
    - `email` string, required
    - `name` string, nullable
    - `role` 'owner' | 'member', required: The account owner is listed first; everyone else who joined is a member.
    - `status` 'active' | 'blocked', required: A blocked member cannot sign in or use the API until unblocked in the app.
    - `permission_role` string, nullable, required: Access level of a member: full_access, view_only, custom or account_role. Null for the owner.
    - `account_role` TeamAccountRole, nullable, required: The account role the person follows, when permission_role is account_role; null otherwise.
      - `id` integer, required
      - `name` string, required
    - `permissions` TeamPermissions, nullable, required: What the person can do, feature key to the verbs granted (read, create, update, delete), resolved from their role. Null for the account owner, who can do everything.
    - `account_admin` boolean, required: A co-owner, who can manage the team.
    - `billing_access` boolean, required: Can open Billing and Plans (always true for the owner).
    - `all_projects` boolean, required: Has access to every project of the account, including future ones.
    - `project_ids` integer[], required: The projects a member is limited to; empty when all_projects is true.
    - `last_sign_in_at` string, date-time, nullable
    - `joined_at` string, date-time, nullable: When the member accepted the invitation; null for the owner and for members added without one.
    - `created_at` string, date-time
  - `request_id` string

## Other responses

- `401`: Authentication failed
- `403`: A key limited to some projects answers ERR_KEY_PROJECT_SCOPED, since the team belongs to the whole account. A team member without the Team Members permission, or asking for something only the owner or a co-owner can do, answers ERR_INSUFFICIENT_PERMISSION, and a write with a read-only key ERR_INSUFFICIENT_SCOPE, with the same status

## Changes

- **2026-10-11** `82f2d44c22e5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/llmpulse/apis/llm-pulse-api/changes/team_members/get.md)

---

[API](https://skmtc.dev/llmpulse/apis/llm-pulse-api.md) - [All operations](https://skmtc.dev/llmpulse/apis/llm-pulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/llmpulse/apis/llm-pulse-api/revisions/38a31f123641?raw)
