> ## Documentation Index
> Fetch the complete documentation index at: https://docs.manus.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# team.user.list

> Lists team members with optional status / delegation filters. Default page size is 100, max 1000.

<sup>Questions or issues? Contact us at [api-support@manus.ai](mailto:api-support@manus.ai).</sup>

<Tip>
  **Pagination:** Offset-based — `limit` defaults to 100, max 1000; `offset` defaults to 0. Use `total` from the response to compute the page count.

  **Filtering:** `status_filter` and `delegation_state` can be combined. Omit either to disable that filter.

  **Delegation expansion:** `delegated_profiles[]` is **omitted** in list responses to avoid N+1 fan-out. Call [team.user.detail](/enterprise/v2/team.user.detail) to see what is delegated to a specific user.

  **Protocols:** Also callable via Connect RPC. See [Protocols](/enterprise/v2/protocols).
</Tip>


## OpenAPI

````yaml GET /v2/team.user.list
openapi: 3.1.0
info:
  title: Manus Team User Management OpenAPI v2
  description: >-
    API for enterprise tenant administrators to manage team members
    programmatically (SailPoint, Okta, custom IDP integrations). All responses
    are wrapped with `{"ok": true, "request_id": "...", ...}` for success and
    `{"ok": false, "request_id": "...", "error": {"code": "...", "message":
    "..."}}` for errors. Every operation is callable via REST (paths below) or
    via Connect RPC at `/team.v2.TeamUserManagementApiV2Service/<Method>`.
  version: 2.0.0
servers:
  - url: https://api.manus.im
security:
  - ApiKeyAuth: []
paths:
  /v2/team.user.list:
    get:
      summary: ListUsers
      description: >-
        Lists team members with optional status / delegation filters. Default
        page size is 100, max 1000.
      operationId: team.v2.TeamUserManagementApiV2Service.ListUsers
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            format: int32
            description: Number of records to return. Defaults to 100.
            default: 100
            minimum: 1
            maximum: 1000
            example: 100
        - name: offset
          in: query
          schema:
            type: integer
            format: int32
            description: Number of records to skip. Defaults to 0.
            default: 0
            minimum: 0
            example: 0
        - name: status_filter
          in: query
          schema:
            $ref: '#/components/schemas/UserStatus'
            description: Filter by user status. Omit to include all statuses.
        - name: delegation_state
          in: query
          schema:
            $ref: '#/components/schemas/DelegationState'
            description: Filter by delegation relationship. Omit to include all.
      responses:
        '200':
          description: Team members retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    example: true
                    description: Whether the request was successful.
                  request_id:
                    type: string
                    description: Unique identifier for this API request.
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                    description: >-
                      Page of team members. `delegated_profiles[]` is omitted in
                      list responses to avoid N+1 fan-out — call
                      [team.user.detail](/enterprise/v2/team.user.detail) for
                      the expanded view.
                  total:
                    type: integer
                    format: int32
                    description: >-
                      Total number of records matching the filter (across all
                      pages).
                  limit:
                    type: integer
                    format: int32
                    description: Echo of the applied limit.
                  offset:
                    type: integer
                    format: int32
                    description: Echo of the applied offset.
        4XX:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    UserStatus:
      type: string
      description: Status of a team member.
      enum:
        - USER_STATUS_ACTIVE
        - USER_STATUS_INACTIVE
        - USER_STATUS_REMOVED
    DelegationState:
      type: string
      description: >-
        Filter for delegation relationships when calling
        [team.user.list](/enterprise/v2/team.user.list).
        `DELEGATION_STATE_DELEGATED` matches profiles currently delegated to
        another member; `HAS_DELEGATES` matches members with at least one
        profile delegated to them; `NONE` matches members with no delegation
        relationship.
      enum:
        - DELEGATION_STATE_DELEGATED
        - DELEGATION_STATE_HAS_DELEGATES
        - DELEGATION_STATE_NONE
    User:
      type: object
      description: A team member.
      properties:
        email:
          type: string
          description: >-
            Email address. After delegation this field becomes
            `delegate-xxx@manus.im` — the pre-delegation address is preserved in
            `original_email`.
        status:
          $ref: '#/components/schemas/UserStatus'
        role:
          $ref: '#/components/schemas/TeamMemberRole'
        user_name:
          type: string
          description: >-
            Display name. Sourced from `team_user_relation.Name` (set via
            [team.user.rename](/enterprise/v2/team.user.rename)) when present,
            otherwise falls back to the underlying user's name. Omitted when
            neither is set.
        team_user_id:
          type: string
          description: >-
            Stable identifier for the team member, unique within the team. Use
            this (not `email`) for any subsequent profile-management call.
        delegated_to:
          type: string
          description: >-
            If this profile is currently delegated, the `team_user_id` of the
            assignee.
        delegated_profiles:
          type: array
          items:
            $ref: '#/components/schemas/DelegatedProfile'
          description: >-
            Profiles delegated to this user. Only populated by single-record
            responses ([team.user.detail](/enterprise/v2/team.user.detail),
            [team.user.update](/enterprise/v2/team.user.update), etc.).
            [team.user.list](/enterprise/v2/team.user.list) omits this field to
            avoid N+1 fan-out.
        original_email:
          type: string
          description: Pre-delegation email. Only present for currently-delegated profiles.
    ErrorResponse:
      type: object
      description: Standard error response format returned when a request fails.
      properties:
        ok:
          type: boolean
          example: false
          description: Always false for error responses.
        request_id:
          type: string
          description: >-
            Unique identifier for this API request, useful for debugging with
            support.
        error:
          type: object
          description: Error details.
          properties:
            code:
              type: string
              description: >-
                Machine-readable error code: `invalid_argument`, `not_found`,
                `already_exists`, `permission_denied`, `failed_precondition`, or
                `internal`.
            message:
              type: string
              description: Human-readable error description.
    TeamMemberRole:
      type: string
      description: >-
        Team role. `TEAM_MEMBER_ROLE_OWNER` is read-only and cannot be granted
        via API (transfer ownership in the UI). Guest members do not consume a
        paid seat.
      enum:
        - TEAM_MEMBER_ROLE_OWNER
        - TEAM_MEMBER_ROLE_ADMIN
        - TEAM_MEMBER_ROLE_MEMBER
        - TEAM_MEMBER_ROLE_SUPER_ADMIN
        - TEAM_MEMBER_ROLE_GUEST
    DelegatedProfile:
      type: object
      description: A profile delegated to another team member.
      properties:
        team_user_id:
          type: string
          description: ID of the delegated profile.
        display_name:
          type: string
          description: >-
            Display name. Falls back to the original (pre-delegation) email when
            the profile has no name set.
        role:
          $ref: '#/components/schemas/TeamMemberRole'
        delegated_at:
          type: string
          format: date-time
          description: When the delegation was created.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````