Quickstart
Send your first webhook end to end in under five minutes.
This guide takes you from a fresh install to seeing a real webhook in the dashboard. The whole thing takes about three minutes if you already have a local server running.
A local HTTP server reachable on a port — anything from python -m http.server 4242 to your real app on port 3000. The FixedHook CLI from the installation guide and an alias you have access to.
The 5-minute walkthrough
Anything that responds to POST works. The minimum useful one is a one-liner that echoes the request:
# In a terminal
python3 -m http.server 4242In a second terminal, point the CLI at your server. The --alias flag tells the CLI which alias to attach to. If you configured a webhooks.yaml, just use the alias name.
fixedhook up --port 4242 --alias my-app-devYou should see:
✓ Connected to relay
✓ Alias my-app-dev is online
Public URL: https://my-app-dev.fixedhook.com
Local target: http://127.0.0.1:4242
Press Ctrl+C to disconnectFrom a third terminal, send a POST to your alias URL. The CLI proxies it to your local server.
curl -X POST https://my-app-dev.fixedhook.com/webhook \
-H "Content-Type: application/json" \
-d '{"event":"test","amount":4200}'The curl response is whatever your local server returned. The python3 -m http.server example will return a 501 because it only handles GET, and that's fine — the request still shows up in FixedHook with the original status and body.
Open the dashboard and click your alias. The event you just sent is at the top of the stream with the path, status, latency, and payload size.
Click the row to open the inspector. You'll see the full request headers, request body, response headers, response body, and the timing breakdown.
In the inspector, click Replay. The CLI receives the same payload with the same headers, and a new event appears in the stream tagged as a replay attempt.
What just happened
In those five steps you:
- Connected a local process to a permanent public URL.
- Sent a request to that URL from anywhere on the internet.
- Saw the request land in your dashboard in real time.
- Replayed it without re-issuing the original
curl.
From here, the same alias URL works from your laptop, a colleague's machine, a preview deployment, or production. The only thing that changes is the local process behind the tunnel.