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

# Change, archive, and delete apps

> Update an app's details, hide it and bring it back, or delete it permanently.

Complete the [authentication setup](https://docs.canary.effectiveai.app/getting-started/authentication.md). Each step names the
permission it needs; [Get an app](https://docs.canary.effectiveai.app/api-reference/apps/get-an-app.md) lists yours in `permissions`.
The examples use the app from [Build and deploy an app](https://docs.canary.effectiveai.app/guides/apps/build-an-app.md).

## Change details

Changing the title, description, or icon needs `build`:

```bash theme={null}
curl --request PATCH \
  --url "https://api.canary.effectiveai.app/api/v2/apps/app-claims-notes" \
  --header "Authorization: Bearer $EFFECTIVE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{ "description": "Notes on open claims", "iconEmoji": "🗂️" }'
```

The response is the updated app. Omitted fields stay the same, and `null` clears one.

## Archive and restore

Archiving hides the app and keeps its source, deployments, and secrets. It needs `build`:

```bash theme={null}
curl --request POST \
  --url "https://api.canary.effectiveai.app/api/v2/apps/app-claims-notes/archive" \
  --header "Authorization: Bearer $EFFECTIVE_API_KEY"
```

The response is `204`, and the app then returns `404`. Projects scoped to the app are archived with
it.

Restoring needs `manage`, which only the app's owner or an administrator has once it's archived:

```bash theme={null}
curl --request POST \
  --url "https://api.canary.effectiveai.app/api/v2/apps/app-claims-notes/restore" \
  --header "Authorization: Bearer $EFFECTIVE_API_KEY"
```

The response is `200` with the app as it was.

## Delete

Deleting needs `manage` and can't be undone. It removes the app's deployments, backend, database,
source, and secrets, and works on archived apps. Pass the app's ID as `confirm`:

```bash theme={null}
curl --request DELETE \
  --url "https://api.canary.effectiveai.app/api/v2/apps/app-claims-notes?confirm=app-claims-notes" \
  --header "Authorization: Bearer $EFFECTIVE_API_KEY"
```

The response is `204`. If it's `503` or lost, send the same request again; the deletion continues
where it stopped.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.