Hookpeek
Free 3 bins · No card

Inspect every webhook. See what your tool actually sends.

Spin up a unique URL in two clicks. Stripe, Shopify, Slack, GitHub, n8n — point any webhook at it and see the exact payload your integration receives. Headers, body, JSON parsed, curl one-liner ready to replay.

No tunnel, no ngrokJSON auto-parsedcurl replay one-click
hookpeekhq.com
https://webhook.91-99-176-101.nip.io/b/9k2hf3xqp4w7vzm8
live · polling every 2s
POST /r/9k2hf3xqp4w7vzm8 just now · 198 ms
content-typeapplication/json
user-agentStripe/1.0 (+https://stripe.com/docs/webhooks)
stripe-signaturet=1714935600,v1=4f8c13a2...
{
  "id": "evt_1NbXyz2eZvKYlo2C",
  "type": "charge.failed",
  "data": {
    "object": {
      "amount": 4999,
      "currency": "usd",
      "failure_code": "card_declined"
    }
  }
}
POST /r/9k2hf3xqp4w7vzm8 14 s ago · 142 ms
{
  "event": "order.created",
  "shop": "acme.myshopify.com",
  "order": { "id": 820982911, "total": "42.99" }
}
GET /r/9k2hf3xqp4w7vzm8?token=ping 1 m ago · —
Real request inspector

Every request hitting your bin is captured: full headers, query string, body up to 50KB, source IP, content type, content length, exact timestamp. Nothing is silently dropped — see what the sender actually sent.

JSON / form / raw — we parse it

Send JSON? Parsed and pretty-printed. Send form-urlencoded? Decoded. Send XML or text? Shown raw. We don't guess; we look at the Content-Type and render the body the way the sender meant it.

Replay with curl in one click

Every captured request comes with a generated curl one-liner that reproduces it byte-for-byte against any URL you choose. Hit replay locally, hit replay against staging — the payload is preserved exactly.

How it works

Three steps. Done.

01

Create a bin

Sign up, click 'New bin'. You get a unique URL like webhook.91-99-176-101.nip.io/r/abc123xyz. Free plan: 3 bins.

02

Point your webhook at it

Paste the URL into Stripe, Shopify, Slack, GitHub, or your own service. We accept GET/POST/PUT/PATCH/DELETE — whatever the sender uses.

03

Watch requests arrive live

Open the bin page. Every captured request appears in real time — headers, body, parsed JSON, and a copy-pasteable curl one-liner to replay it.

The take

Webhooks shouldn't be a black box.

When Stripe fires a charge.failed event and your handler 500s, the only useful debug signal is the exact bytes that arrived. Not a console.log of what you guessed. Not a trace of your retry loop. The real headers, the real body, the real timing. Hookpeek captures it once, keeps it for 100 requests, and gives you a curl one-liner so you can replay it locally without waiting for the next failure.

Pricing

Free or $9/mo. That's it.

No contracts. Cancel anytime.

Free

$0/forever

  • 3 bins
  • 100 requests history per bin
  • Auto JSON parsing
  • curl one-liner replay
  • Live HTMX feed
Get started free
Most popular

Pro

$9/month

  • Unlimited bins
  • 10,000 requests per bin
  • Replay-to-target URL (one click)
  • Custom bin names
  • Priority support
FAQ

Quick answers.

Is this like webhook.site or RequestBin? +

Same shape. We focus on speed and quality of the inspection UI — JSON pretty-printing, curl reproduction, live HTMX feed without polling refreshes. Stays fast at 10,000 requests.

Are URLs public? +

The capture URL (/r/<token>) accepts public requests — that's how webhooks reach it. Viewing the captured data is gated behind your login. Tokens are 16 characters, URL-safe random.

What's the body size limit? +

We store the first 50KB of each request body. Larger payloads are truncated with a marker. Raised limits available on Pro by request.

How long is data kept? +

Free: last 100 requests per bin (oldest auto-pruned). Pro: last 10,000. No silent expiry; rolling buffer per bin.

Can I replay a captured request? +

Yes. Every captured request has a generated curl one-liner. Free users can copy and run it manually. Pro users get a 'Replay to URL' button that fires it against any target with one click.

Why $9/mo for Pro? +

Unlimited bins, 100x more history per bin, and replay-to-target. If you debug webhooks more than once a month, that's an hour of your time.

Stop guessing what your webhook said.

Free for 3 bins, 100 requests each. No card.

No tunnel, no ngrokJSON auto-parsedcurl replay one-click