TypeScript
npm install @webhook-co/sdkPython
pip install webhook-coGo
go get github.com/webhook-co/webhook-goWhat every SDK gives you
- Bearer auth, taken once at construction and attached to every request — and redacted from errors and debug output, so a key never lands in a log.
- Bounded retries with jitter on transient failures (
429/502/503/504and network errors), honoringRetry-After, and never blind-retrying a non-idempotent write. See rate limits. - Cursor pagination as a lazy async iterator —
for-loop an endpoint’s entire event history without touching a cursor. - Idempotency on replays: a fresh key per call, so a retried replay is safe.
- Typed errors — every failure is a
WebhookErrorsubclass you can narrow by type, carryingcode,status, andrequestId.
Which surface should I use?
The SDKs, the REST API, thewbhk CLI, and MCP all bind the same capability contract — pick by runtime, not by feature. Use an SDK inside an application, the CLI for scripts and local development, the API from anything that speaks HTTP, and MCP from an agent. A capability on one is a capability on all.