---
title: "Resend ownership transfer"
method: POST
path: "/api/apps/{app_id}/ownership/transfer/resend"
---

# Resend ownership transfer

`POST /api/apps/{app_id}/ownership/transfer/resend`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/ownership/transfer/resend`
- Auth: HTTP bearer

<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 when the app's owner or a workspace admin invites a new owner by email, with [Start ownership transfer](/api-reference/start-ownership-transfer) or in the builder. 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. Starting a transfer 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>

## Path parameters

- `app_id` string, required: ID of the app.

## Response `200`

The transfer, with its new expiry.

- PendingOwnershipTransfer: An ownership transfer waiting for its recipient to accept it.
  - `id` string, required: ID of the ownership transfer.
  - `app_id` string, required: ID of the app being transferred.
  - `new_owner_email` string, required: Email address the transfer invitation was sent to.
  - `status` string, required: Either `pending`, while the invitation waits for the recipient, or `accepting`, while the recipient's acceptance is being applied.
  - `expires_at` string, required: When the invitation expires, as a UTC timestamp in ISO 8601 format. The recipient can't accept it after that.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You can't manage ownership transfers for this app, your API key is read-only, or you used a workspace API key.
- `404`: 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`: The app's owner or workspace has changed since the transfer was sent, or the app has been blocked.
- `429`: Invitation email limit reached. Retry later.

## Changes

> 58 revisions in range; 1 not diffed.

- **2026-10-12** `5e139db2e643`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-09-28** `347e2afcf94a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/ownership/transfer/resend/post.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/fa29e915c226?raw)
