How to Use WebhookForge
Open WebhookForge, paste your webhook payload (or URL) into the input box, and the result appears immediately below — no account, no install. It runs in the browser, so you can test and inspect webhook payloads without wiring up a server or exposing a tunnel.
Paste your payload into WebhookForge and see the result in a second — no signup required.
The 3-step version
- Go to https://webhookforge.vercel.app.
- Paste your input into the text area — a raw JSON body, a captured request, or the endpoint you want to work with.
- Read the output panel. Copy the result with the copy button, or edit the input and it re-runs as you type.
That's the whole flow. There is no signup step, no API key, and nothing to configure before your first run.
Getting a payload to paste
If you don't have a payload handy, grab one from the source:
- Stripe: Dashboard → Developers → Webhooks → click an event → *Event data* (JSON).
- GitHub: Repo → Settings → Webhooks → your hook → *Recent Deliveries* → Request body.
- Shopify: Notifications → webhook → check the delivery log, or send a test notification.
- Your own app: log the raw body before parsing, e.g. in Express with
app.use(express.raw({ type: '*/*' }))andconsole.log(req.body.toString()).
Paste the raw body, not the pretty-printed version from a terminal — escaped quotes and truncated logs are the two most common reasons a payload won't parse.
Common problems and fixes
- "Unexpected token" / invalid JSON: you probably copied a log line with a timestamp prefix, or the body is form-encoded (
a=1&b=2) rather than JSON. Strip the prefix and re-paste. - Trailing commas: valid in JavaScript object literals, invalid in JSON. Remove them.
- Escaped payload: if your input looks like
"{\"id\":1}", it's a JSON string containing JSON. Unescape it once before pasting. - Huge payloads: very large bodies can be slow to render in any browser tool. Trim to the section you care about.
- Secrets: payloads often contain emails, customer IDs, or tokens. Redact anything you wouldn't paste into a shared doc — even though processing happens client-side, that's a good habit for any online tool.
Where a browser tool fits (and where it doesn't)
WebhookForge is for the inspect-and-iterate part of webhook work: understanding an unfamiliar payload, checking a shape before you write a parser, or sanity-checking what a provider actually sent.
It is not a replacement for:
- receiving live traffic on localhost — use a tunnel like
ngrok http 3000orcloudflared tunnel; - signature verification against a real secret — do that server-side with your provider's SDK (e.g.
stripe.webhooks.constructEvent); - retry and delivery monitoring — that lives in your provider's dashboard.
Use the browser for the fast loop, your server for anything involving secrets or production traffic.
FAQ
- Do I need an account to use WebhookForge?
- No. There's no signup, no email, and no API key. Open the page, paste, read the result.
- Is it free?
- Yes, it's a free tool. Nothing is gated behind a paywall.
- Can I use it to receive live webhooks from Stripe or GitHub?
- For live delivery to your local machine you still need a tunnel (ngrok, Cloudflare Tunnel) or a deployed endpoint. WebhookForge is for inspecting and working with the payloads you already have.
- Should I paste production payloads with customer data?
- Redact anything sensitive first — tokens, emails, IDs. It's the right default for any online tool, regardless of how the tool processes data.
- Why does my payload fail to parse?
- Usually a copied log prefix, escaped quotes, a trailing comma, or a truncated body. Copy the raw request body straight from your provider's delivery log and try again.