Skip to main content

Verify a webhook in Express (Node)

Verify a webhook in Hono

Verify a webhook in Python

No SDK yet for Python — implement manually:

Verify a webhook in Go

Dedupe events idempotently

At-least-once delivery means the same event may arrive twice. Use X-Sly-Event-Id as the idempotency key:
For multi-instance services use Redis or Postgres instead of in-memory:
Clean the table nightly for events older than 48h.

Subscribe with wildcards

Wildcards reduce subscription noise vs. listing every event. "*" subscribes to everything (high volume — not recommended in production).

Replay a failed delivery

The replay carries the same X-Sly-Event-Id — your idempotency dedupe makes this safe.

Bulk replay from DLQ

Useful after fixing your endpoint post-incident. Rate-limited at 10/sec to avoid spiking your freshly-recovered service.

Test webhook delivery

Useful to verify your verification code before depending on real events.

Tunnel to localhost with ngrok

Update the webhook URL to the ngrok URL. ngrok URLs rotate on restart unless you have a paid plan; update via PATCH /v1/webhooks/wh_....

Alternative: Cloudflare Tunnel (stable URL, free)

Stable per-session URL, no login required.

Handle a stale subscription

Your endpoint has been failing for hours and the webhook is now paused:
Consider wiring webhook.dlq events to on-call paging so you catch pauses immediately.

See also