---
title: "List team members"
method: GET
path: "/v3/teams/{teamId}/members"
tags: ["teams"]
---

# List team members

`GET /v3/teams/{teamId}/members`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v3/teams/{teamId}/members`
- Auth: HTTP bearer

Get a paginated list of team members for the provided team.

## Path parameters

- `teamId` string, required

## Query parameters

- `limit` number: Limit how many teams should be returned
- `since` number: Timestamp in milliseconds to only include members added since then.
- `until` number: Timestamp in milliseconds to only include members added until then.
- `search` string: Search team members by their name, username, and email.
- `role` 'OWNER' | 'MEMBER' | 'DEVELOPER' | 'SECURITY' | 'BILLING' | 'VIEWER' | 'VIEWER_FOR_PLUS' | 'CONTRIBUTOR': Only return members with the specified team role.
- `excludeProject` string: Exclude members who belong to the specified project.
- `eligibleMembersForProjectId` string: Include team members who are eligible to be members of the specified project.
- `slug` string

## Response `200`

- object
  - `emailInviteCodes` object[]
    - `accessGroups` string[]
    - `createdAt` number
    - `email` string
    - `entitlements` string[]
    - `expired` true
    - `id` string, required
    - `isDSyncUser` false | true, required
    - `projects` object
    - `role` 'BILLING' | 'CONTRIBUTOR' | 'DEVELOPER' | 'MEMBER' | 'OWNER' | 'SECURITY' | 'VIEWER' | 'VIEWER_FOR_PLUS'
    - `teamPermissions` string[]
    - `teamRoles` string[]
  - `members` object[], required
    - `accessRequestedAt` number: Timestamp in milliseconds for when this team member was accepted by an owner.
    - `avatar` string: ID of the file for the Avatar of this member.
    - `bitbucket` object: Information about the Bitbucket account of this user.
      - `login` string
    - `confirmed` false | true, required: Boolean that indicates if this member was confirmed by an owner.
    - `createdAt` number, required: Timestamp in milliseconds when this member was added.
    - `email` string, required: The email of this member.
    - `github` object: Information about the GitHub account for this user.
      - `login` string
    - `gitlab` object: Information about the GitLab account of this user.
      - `login` string
    - `isEnterpriseManaged` false | true: Indicates whether the user is managed by an enterprise.
    - `joinedFrom` object: Map with information about the members origin if they joined by requesting access.
      - `commitId` string
      - `dsyncConnectedAt` number
      - `dsyncUserId` string
      - `gitUserId` union
        - string
        - number
      - `gitUserLogin` string
      - `idpUserId` string
      - `origin` 'account-update' | 'bitbucket' | 'dsync' | 'feedback' | 'github' | 'gitlab' | 'import' | 'link' | 'mail' | 'nsnb-auto-approve' | 'nsnb-hobby-upgrade' | 'nsnb-invite' | 'nsnb-redeploy' | 'nsnb-redeploy-attribution-card' | 'nsnb-request-access' | 'nsnb-viewer-upgrade' | 'org-admin-sync' | 'organization-teams' | 'saml' | 'teams', required
      - `repoId` string
      - `repoPath` string
      - `ssoConnectedAt` number
      - `ssoUserId` string
    - `name` string: The name of this user.
    - `projects` object[]: Array of project memberships
      - `id` string, required
      - `name` string, required
      - `role` 'ADMIN' | 'PROJECT_DEVELOPER' | 'PROJECT_GUEST' | 'PROJECT_VIEWER'
    - `role` 'BILLING' | 'CONTRIBUTOR' | 'DEVELOPER' | 'MEMBER' | 'OWNER' | 'SECURITY' | 'VIEWER' | 'VIEWER_FOR_PLUS', required: Role of this user in the team.
    - `uid` string, required: The ID of this user.
    - `username` string, required: The unique username of this user.
  - `pagination` object, required
    - `count` number, required: Amount of items in the current page.
    - `hasNext` false | true, required
    - `next` number, nullable, required: Timestamp that must be used to request the next page.
    - `prev` number, nullable, required: Timestamp that must be used to request the previous page.

## Other responses

- `400`: One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `403`: You do not have permission to access this resource.
- `404`
- `410`

## Changes

- **2026-10-28** `ddb2b6193ceb`: 1 warning
  - added the new `org-admin-sync` enum value to the `members/items/joinedFrom/origin` response property for the response status `200`
- **2026-09-17** `10dff3be52ff`: 1 warning, 1 info
  - added the new `AiGatewayUser` enum value to the `emailInviteCodes/items/teamPermissions/items/` response property for the response status `200`
  - removed the `AiGatewayApiKeyOwnedBySelf` enum value from the `emailInviteCodes/items/teamPermissions/items/` response property for the response status `200`
- **2026-08-31** `e31ea8d3c1e7`: 2 warning
  - added the new `AiGatewayTranscriptsManager` enum value to the `emailInviteCodes/items/teamPermissions/items/` response property for the response status `200`
  - added the new `AiGatewayTranscriptsViewer` enum value to the `emailInviteCodes/items/teamPermissions/items/` response property for the response status `200`
- **2026-08-13** `6ed5b7605027`: 1 warning
  - added the new `WorkflowDecryptor` enum value to the `emailInviteCodes/items/teamPermissions/items/` response property for the response status `200`
- **2026-08-04** `ed45a5c919e5`: 1 warning
  - added the new `ConnectorManager` enum value to the `emailInviteCodes/items/teamPermissions/items/` response property for the response status `200`

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v3/teams/:teamId/members/get.md)

---

[API](https://skmtc.dev/vercel/apis/vercel-api.md) - [All operations](https://skmtc.dev/vercel/apis/vercel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/vercel-api/revisions/60686c0e1f6a?raw)
