Webhook capture & forwarding

Receive webhooks once.
Forward them where they need to go.

WebhookOps captures the original event from Stripe, GitHub, Shopify, and any HTTP provider. Store the original request, forward it securely to your local handler, or deliver it to the Test or Production destination you configure.

Store public requests · Forward locally or to your configured domain

event / evt_4JK9received
POST/webhooks/incoming200 · 182 ms

SOURCE

any HTTP request

EVENT

webhook.received

DELIVERY

connecting local relay…

ACTION

route selected

{
  "event_id": "evt_4JK9",
  "received_at": "2026-08-08T09:41:00Z"
}

Getting started

Set up your first route in three steps.

Use one public receiving URL, then choose whether new requests go to your local handler or a configured destination domain.

Read the visual setup guide

Local webhook forwarding

Forward to your machine without exposing a public port.

Start in the Console: create an endpoint and copy its receiving URL to your provider. The CLI makes an outbound connection, then forwards new events to the loopback route you choose—without opening an inbound port on your machine.

LOCAL FORWARDERavailable

npx webhookops dev <port> for the port your handler listens on · use Local testing in the Console to send a test event and inspect the result.

Create your first endpoint

One clear workflow

Store once. Route each event with context.

01

Receive and store

Create an endpoint, copy its receiving URL into your provider, and retain the original request in the Console.

02

Forward safely to localhost

Run the CLI to forward events over its outbound relay to the service on your machine, without exposing an inbound port.

03

Forward to your domain

Configure Test and Production destination URLs, select the environment, and inspect every delivery result in the Console.

Built for the failures developers debug

The request is real. The fix is still local.

Stripe

A payment event failed while you were changing the handler.

Start with the original invoice event, test the fix locally, then inspect the delivery result in one place.

GitHub

The webhook arrived, but the signature check did not pass.

Keep the request body and headers together instead of recreating a push event by hand.

Shopify

A topic reaches your endpoint before the local work is ready.

Keep the event record and test the local route before choosing the next action.

Made for the webhooks already in your stack

stripeGitHubshopifyslackand any HTTP webhook

Webhook guides

Build the reliable path.

Practical notes for receiving webhooks, testing handlers locally, and recovering a failed delivery without guessing what arrived.

Browse the guide libraryWebhook fundamentals, local testing, and destination routing.

Questions

The practical bits.

What happens to a public webhook?

WebhookOps receives the request at your public endpoint and stores its original details, including the method, path, headers, body, and delivery result.

Can I forward events to localhost?

Yes. Create an endpoint in the Console, then run npx webhookops dev <port>. If needed, the CLI will guide you through login. The relay only forwards to the loopback address you choose.

Can I forward to a hosted service?

Yes. Configure a Test or Production destination URL in the Console. WebhookOps stores each public request and forwards it to the destination selected for that environment.

Which webhook providers work with it?

WebhookOps receives standard HTTP webhooks, including the events small SaaS teams receive from Stripe, GitHub, Shopify, Slack and similar providers.

What webhook support does WebhookOps provide?

WebhookOps supports event storage, local forwarding, forwarding to configured destinations, and delivery troubleshooting for HTTP webhook providers.

Start with WebhookOps

Start testing
real webhooks.

Create an endpoint, store public requests, and forward them locally or to your configured domain.

Open Console