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

# Monitoring webhooks

> Get notified when an entity you monitor is added to or removed from a sanctions list

Screening tells you whether an entity is sanctioned **right now**. Monitoring webhooks tell you when that answer **changes**: register the crypto addresses, emails, websites, or government IDs you care about, add a webhook endpoint, and CompliAPI POSTs a signed event to it whenever one of those values is added to, removed from, or re-listed on any list we track.

Webhook monitoring is available on the **Developer and Team plans**. It is configured entirely from the dashboard's [Webhooks page](https://app.compliapi.com/dashboard/webhooks).

## Concepts

**Monitored entities** are exact-match values, using the same normalization as the screening API:

| Type           | Matching                                                                                                  |
| -------------- | --------------------------------------------------------------------------------------------------------- |
| Crypto address | Exact (case-insensitive). ENS names (`vitalik.eth`) are resolved to their address when you add them.      |
| Email          | Exact (case-insensitive)                                                                                  |
| Website        | Exact after scheme/`www.` normalization — `https://www.example.com/` matches a listed `example.com`       |
| Government ID  | Exact (case-insensitive) — unlike [`/screen/id`](/api/screen/id), monitoring does not do partial matching |

Plan limits: **25 monitored entities** per organization on Developer, **100** on Team, and up to **3 endpoints** per organization.

**Endpoints** are public `https` URLs owned by your organization. Every enabled endpoint receives every event for the organization's monitored entities. Each endpoint has its own signing secret (view and rotate it from the dashboard).

**Events** fire per list: if a wallet is added to both the OFAC SDN list and the UK Sanctions List, you get two `entity.listed` events, each naming its list. Event types:

* `entity.listed` — the value appeared on a list it wasn't on before
* `entity.delisted` — the value was removed from a list
* `entity.relisted` — the value returned to a list it had been removed from
* `test` — sent by the dashboard's test button

List updates are ingested continuously (OFAC every 15 minutes, other sources daily or weekly — see [data sources](https://compliapi.com/data-sources)), and events reflect changes to our copy of each list.

## Delivery and retries

Events are delivered within a few minutes of ingestion. A delivery is considered successful when your endpoint answers any **2xx** status within 10 seconds. Anything else is retried on a backoff schedule of roughly **1 minute, 5 minutes, 30 minutes, 2 hours, and 12 hours** before the delivery is marked failed.

Delivery is **at-least-once** and unordered: the same event can occasionally arrive twice, and two events may arrive out of order. Deduplicate on the event `id` (stable across retries) and use `created_at` to order.

After **5 consecutive failed deliveries** (each having exhausted its retries), the endpoint is automatically disabled and the organization owner is emailed. Fix the endpoint and re-enable it from the dashboard — delivery resumes with new events from that point; events that occurred while it was disabled are not replayed.

## Verifying signatures

Every delivery carries an `X-CompliAPI-Signature` header signed with the endpoint's secret. **Always verify it before trusting a payload** — see [webhook events](/api/webhook-events) for the payload format and verification code in Python and Node.

## Webhooks vs. polling

The public [`GET /api/v1/delisted`](/api/delisted) feed is the polling counterpart: it lists recent removals across all lists, unauthenticated. Webhooks are the push counterpart, scoped to exactly the entities you monitor.
