···5566Webhooks let you receive HTTP POST notifications when AT Protocol records are created, updated, or deleted. They're scoped to an AT-URI — you can watch a specific record, an entire collection, or everything from a DID.
7788-Webhooks are stored as `place.wisp.v2.wh` records in your AT Protocol repository. The webhook service watches the firehose and delivers payloads to your URL.
88+Webhooks are stored as `place.wisp.v2.wh` records in your AT Protocol repository. The webhook service watches the firehose for `place.wisp.v2.wh` record changes, reads the full record back from your PDS (read-after-write), then begins delivering matching events to your URL.
991010## Creating a Webhook
11111212-Create and manage webhooks from the **Webhooks** tab in the editor, or via the [REST API](#rest-api).
1212+Create a webhook by writing a `place.wisp.v2.wh` record to your PDS, or by using the **Webhooks** tab in the editor. The record schema is [below](#record-schema).
13131414**Scope** controls what you're watching:
1515···9191}
9292```
93939494-## REST API
9494+## API Convenience Routes
95959696-Webhooks can also be managed via the main app API. All routes require the signed `did` cookie.
9696+The main app exposes API routes that wrap PDS record operations. All routes require the signed `did` cookie.
97979898### `GET /api/webhook`
9999···101101102102### `POST /api/webhook`
103103104104-Creates a new webhook. Body matches the `place.wisp.v2.wh` record shape.
104104+Creates a new webhook record. Body matches the `place.wisp.v2.wh` record shape.
105105106106### `DELETE /api/webhook/:rkey`
107107108108-Deletes a webhook by its record key.
108108+Deletes a webhook record by its record key.
109109110110### `GET /api/webhook/events`
111111