▲ 103 on Product Hunt · free forever · no sign-up

Your webhooks have nowhere to hide.

Mint a URL in one click and point any service at it. Every request lands live — inspect the full payload, replay it, or forward it straight to localhost.

  • 30-day history
  • Replay & edit
  • REST API + MCP
wcat.dev/u/ord-7f2
listening
  • POSTorders/createjust now
  • POSTpush · main3s ago
  • POSTpayment_intent.succeeded6s ago

If it can send a webhook, it lands here

StripeGitHubShopifySlackTwilioPayPalDiscordLinear
VercelNotionOpenAIClerkResendSupabaseSendGridSquare
Features

Built for the debugging loop

Catch it, read it, fire it again — everything between “did it even send?” and “fixed” lives in one place.

The whole request, the instant it arrives

Method, headers, query, and a pretty-printed body — streamed to your dashboard the moment a service calls your URL. Unknown content types keep their raw text, so nothing is ever dropped.

  • Secrets in headers are redacted before they’re stored
  • JSON, form data, and raw views side by side
BodyHeadersRaw200 · 41 ms
{
  "type": "payment_intent.succeeded",
  "data": {
    "amount": 4200,
    "currency": "usd",
    "customer": "cus_O8x…"
  }
}
content-type: application/json
stripe-signature: redacted

A bridge from the internet to :3000

Add a forwarding URL and every capture is relayed to your machine as it lands — webhooks from production services, hitting the code in your editor.

Fire it again, your way

Thirty days of history, searchable and filterable. Replay any request as-is, or tweak the body and headers first. Pin the important ones and they never expire.

POSTorders/create2m
POSTpayment_intent.succeeded1h Replay
POSTpush · main1d

Queryable from code — and from your agent

Every capture is reachable over a token-scoped REST API and a built-in MCP server. Your AI agent can read the webhook that just failed and tell you why.

$ curl -H "Authorization: Bearer wcat_…" \
https://wcat.dev/api/v1/requests
How it works

Zero to caught in under a minute

No SDK, no signup, no YAML. The slowest step is your provider’s settings page.

1

Mint your URL

One click in the dashboard — no account, no config. The endpoint is live before the page finishes loading.

https://wcat.dev/u/ord-7f2
2

Point anything at it

Paste it into Stripe, GitHub, your cron job — or just curl it from the terminal to see the loop close.

$ curl -X POST …/u/ord-7f2 -d '{…}'
3

Inspect, replay, forward

The request is already on screen. Read it, fire it again, or relay it to localhost and step through your handler.

POSTcaught · just now
Try it

Poke it. Right here.

Fire a sample webhook and watch it get caught. This console is a simulation — your real endpoint behaves exactly like this, with your traffic.

Send a webhook

Signature headers arrive redacted — secrets never get stored, even here.

wcat.dev/u/youlistening
Nothing caught yet — fire one from the left.
Developers

Debuggers love it

Really impressed by this tool’s focus on simplifying webhook testing! Instantly creating disposable URLs and inspecting payloads makes debugging way less painful.
Supa Liu · @supa_l on Product Hunt
This tool is a game-changer for developers! Instantly creating disposable webhook URLs, inspecting payloads, and customizing responses makes debugging so much faster.
Joy Wang · @joy_171
It’s wonderful to see a tool born out of personal challenges, making it relatable and genuinely useful.
Alex Cloudstar · @alexcloudstar

Your next webhook is already on its way.

Mint an endpoint before it lands — free forever, no account, thirty days of history.