Self-hosted webhook inspector
See every webhook as it arrives.
Create a catch URL, point any service at it, and inspect the method, headers, query parameters, and body in real time. Webhook Inspector runs on your own Postgres, so requests stay in your database.
One URL per endpoint. The last 100 requests are kept.
A captured request, as it appears in your dashboard.
Showing the Stripe payment sample request.
/api/v1/stripe-hookjust nowHeaders
- content-type
- application/json
- x-stripe-signature
- sha256=9f2c...4a1b
- user-agent
- stripe/1.0
Body
{
"type": "payment_intent.succeeded",
"data": {
"object": {
"amount": 4200,
"currency": "usd"
}
}
}What you get
Live request stream
New requests appear as soon as they are stored. The dashboard listens to Postgres notifications over SSE, so you do not wait for a poll.
Full payload captured
Headers, query parameters, and the body are stored per request: JSON, form-urlencoded, text, and multipart text fields. Open any request to inspect it as a tree or raw JSON.
One URL per endpoint
Every endpoint gets its own catch URL. Requests are scoped to your account in SQL, so another user cannot read what your test sent.
Privacy by default
Self-hosted: no third-party analytics. Better Auth owns account email and name, and every request query is locked to its owner.
How it works
1. Create an endpoint
Sign in, create an endpoint, and copy its URL.
2. Point any service at it
Paste it into an integration that sends webhooks: Stripe, GitHub, a CI pipeline, a payment gateway, your own code.
3. Inspect what arrives
Watch the request appear in real time and inspect method, headers, query, and body. Delete, deactivate, or change the endpoint slug anytime.