Callback Handler
Callback Handler helps you create unique URLs for receiving, inspecting, and debugging HTTP requests in real time.
It is built for webhook testing, callback inspection, request replay, quick endpoint sharing, and lightweight API debugging without needing to spin up a custom receiver every time.
Live service:
- Create a custom or auto-generated slug
- Receive requests on a live endpoint
- Inspect headers, payloads, query params, IPs, and timestamps
- Test your endpoint directly from the UI
- Customize the response returned by the endpoint
- Export captured traffic as JSON or CSV
- Use the service as a guest or sign in for account-linked management
- View and manage your saved slugs
- Submit and track feature requests
- Support the project from the public support page
Go to:
From the top navigation you can access:
Feature RequestsSupport UsGitHub
From the footer you can access:
Privacy PolicySupport UsFeature Requests
A slug is the unique path segment that becomes your live request endpoint.
Example:
https://callback-handler.vercel.app/record/my-webhook-0405
You can create a slug in two ways:
- type your own slug
- click
Auto Generate
The homepage automatically normalizes custom slugs into a safe URL format.
Guests do not need to sign in to start using the service.
Steps:
- Open the homepage.
- In
Get Started, type a slug or clickAuto Generate. - Click
Start Recording. - You will be redirected to your live record page.
Important guest behavior:
- your browser is marked as the creator of that slug
- guest traffic is still logged
- guests can continue using the slug without creating an account
- guest viewers only see the most recent limited history in the UI
- older guest traffic is still retained for admins and internal tracking
Signed-in users get a more persistent, account-linked workflow.
Steps:
- Sign in from the homepage using the available provider.
- Type a slug or generate one automatically.
- Click
Start Recording. - Visit the new record page.
- The slug is associated with your account when ownership is available.
Benefits for signed-in users:
- your slugs appear on the dashboard
- you can revisit and manage them later
- you can request deletion with an audit trail
- you can access account-specific views like
My SlugsandMy Feature Requests
Once your record page is open, your endpoint is live.
Example endpoint:
https://callback-handler.vercel.app/record/my-webhook-0405
You can now send requests from:
curl- Postman
- Insomnia
- your backend application
- third-party webhooks such as Stripe, Slack, GitHub, or custom services
curl -X POST https://callback-handler.vercel.app/record/my-webhook-0405 \
-H "Content-Type: application/json" \
-d '{"event":"user_signup","id":123}'curl -X POST https://callback-handler-ui.vercel.app/record/my-webhook-0405 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "event=payment_succeeded&amount=1250"fetch('https://callback-handler.vercel.app/record/my-webhook-0405', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
source: 'browser',
test: true
})
})Every slug has its own request viewer page:
/record/[slug]
On that page you can inspect:
- request method
- response status
- timestamp
- IP address
- query parameters
- headers
- request body
- returned response body
This is the core workflow for debugging incoming webhooks or callbacks.
The Test Endpoint section helps you quickly send sample requests to your own slug.
Available actions include:
- switching between
cURLandBrowser Console - copying the request example
- running the request directly using the built-in
Testaction
This is useful when:
- you want to validate your slug before wiring a third-party integration
- you want to test response configuration changes
- you want to reproduce request shapes quickly
The Response Configuration panel lets you control what the endpoint returns.
You can customize:
- status code
- content type
- response body
Example use cases:
- return
200 OKwith JSON - simulate
202 Accepted - respond with custom text or XML
- test webhook retry behavior in other systems
Signed-in users can view their slugs from the dashboard.
Dashboard route:
/dashboard
What you can do there:
- see all slugs linked to your account
- open each slug’s record page
- copy endpoint URLs
- see creation timestamps
- request slug deletion with a reason
Guests do not get the full My Slugs dashboard experience.
Signed-in users can request deletion for a slug from the dashboard.
How it works:
- Open
My Slugs. - Find the slug you want to remove.
- Start a deletion request.
- Enter the reason for deletion.
- Submit the request.
Deletion behavior:
- a reason is required
- the deletion request is logged for admins
- deletion is delayed to allow reporting and audit workflows
- archives are staged before removal
- identifying user data is stripped in archived deletion staging
This is designed to preserve auditability while still allowing cleanup.
Callback Handler includes a dedicated feature request flow.
Public page:
/feature-requests
What users can do there:
- submit a feature title
- explain the use case
- leave an email for updates
- pass CAPTCHA verification
What happens after submission:
- the request is saved in the backend
- a GitHub issue is opened automatically
- admins can review and respond
- when the linked issue is closed, the requester can be notified
Signed-in users can track their own submitted feature requests.
Route:
/my-feature-requests
This page shows:
- request title
- status
- admin response
- GitHub issue state
- update timestamps
- issue links when available
This gives requesters a proper follow-up flow instead of submitting ideas into a blind form.
The project includes a public support page.
Route:
/support
Users can open the hosted support flow from there.
This keeps payments outside the main application experience while still giving people a clean way to contribute financially.
The public privacy page is available at:
/privacy
It explains:
- what authentication data is collected
- what request data is captured
- retention expectations
- third-party services involved
- your rights and contact path
Use this when you want to test a webhook quickly without signing in.
- Open the homepage.
- Create a slug like
quick-test. - Click
Start Recording. - Copy the endpoint URL.
- Send a test request with
curl. - Inspect the request on the record page.
- Optionally change the response configuration.
Use this when you want persistent management and tracking.
- Sign in.
- Create a slug.
- Send real traffic to it.
- View the slug in the dashboard later.
- Export requests if needed.
- Request deletion when the slug is no longer needed.
- Track your feature requests from your account page.
Use this when testing an external integration.
- Create a slug.
- Copy the full endpoint URL.
- Paste it into the third-party provider’s webhook settings.
- Trigger an event from that provider.
- Open the record page and inspect:
- headers
- payload
- response code returned
- adjust the response configuration if the provider expects a different reply
- trigger the external event again and compare results
curl -X POST https://callback-handler.vercel.app/record/stripe-debug-0405 \
-H "Content-Type: application/json" \
-d '{
"type":"payment_intent.succeeded",
"data":{"object":{"id":"pi_123","amount":2500}}
}'curl -X POST https://callback-handler.vercel.app/record/github-debug-0405 \
-H "Content-Type: application/json" \
-H "X-GitHub-Event: push" \
-d '{
"ref":"refs/heads/main",
"repository":{"full_name":"patricmutwiri/callback-handler-ui"}
}'On the record page set:
- Status code:
202 - Content type:
application/json - Response body:
{"accepted":true}Then send a test request again and verify the caller gets the updated response.
If you want to run the service locally:
- Clone the repo.
- Install dependencies.
- Set environment variables.
- Run the dev server.
git clone https://github.com/patricmutwiri/callback-handler-ui.git
cd callback-handler-ui
npm install
npm run devThen open:
The application uses external services depending on enabled flows.
Examples include:
- Vercel KV
- NextAuth providers
- Pusher
- SMTP
- GitHub issue creation
- Turnstile CAPTCHA
If you are self-hosting, make sure all required environment variables are configured for the features you want to use.
Callback Handler is useful for:
- backend developers
- frontend developers integrating webhooks
- QA teams testing callbacks
- DevOps and platform engineers validating outbound integrations
- indie hackers and product builders debugging automations
- App: callback-handler.vercel.app
- Feature Requests: callback-handler.vercel.app/feature-requests
- Support: callback-handler.vercel.app/support
- Privacy: callback-handler.vercel.app/privacy
- Repository: github.com/patricmutwiri/callback-handler-ui
If you find a bug, have a product idea, or want to improve the service:
- open an issue
- submit a feature request from the app
- contribute through GitHub
- support the project from the support page
Callback Handler is built to make request debugging simple:
- create a slug
- send traffic
- inspect what arrived
- adjust the response
- repeat until your integration works
That makes it a fast tool for day-to-day webhook and callback troubleshooting.
Made with ❤️ for us by us.




