Catch and inspect any webhook in seconds.

Get a unique URL instantly — no signup. Point any webhook, callback, or agent tool at it, then read every request via a clean JSON API or a live inspector. Built for humans and automated agents.

Read the docs

One curl. No account.

# create a bin
curl -s -X POST https://catchr.perch-app.workers.dev/api/bins
# → {"id":"a1b2c3d4","url":"https://catchr.perch-app.workers.dev/h/a1b2c3d4","token":"…"}

# anything you send to that URL is captured
curl https://catchr.perch-app.workers.dev/h/a1b2c3d4 -d 'hello=world'

# read it back as JSON (use the token from create)
curl "https://catchr.perch-app.workers.dev/api/bins/a1b2c3d4/requests?token=…"

🤖 Agent- & CI-first

A real REST API to create a bin, catch requests, and assert on exactly what arrived — no browser, no clicking. Perfect for testing webhooks and agent tool-callbacks in automated runs.

⚡ Zero friction

No email, no password, no dashboard signup. One POST returns a live URL and a token. Paste the URL anywhere that sends HTTP.

🔒 Safe by design

Catchr only receives requests — it never forwards or fires requests on your behalf, so it can't be abused as an attack relay. Bodies capped, IPs one-way hashed.

🧾 Everything captured

Method, path, query, full headers and body — stored and returned verbatim. Live inspector auto-refreshes; JSON API for machines.

🎭 Mock any response

Configure a bin to return any status and body — a 500, a specific JSON reply, whatever. Test how your webhook sender or agent handles errors, no fake server needed. How →

🔌 MCP server built in

Add Catchr to Claude, Cursor or any MCP client as a remote server (/mcp). Your agent gets create_bin, get_requests (blocks until a request lands) & clear_bin — test the webhooks it builds, itself. Setup →