> ## 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.reclaim

> Reclaims a delegated profile and returns it to the deactivated pool. The previous assignee is reported in `previous_delegate`. Cannot be called on a profile that is not currently delegated.

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

<Tip>
  **Profile must be currently delegated:** Returns `failed_precondition` if the `team_user_id` has no current assignee. Inspect `delegated_to` on [team.user.detail](/enterprise/v2/team.user.detail) before calling.

  **Reversible:** The reclaimed profile returns to the deactivated pool unchanged — it can be re-delegated later via [team.user.delegate](/enterprise/v2/team.user.delegate).

  **`previous_delegate`:** The response always reports the assignee that the profile was reclaimed from, so you can audit the change against your IDP records.

  **Bulk reclaim is automatic:** Deactivating or removing the assignee reclaims everything they hold in one go — see [team.user.update](/enterprise/v2/team.user.update) and [team.user.remove](/enterprise/v2/team.user.remove) — so this endpoint is only needed for one-off reassignments.

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


## OpenAPI

````yaml POST /v2/team.user.reclaim
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.reclaim:
    post:
      summary: ReclaimProfile
      description: >-
        Reclaims a delegated profile and returns it to the deactivated pool. The
        previous assignee is reported in `previous_delegate`. Cannot be called
        on a profile that is not currently delegated.
      operationId: team.v2.TeamUserManagementApiV2Service.ReclaimProfile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - team_user_id
              properties:
                team_user_id:
                  type: string
                  minLength: 1
                  maxLength: 64
                  description: ID of the delegated profile to reclaim.
                  example: '123456'
      responses:
        '200':
          description: Profile reclaimed successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    example: true
                  request_id:
                    type: string
                  user:
                    $ref: '#/components/schemas/User'
                  previous_delegate:
                    type: string
                    description: >-
                      `team_user_id` the profile was delegated to before the
                      reclaim.
        4XX:
          description: >-
            Error response. `failed_precondition` if the profile is not
            currently delegated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    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.
    UserStatus:
      type: string
      description: Status of a team member.
      enum:
        - USER_STATUS_ACTIVE
        - USER_STATUS_INACTIVE
        - USER_STATUS_REMOVED
    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

````