◇ /LANDING/WEBHOOKS

HMAC-signed.
Retried. DLQ-backed.

Every mutation in your account fires a webhook. Signed, timestamped, retried with exponential backoff, and dead-lettered when your endpoint is down.

HMAC-SHA2565 retriesDead-letter queue30+ event typesIdempotency keys
01 · PAYLOAD

Every event.
One envelope.

Typed, versioned, and idempotent. Every payload includes a unique event ID, an idempotency key, and the full resource snapshot at the time of mutation.

POST https://hooks.example.com/relays
02 · SIGNATURE

HMAC-SHA256.
Timing-safe.

Every webhook is signed with your endpoint secret. The signature covers the timestamp and payload body to prevent replay attacks.

verify-webhook.ts
03 · RETRIES

Exponential backoff.
With jitter.

Failed deliveries retry 5 times over 4 hours with exponential backoff and random jitter. After exhaustion, the event moves to the dead-letter queue.

retry schedule · evt_9f3c2206 · dns.record.created
AttemptDelayFired atStatusResult
10s14:02:14500✗ failed
230s14:02:44500✗ failed
32m14:04:44500✗ failed
415m14:19:44200✓ delivered
51h--:--:------ skipped
04 · DEAD-LETTER QUEUE

Nothing lost.
Ever.

When all retries are exhausted, events land in a dead-letter queue. Browse them in the dashboard, replay one at a time, or replay the entire backlog with a single API call.

  • • 30-day DLQ retention
  • • One-click replay per event
  • • Bulk replay with filters
  • • POST /v1/webhooks/dlq/:id/replay
  • • DLQ depth metric in Prometheus
◆ dead-letter queue · 3 events
evt_a1b2dns.record.updated5 attempts2h ago
evt_c3d4cert.issued5 attempts6h ago
evt_e5f6monitor.down5 attempts1d ago
▸ POST /v1/webhooks/dlq/replay-all · replays 3 events with fresh signatures

Thirty-four event types.
And counting.

Every mutation across DNS, domains, certificates, monitors, incidents, and status pages fires a typed webhook. Filter by event type at the endpoint level.

event catalog · 34 types
Event typeDescription
dns.zone.createdA new zone was added to the account
dns.zone.deletedA zone was permanently removed
dns.record.createdA DNS record was created in a zone
dns.record.updatedA DNS record was modified
dns.record.deletedA DNS record was removed
dns.bulk.completedA bulk record operation finished
dns.propagation.completeGlobal propagation confirmed
dns.dnssec.enabledDNSSEC signing was activated
dns.dnssec.disabledDNSSEC signing was removed
dns.dnssec.key_rotatedKSK or ZSK was rolled
domain.registeredA domain was purchased
domain.renewedA domain renewal was processed
domain.transferred_inAn inbound transfer completed
domain.transferred_outAn outbound transfer completed
domain.expiredA domain reached its expiry date
domain.lock_changedTransfer lock was toggled
domain.privacy_changedWHOIS privacy was toggled
domain.ns_changedNameservers were updated at registrar
cert.issuedA new certificate was issued
cert.renewedA certificate was auto-renewed
cert.revokedA certificate was revoked
cert.expiringA certificate expires within 14 days
cert.ct_detectedCT log detected issuance for your domain
monitor.createdA new monitor was configured
monitor.downA monitor failed quorum check
monitor.upA monitor recovered from failure
monitor.degradedA monitor is responding slowly
monitor.ssl_expiringMonitored SSL expires within 14 days
incident.createdAn incident was automatically opened
incident.acknowledgedOn-call engineer acknowledged
incident.resolvedAn incident was marked resolved
incident.escalatedAn incident was escalated to next tier
status_page.updatedA status page component changed state
webhook.endpoint.disabledAn endpoint was disabled after DLQ overflow

Register an endpoint.
Start receiving.