C
Receive Clerk webhooks on localhost
Clerk fires webhooks for user and session lifecycle events so you can sync your database. Pipehero gives you a public URL to receive them locally and an inspector to see exactly what Clerk sends.
1Install Pipehero and start a tunnel
Install the CLI, log in, then expose your local port. You get a stable public URL like
myapp.t.pipehero.app.curl -fsSL pipehero.app/install | sh pipehero login pipehero start myapp --port 3000
2Add the endpoint in Clerk
In the Clerk Dashboard go to Webhooks → Add Endpoint and set the Endpoint URL to your Pipehero URL. Subscribe to events like user.created and session.created.
https://myapp.t.pipehero.app/webhooks/clerk
3Grab the signing secret
Clerk (via Svix) shows a signing secret starting with whsec_ for the endpoint.
4Inspect & replay
Every request shows up live in the dashboard (and the local panel at
localhost:4140) with headers and body. Hit Replay to re-send it to your localhost — no need to re-trigger the event at the provider. Requests that arrive while your CLI is offline are captured and can be replayed later.5Verify the signature
Clerk uses Svix signatures (`svix-id`, `svix-timestamp`, `svix-signature`; base64 over `{id}.{timestamp}.{body}`). Add your `whsec_…` signing secret under Signature verification — Clerk is built-in — to get a ✓/✗ badge on every event.
FAQ
How do I sync users to my DB locally?
Point Clerk at your Pipehero URL, then watch user.created/updated/deleted in the live tail and replay them into your handler as you build the sync.
Related
Start debugging webhooks in a minute
Free plan, no credit card. Expose localhost, inspect and replay every webhook.
Get started free