Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Retries and health

A delivery counts as accepted when your endpoint answers any 2xx within 20 seconds. Anything else is handled like this:
ResponseWhat DealMachine does
2xxDelivered
408, 429, 5xx, timeout, connection errorRetried on the schedule below
410 GoneThe webhook is disabled right away; nothing more is sent
Any other 4xxNot retried; the delivery is marked abandoned

Retry schedule

After a failed attempt the batch waits, then tries again: after 1 minute, 5 minutes, 30 minutes, 2 hours, 8 hours, 24 hours, and 24 hours. Seven attempts over about three days, then the delivery is marked abandoned. Later batches for the same webhook wait too, so your endpoint never sees events out of order.

Automatic disable

A webhook whose deliveries have all failed for three days (and at least ten attempts) is turned off with the reason recorded on it. Its pending deliveries are marked skipped. Re-enable it with PATCH /v1/webhooks/{id} { "is_active": true } (or dm webhooks update <id> --enable), which clears the failure count; then resend anything you missed with POST /v1/webhooks/{id}/deliveries/all/redeliver?since=....

The delivery log

GET /v1/webhooks/{id}/deliveries lists every attempt for 30 days: the event, status (pending, processing, delivered, failed, abandoned, skipped), attempt count, the HTTP status and time of the last attempt, a short excerpt of your response, and any error. GET /v1/webhooks/{id} summarizes it: consecutive failures, when it started failing, last success, last failure.

Sending again

POST /v1/webhooks/{id}/deliveries/{delivery_id}/redeliver queues one delivery again with the same event id, so an idempotent consumer will ignore it if it already arrived. To replay a window (after an outage on your side), use delivery_id=all with ?since=<ISO time>.

Pace

Deliveries drain about once a minute, at most 200 per webhook and 2,000 overall per pass, so a burst of events (a large list build, a bulk add) reaches you over several minutes rather than all at once. Your endpoint will not receive more than about 60 requests per minute from one webhook.