Send a webhook, see exactly what arrived. HookRelay stores the full request — headers, body, query params — so you can inspect and debug anytime. No account. No expiry. Works in 30 seconds.
Unlike webhook.site (7-day expiry) or RequestBin (gone), HookRelay endpoints are permanent. Set it once, use it forever.
POST to the HookRelay API and get a unique URL. No form to fill out, no email required.
Paste the URL into Stripe, GitHub, your CI/CD tool, or any service that sends webhooks.
GET the requests endpoint to see everything that was sent — headers, body, IP, timestamp.
# Step 1: Create your test endpoint
curl -X POST https://hookrelay-app.netlify.app/api/webhook/create
{"uuid":"f7a2b91c","url":"https://hookrelay-app.netlify.app/api/webhook/f7a2b91c"}
# Step 2: Send a test webhook to it
curl -X POST https://hookrelay-app.netlify.app/api/webhook/f7a2b91c \
-H "Content-Type: application/json" \
-H "X-Stripe-Signature: t=1234,v1=abc..." \
-d '{"type":"payment_intent.succeeded","data":{"amount":2900}}'
{"status":"ok","id":"req_001"}
# Step 3: Inspect what arrived
curl https://hookrelay-app.netlify.app/api/webhook/f7a2b91c/requests
[{"id":"req_001","method":"POST","headers":{"content-type":"application/json","x-stripe-signature":"t=1234,v1=abc..."},"body":{"type":"payment_intent.succeeded","data":{"amount":2900}},"received_at":"2025-03-19T10:00:00Z"}]
Most webhook testers give you a temporary URL that expires in hours or days. This creates a painful workflow:
With HookRelay, you set the endpoint once and it keeps working. Configure your Stripe test mode webhook URL once, and it's still valid next month when you come back to it.
# Stripe, GitHub, most modern services send JSON
curl -X POST https://hookrelay-app.netlify.app/api/webhook/YOUR_UUID \
-H "Content-Type: application/json" \
-d '{"event":"test","data":"hello"}'
# Older services (Twilio, some payment processors) use form encoding
curl -X POST https://hookrelay-app.netlify.app/api/webhook/YOUR_UUID \
-d "MessageSid=SM123&From=%2B14155551234&Body=Hello"
# Some enterprise services send XML
curl -X POST https://hookrelay-app.netlify.app/api/webhook/YOUR_UUID \
-H "Content-Type: application/xml" \
-d "<event><type>payment</type></event>"
Free endpoint, no expiry, no account. Get started in 30 seconds.
Create Free Test Endpoint →Free tier: 30 days of request history, up to 500 requests/month. Pro tier (coming soon): unlimited history.
Yes. Every stored request includes the full headers map, body, HTTP method, query parameters, and timestamp.
ngrok proxies requests to your localhost (for local development). HookRelay stores incoming requests on the cloud so you can inspect them later — no local server needed. Use ngrok if you need live local proxying; use HookRelay if you need to capture and inspect webhooks.
Yes. All HookRelay endpoints use HTTPS. Most webhook senders require HTTPS, so this is a requirement we meet by default.
Yes — that's one of our most popular use cases. Point your HTML form's action attribute at your HookRelay endpoint. Submissions are stored and accessible via API indefinitely.