# App uninstalled

**Event:** `app.uninstalled`

## Description

Fires when your app's installation is removed from a Roam — for example an
admin revokes the installed app, or the developer archives the API client.
Roam enqueues this delivery **before** tearing down your webhook
subscriptions and tokens, so you get a last-gasp signed callback.

**Event name:** `app.uninstalled`

Delivered inside the standard [event envelope](/docs/webhooks/webhooks#event-envelope);
the schema below shows the full delivery body with this event's payload
under `data`.

Delivery is authenticated by your webhook signing secret. After this event,
discard all tokens for the install and stop retrying API calls.

Calling [`token.revoke`](/docs/api/token-revoke) does **not** fire
`app.uninstalled` — that endpoint only kills the presented grant and fires
[`token.revoked`](/docs/webhooks/token-revoked).

**Required scope:** `webhook:write` (the same scope needed to subscribe).

## Webhook Payload


### Example Payload

```json
{
  "type": "app.uninstalled",
  "eventId": "0197f9b1-2b3c-7dd4-ae1f-2a3b4c5d6e7f",
  "timestamp": "2026-07-20T18:05:00.000000Z",
  "apiVersion": "2026-07-07",
  "data": {
    "clientId": "9f3c2a1b0e8d7c6b5a49382716150493",
    "roamId": "12QJUKKE0X"
  }
}
```

---

*Machine-readable API documentation.*
*Full documentation: https://developer.ro.am/docs/webhooks/app-uninstalled*
