req.is v2 is here — faster capture, slug URLs, signed forwarding.what changed →
// webhook debugging, minus the guesswork

See exactly
what hits your
endpoint.

Spin up a URL, point any webhook or API call at it, and read the raw request as it lands. Then replay or forward it to your development endpoint.

$
/b/my-webhook-binslug may get a suffix if already taken
// incoming requestlistening
POST /b/my-webhook-bin HTTP/1.1
Host: req.is
Content-Type: application/json
Stripe-Signature: t=1699,v1=5a2f...

{
  "event": "payment.succeeded",
  "amount": 4200,
  "currency": "usd"
}
200 OKstored in 8ms, ready to replay

// what you get

01

Capture the raw request

Method, path, query string, headers, IP, content type, and body are stored exactly as they arrived.

02

Inspect it live

The dashboard tails new requests over SSE, with search, method filters, and request detail tabs.

03

Forward safely

Forwarding runs after capture, blocks internal destinations, does not follow redirects, and signs deliveries.

04

Replay from history

Use a saved request as a reproducible test case for your development or staging endpoint.

// tail -f the bin

Watch it arrive, live.

req.is / bin/my-webhook-binlive
12:04:31POST/hook/stripe/payment2008ms
12:04:29GET/api/v2/orders?limit=2020014ms
12:04:22DELETE/webhook/twilio/sms50031ms
12:04:18POST/hook/shopify/order20122ms
12:04:09GET/webhook/github/push20011ms
12:03:58PATCH/api/users/sync2049ms
$ waiting for next request

// three steps

01

Create a bin

Choose a readable slug or let req.is generate one.

02

Send anything

Use the capture URL as a webhook target or test endpoint.

03

Inspect and replay

Open headers, query params, bodies, responses, and snippets.

// or just curl it
$curl -X POST https://req.is/b/my-webhook-bin -H "Content-Type: application/json" -d '{"event":"ping"}'
// ready?

Stop guessing what your
webhooks are sending.

$ create your first bin