WebhookForge

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

  1. Go to https://webhookforge.vercel.app.
  2. Paste your input into the text area — a raw JSON body, a captured request, or the endpoint you want to work with.
  3. 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: '*/*' })) and console.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 3000 or cloudflared 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.

WebhookForge