Debug webhooks in real time. Generate a unique URL, point any webhook at it, and watch every request arrive live. Inspect headers, replay events, verify signatures — no account required.
- Instant URL generation — one click, no signup
- Live capture — any HTTP method, any payload, within 2 seconds
- Full inspection — headers, body, source IP, query params
- Replay — resend any event to your local server, staging, or any URL
- Signature verification — Stripe, GitHub, and generic HMAC-SHA256
- Read-only sharing — share a view-only link with teammates
- Auto-expiry — all data deleted after 24 hours
- Next.js 15 (App Router)
- Supabase (Postgres + Realtime)
- Tailwind CSS + shadcn/ui
- Deployed on Vercel
Go to supabase.com and create a free project.
In your Supabase SQL Editor, run the contents of supabase/schema.sql.
cp .env.local.example .env.localFill in your Supabase project URL, anon key, and service role key from: Project Settings → API
npm install
npm run devOpen http://localhost:3000.
vercel deployAdd environment variables in the Vercel dashboard. The cleanup cron (defined in vercel.json) runs hourly to delete expired endpoints.
- Click "Generate webhook URL" → creates a DB row with a unique ID
- Copy the catcher URL (e.g.
hookcatch.dev/h/abc123) and paste it as your webhook destination - Open the dashboard (
/d/abc123) — events appear within 2 seconds - Click any event to expand headers and body
- Use Replay to resend the payload to your local dev server
- Use Verify to check the HMAC signature against your webhook secret
| Route | Method | Description |
|---|---|---|
/h/[id] |
ANY | Webhook catcher — accepts all methods |
/api/endpoints |
POST | Create a new endpoint |
/api/events/[endpointId] |
GET | List events for an endpoint |
/api/replay |
POST | Replay an event to a target URL |
/api/verify |
POST | Verify an event's HMAC signature |
/api/cleanup |
GET/POST | Delete expired endpoints (cron target) |