Point Stripe, Shopify, GitHub, or anything else at a permanent URL. Watch every request stream in live — then tunnel them straight to your laptop for testing.
Inspecting requests is the easy part. The hard part is everything else. HookSpy ships with the features you actually need to debug real webhook integrations.
Run one command and every webhook hitting your URL gets forwarded to your dev server. No ngrok, no port-forwarding, no public IP.
$ hookspy tunnel in_xyz localhost:3000
Configure each inbox to return any status, body, or delay. Test your retry logic against a real 503. webhook.site only sends 200.
status: 503 delay: 5000ms
Paste a JSON Schema. Every request gets validated against it and flagged in the dashboard. Catch breaking changes before deploy.
✓ evt_3O7x... · valid
No SDK, no library, no agent on your server. Just a URL and a CLI binary.
Sign up, click "+ New", and you've got a permanent URL. Each project, each environment, each integration — make as many as you need.
Paste the URL into Stripe's webhook config, Shopify's settings, GitHub's repo settings — anywhere that sends webhooks.
Open the dashboard. Every request streams in live with full headers, body, schema status, and timing. Search, filter, replay, copy as curl.
Run hookspy tunnel
in your terminal and every webhook gets forwarded to your dev server. Set breakpoints, restart freely,
replay at will.
$ hookspy create stripe-test ✓ Inbox created Slug: in_kp4mxn8wqa URL: https://hooks.app.com/ i/in_kp4mxn8wqa
# In your Stripe dashboard: Developers → Webhooks → Add endpoint URL: https://hooks.app.com/ i/in_kp4mxn8wqa Events: payment_intent.succeeded payment_intent.failed charge.refunded
● 14:23:18 POST /i/in_kp4... stripe payment_intent.succeeded ✓ schema valid 4.2KB ● 14:23:25 POST /i/in_kp4... stripe charge.refunded ✓ schema valid 3.1KB
$ hookspy tunnel in_kp4mxn8wqa \ http://localhost:3000/webhooks → https://hooks.app.com/i/in_kp4... ↓ http://localhost:3000/webhooks ✓ Connected. 14:23:18 POST /webhooks ✓ 200 in 47ms
Free for personal projects. Real pricing for teams. No "contact sales," no surprise overages, no per-event metering.
Get an inbox in 30 seconds. No card. No commitment.
Get started — free