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

# Resend ownership transfer

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

Sends the app's pending ownership transfer invitation to its recipient again.

A transfer starts in the builder, when the app's owner or a workspace admin invites a new owner by email. The recipient gets an email with a link, and the transfer completes only once they sign in and accept it. Nothing about the app changes until then. An invitation expires 7 days after it's sent. Resending restarts those 7 days, including for an invitation that already expired. The link in earlier emails keeps working. Check which transfer is pending with [Get pending ownership transfer](/api-reference/get-pending-ownership-transfer).

A transfer can't be resent once the recipient has started accepting it, or once the app's owner or workspace has changed since it was sent.

You need to own the app or be an owner or admin of its workspace. A workspace admin who doesn't own the app also needs an Enterprise workspace or approved partner status. For a transfer to someone outside the workspace, the owner has to be a workspace owner or admin too, with the same Enterprise or partner requirement.

Invitation emails are limited to 5 an hour and 20 a day per caller, and to 3 an hour and 10 a day per recipient. Inviting a new owner in the builder counts toward the same limits.

<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/resend
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/resend:
    post:
      summary: Resend ownership transfer
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Sends the app's pending ownership transfer invitation to its recipient
        again.


        A transfer starts in the builder, when the app's owner or a workspace
        admin invites a new owner by email. The recipient gets an email with a
        link, and the transfer completes only once they sign in and accept it.
        Nothing about the app changes until then. An invitation expires 7 days
        after it's sent. Resending restarts those 7 days, including for an
        invitation that already expired. The link in earlier emails keeps
        working. Check which transfer is pending with [Get pending ownership
        transfer](/api-reference/get-pending-ownership-transfer).


        A transfer can't be resent once the recipient has started accepting it,
        or once the app's owner or workspace has changed since it was sent.


        You need to own the app or be an owner or admin of its workspace. A
        workspace admin who doesn't own the app also needs an Enterprise
        workspace or approved partner status. For a transfer to someone outside
        the workspace, the owner has to be a workspace owner or admin too, with
        the same Enterprise or partner requirement.


        Invitation emails are limited to 5 an hour and 20 a day per caller, and
        to 3 an hour and 10 a day per recipient. Inviting a new owner in the
        builder counts toward the same limits.


        <Note>This endpoint accepts a personal API key. A read-only key is
        refused, and workspace API keys are not accepted.</Note>
      operationId: resend_transfer_api_apps__app_id__ownership_transfer_resend_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
      responses:
        '200':
          description: The transfer, with its new expiry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingOwnershipTransfer'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You can't manage ownership transfers for this app, your API key is
            read-only, or you used a workspace API key.
        '404':
          description: >-
            The app doesn't exist, it's outside the workspace or apps your API
            key is scoped to, it has no pending transfer, or the recipient has
            started accepting it.
        '409':
          description: >-
            The app's owner or workspace has changed since the transfer was
            sent, or the app has been blocked.
        '429':
          description: Invitation email limit reached. Retry later.
components:
  schemas:
    PendingOwnershipTransfer:
      properties:
        id:
          type: string
          title: Id
          description: ID of the ownership transfer.
          example: 68d4b1e9c2a7f3001e5b8c40
        app_id:
          type: string
          title: App Id
          description: ID of the app being transferred.
          example: 6820f3a4e7b91d003c45a1f2
        new_owner_email:
          type: string
          title: New Owner Email
          description: Email address the transfer invitation was sent to.
          example: jane@acme.com
        status:
          type: string
          title: Status
          description: >-
            Either `pending`, while the invitation waits for the recipient, or
            `accepting`, while the recipient's acceptance is being applied.
          example: pending
        expires_at:
          type: string
          title: Expires At
          description: >-
            When the invitation expires, as a UTC timestamp in ISO 8601 format.
            The recipient can't accept it after that.
          example: '2026-10-05T09:23:41.512000Z'
      type: object
      required:
        - id
        - app_id
        - new_owner_email
        - status
        - expires_at
      title: PendingOwnershipTransfer
      description: An ownership transfer waiting for its recipient to accept it.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````