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

# Transfer ownership to a workspace member

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Makes an owner, admin, editor, or member of the app's workspace the app's owner right away, with no invitation.

Unlike [Start ownership transfer](/api-reference/start-ownership-transfer), the recipient doesn't have to accept. The app stays in its workspace, and only its owner changes. The new owner gets editor access, and the app's collaborators and published site stay as they are. The previous owner loses their direct access unless you set `keep_sender_as_collaborator`, though a workspace owner or admin keeps access through the workspace.

An app with a secret, or with a connected integration of its own, can't be transferred this way. Invite the new owner instead. An app with a pending ownership transfer, or one that's moving to another workspace, is rejected too.

You need to own the app, or be an owner or admin of its workspace with an Enterprise workspace or approved partner status.

This is limited to 30 requests a minute per workspace. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key. A read-only key is refused, and workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/ownership/transfer/workspace-member
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/ownership/transfer/workspace-member:
    post:
      summary: Transfer ownership to a workspace member
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Makes an owner, admin, editor, or member of the app's workspace the
        app's owner right away, with no invitation.


        Unlike [Start ownership
        transfer](/api-reference/start-ownership-transfer), the recipient
        doesn't have to accept. The app stays in its workspace, and only its
        owner changes. The new owner gets editor access, and the app's
        collaborators and published site stay as they are. The previous owner
        loses their direct access unless you set `keep_sender_as_collaborator`,
        though a workspace owner or admin keeps access through the workspace.


        An app with a secret, or with a connected integration of its own, can't
        be transferred this way. Invite the new owner instead. An app with a
        pending ownership transfer, or one that's moving to another workspace,
        is rejected too.


        You need to own the app, or be an owner or admin of its workspace with
        an Enterprise workspace or approved partner status.


        This is limited to 30 requests a minute per workspace. Some workspaces
        have a different limit.


        <Note>This endpoint accepts a personal API key. A read-only key is
        refused, and workspace API keys are not accepted.</Note>
      operationId: >-
        transfer_to_workspace_member_api_apps__app_id__ownership_transfer_workspace_member_post
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferToWorkspaceMemberRequest'
      responses:
        '200':
          description: The app, with its new owner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptTransferResponse'
        '400':
          description: >-
            The new owner doesn't exist, is you or the app's current owner, or
            has a disabled account, or the app is blocked, has a pending
            ownership transfer, is moving to another workspace, or has a secret
            or a connected integration of its own.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You can't manage ownership transfers for this app, the new owner
            isn't an owner, admin, editor, or member of the app's workspace, the
            app came from the marketplace, your API key is read-only, or you
            used a workspace API key.
        '404':
          description: >-
            The app doesn't exist, or it's outside the workspace or apps your
            API key is scoped to.
        '409':
          description: >-
            The app's owner or workspace changed while the transfer was being
            applied.
        '422':
          description: '`new_owner_user_id` is missing or empty.'
        '429':
          description: Rate limit reached. Retry later.
components:
  schemas:
    TransferToWorkspaceMemberRequest:
      properties:
        new_owner_user_id:
          type: string
          minLength: 1
          title: New Owner User Id
          description: >-
            ID of the Base44 user who becomes the owner. They have to be an
            owner, admin, editor, or member of the app's workspace.
          example: 6706af53b9c1e2004a37d85f
        keep_sender_as_collaborator:
          type: boolean
          title: Keep Sender As Collaborator
          description: >-
            Whether the app's current owner keeps editor access to the app after
            the transfer (`true`) or loses their direct access to it (`false`).
            An owner or admin of the workspace the app ends up in keeps access
            through that workspace either way. Defaults to `false`.
          default: false
          example: false
      type: object
      required:
        - new_owner_user_id
      title: TransferToWorkspaceMemberRequest
      description: The workspace member who becomes the app's owner.
    AcceptTransferResponse:
      properties:
        app_id:
          type: string
          title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        app_name:
          type: string
          title: App Name
          description: Name of the app.
          example: Acme CRM
        app_type:
          anyOf:
            - type: string
            - type: 'null'
          title: App Type
          description: >-
            Type of the app, for example `user_app` or `user_agent`, or `null`
            when it isn't set.
          example: user_app
        new_owner_id:
          type: string
          title: New Owner Id
          description: ID of the Base44 user who owns the app now.
          example: 6706af53b9c1e2004a37d85f
        target_workspace_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Workspace Id
          description: ID of the workspace the app is in.
          example: 67f2c8e01a3b5d004e92d7a1
      type: object
      required:
        - app_id
        - app_name
        - new_owner_id
      title: AcceptTransferResponse
      description: The app after its ownership changed.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````