Restore deleted app

Changed on

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

Takes an app out of the trash, up to 30 days after Delete app put it there.

You can restore an app you own, and a workspace admin can restore any app in the workspace. You must still be a member of the app's workspace, and the workspace must have room under its plan's app limit.

The app comes back with its entity records. If its owner left the workspace while it was in the trash, the workspace owner becomes its owner, and collaborators who left don't get their access back. If another app took its slug, it moves to a free one, returned as new_slug. Its backend functions are deployed again, and an app that was published goes live again.

<Warning>Restoring doesn't reconnect the resources the delete released, such as custom domains and OAuth connections. Read reconnect_needed to see what to set up again.</Warning>

The whole restore runs before you get a response, so the call takes longer on an app with many backend functions. A restore can't be repeated: once the app is out of the trash, calling this again returns a 409.

This is limited to 10 requests per minute. A signed-in session has its own limit, and every personal access token for the workspace shares one. 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>

post/api/apps-trash/{app_id}/restore

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/apps-trash/{app_id}/restore
  • Auth: HTTP bearer

Path parameters

app_idstring required

ID of the app to restore, as returned by Delete app.

Response

The app is back, and what still needs reconnecting.

app_idstring required

ID of the restored app.

entities_undeletedinteger

Number of entity records brought back with the app.

new_slugstring nullable

The app's new slug when another app took its old one while it was in the trash, or null when the app kept its slug.

functions_redeployedboolean

Whether the app's backend functions were deployed again. When false, reconnect_needed includes functions. true for an app with no functions.

reconnect_neededstring[]

What you still need to do. It has the deleted_resources values from Delete app, which the restore doesn't rebuild, plus functions when the backend functions didn't deploy, republish when the published app needs a new deploy to run its functions, and runtime when the published app isn't reachable yet. Base44 retries that last one in the background.

Example response

{
  "app_id": "6820f3a4e7b91d003c45a1f2",
  "entities_undeleted": 128,
  "new_slug": "acme-crm-6820f3a4",
  "functions_redeployed": true,
  "reconnect_needed": [
    "domains"
  ]
}

Changes