Webhook

A temporary endpoint for inspecting live webhook deliveries.

Getting started

  1. 1. Copy your unique URL below.
  2. 2. Paste it into any service's webhook configuration (Stripe, GitHub, your own app).
  3. 3. Send a test event — it appears here within a few seconds.

Requests (0)

Generate a URL above to start listening.

Requests sent to your temporary URL are stored so you can inspect them — method, path, query string, headers, body and the sending IP address. After 7 days (or 100 requests, whichever comes first) the URL stops accepting new requests, but captured data stays available for one JSON download — which then deletes it immediately. Undownloaded data is purged automatically 7 days after expiry. Authorization, Cookie, Proxy-Authorization, X-Api-Key and X-Auth-Token headers are redacted the instant a request arrives; the body itself is stored and shown exactly as received, so avoid sending real secrets in it.

What is a Webhook?

A webhook is how one service pushes data to another the moment something happens — a payment clears, a commit lands, a form is submitted — instead of you having to poll for it. The sending service needs a live URL to deliver that request to, which is a problem when you're still building the handler or just want to see the raw payload before you write any code against it.

A Webhook solves that by giving you a disposable, publicly reachable URL that accepts any request and records exactly what arrived: method, headers, query string and body, timestamped and ready to inspect. Point a provider's webhook config at it and every delivery shows up here within a few seconds — no server, no tunneling tool, and no code required on your end.

Why use this Webhook

Unlike a purely client-side tool, capturing deliveries has to happen server-side — there's no way to receive an HTTP request without something listening for it. That data is treated as disposable: Authorization, Cookie, Proxy-Authorization, X-Api-Key and X-Auth-Token headers are redacted the moment a request arrives, while everything else — method, path, query string, body and the sending IP address — is stored exactly as received so you can inspect it faithfully. The URL stops accepting new deliveries after 7 days or 100 requests (whichever comes first), and the captured data can be retrieved exactly once as a JSON download, which deletes it immediately afterward. Anything never claimed is purged automatically 7 days after expiry, so nothing lingers indefinitely.

There's no signup, no account, and no limit on how many URLs you generate. The request list updates live as deliveries arrive, and a captured body or query string can be sent straight into the JSON Compare tool to diff it against an expected payload without retyping anything.

How to use it

  1. Press Generate my webhook URL above and copy it — it accepts GET, POST, PUT, PATCH and DELETE.
  2. Paste it into the sending service's webhook configuration (Stripe, GitHub, a payment gateway, or your own app's outgoing HTTP client).
  3. Trigger the event — a test payment, a test commit push, a test signup — and watch it appear in the request list within a few seconds.
  4. Select a request to inspect its query params, headers and body, or press Compare JSON to diff its payload against an expected one.
  5. Once you're done, press Download JSON on the archived URL to save everything captured before it's deleted — useful as a fixture for local tests or bug reports.

A free alternative to webhook.site

Webhook.site is the tool most people reach for first, but it nudges you toward creating an account to keep history around, and its free tier only holds requests briefly. This Webhook covers the same core workflow — generate a URL, point a provider at it, watch requests arrive live — without ever asking for an email or account.

It's a narrower tool by design: each URL is capped at 7 days / 100 requests and there's no team-shared inbox or custom response scripting, so if you need collaborative endpoints or scripted mock responses, webhook.site's paid tier still covers that better. For solo debugging of an incoming webhook, this is the free no-signup path to the same result.

Webhook FAQ

Yes — it covers the same core job (generate a URL, inspect incoming requests live) with no signup or account required. It doesn't replicate every webhook.site feature, like team-shared inboxes or scripted mock responses, but for testing and debugging webhook deliveries it covers the common case for free.

Yes — receiving an HTTP request from an external service requires something listening for it, so captured requests (method, path, query string, headers, body and the sending IP address) are stored temporarily on the server rather than staying purely in your browser. Authorization, Cookie, Proxy-Authorization, X-Api-Key and X-Auth-Token headers are redacted the instant a request arrives; the body itself is stored and shown exactly as received, so avoid sending real secrets in it.

Up to 7 days or 100 captured requests, whichever comes first. After that it stops accepting new deliveries and moves to an archived state.

Yes, once. An expired (archived) URL shows a Download JSON button that exports everything it captured and permanently deletes it from the server in the same action — it can't be downloaded a second time.

It's purged automatically 7 days after the URL expires, whether or not anyone ever comes back for it.

Yes — select a request and press Compare JSON. It sends the body (or the query params if the body isn't JSON) to the JSON Compare tool so you can diff it against a fixture.

No signup and no cost. You can generate as many webhook URLs as you like; each one is independently capped at 7 days / 100 requests.