ngrok vs HookScope: which is the best tool for testing webhooks?
If you work with webhooks, you’ve probably faced the classic problem: your server runs on localhost, but the external service (Stripe, GitHub, Mercado Pago) needs a public URL to send notifications.
There are several tools that solve this. In this article, we do a complete comparison between the main ones: ngrok, RequestBin, webhook.site, and HookScope.
The problem: testing webhooks in development
During development, you need a way to receive webhooks in your local environment. The challenges are:
- Localhost is not accessible from the internet
- Temporary URLs need to be reconfigured every session
- No replay — if the webhook arrived and your code had a bug, you need to re-trigger the event
- No history — hard to debug issues from days ago
Each tool addresses these problems differently.
ngrok
ngrok is the most well-known tool for creating HTTP tunnels. It exposes your localhost to the internet via a temporary public URL.
How it works
ngrok http 3000
# Generates something like: https://abc123.ngrok-free.app
Pros
- Quick setup — install and run in seconds
- Works with any stack (Node, Python, .NET, etc.)
- Web dashboard to inspect requests
- Support for TCP and TLS tunnels
- Very popular, large community
Cons
- Temporary URLs on the free plan — changes on every restart
- No webhook replay — if you missed it, it’s gone
- Rate limit on the free plan (20 connections/minute)
- Requires CLI installation on the system
- Need to reconfigure the endpoint in the external service every session
- Paid plans are expensive (starting at US$8/month)
Ideal for
Quick, one-off tests when you need to expose localhost for an isolated test.
RequestBin
RequestBin (now part of Pipedream) captures and displays received webhooks in a web interface.
How it works
- Create a “bin” on the site
- Receive a temporary URL
- Point the webhook to the URL
- See the requests in the browser
Pros
- No installation — works in the browser
- Simple, visual interface
- Shows headers, body, and metadata
- Free for basic use
Cons
- No forwarding to localhost — only captures, doesn’t forward
- URLs expire quickly
- No webhook replay
- Integration with Pipedream can be confusing
- Not ideal for continuous development
Ideal for
Quick payload inspection — when you just want to see what the service is sending.
webhook.site
webhook.site is similar to RequestBin, with a richer interface.
How it works
Visit the site and receive an automatic URL. Webhooks sent to that URL are displayed in real time.
Pros
- Zero setup — open the site and it just works
- Beautiful interface with formatted JSON
- Support for Custom Actions (custom responses)
- Shows detailed headers and body
Cons
- No forwarding to localhost on the free plan
- Temporary URLs — expire after a while
- No automatic replay
- Strict limits on the free plan
- Pro plan is expensive for basic features
Ideal for
One-off debugging and payload inspection, similar to RequestBin but with a more complete interface.
HookScope
HookScope was designed specifically for the webhook development workflow — not just capture, but complete management.
How it works
- Create an endpoint with a permanent URL
- Point the external service’s webhook
- Visualize in real time on the dashboard
- Automatic forwarding to your localhost (via dashboard or CLI)
- Replay any webhook with 1 click
HookScope CLI
Besides the web dashboard, HookScope offers a CLI for local debugging:
# Install the CLI
dotnet tool install -g HookScope.Cli
# Authenticate
hookscope login --api-key YOUR_KEY
# Listen for webhooks and forward to localhost
hookscope listen my-endpoint --to http://localhost:3000
The CLI connects via SignalR to HookScope and forwards every webhook captured in the cloud to your local server in real time — preserving method, headers, and body. Unlike ngrok, the public endpoint URL never changes.
Pros
- Permanent URL — configure once, never change again
- Real-time via WebSocket — see webhooks arriving instantly
- 1-click replay — re-send any captured webhook
- Automatic forwarding — forwards to localhost or production
- CLI for local debug — receive webhooks on localhost via
hookscope listen, no tunnels - No mandatory installation — dashboard works 100% in the browser, CLI is optional
- Complete history — access webhooks from days/weeks ago
- Schema Discovery — automatically generates TypeScript/C# types
- Workflows — automations and conditional filters
- Free plan forever (no trial)
- Affordable pricing — starting at R$19/month
Cons
- Doesn’t create TCP/TLS tunnels (HTTP only)
- Newer product on the market
Ideal for
Continuous development with webhooks, teams integrating with multiple services, and anyone who needs replay and history.
Complete comparison
| Feature | ngrok | RequestBin | webhook.site | HookScope |
|---|---|---|---|---|
| Permanent URL | Paid | No | No | Yes (all plans) |
| Forward to localhost | Yes | No | Paid | Yes (dashboard + CLI) |
| Webhook replay | No | No | No | Yes |
| Real-time visualization | Basic dashboard | Yes | Yes | WebSocket real-time |
| History | Current session | Temporary | Temporary | 24h to 90 days |
| Installation required | CLI mandatory | No | No | No (CLI optional) |
| CLI for local debug | Yes (tunnel) | No | No | Yes (via SignalR) |
| Schema Discovery | No | No | No | Yes |
| Workflows/automations | No | Pipedream | Basic actions | Yes |
| Team/collaboration | No | No | No | Yes (Pro+) |
| Price (entry) | US$8/month | Free (limited) | US$9/month | R$0 (Free) |
| TCP/TLS tunnel | Yes | No | No | No |
When to use each one?
Use ngrok when:
- You need a TCP/TLS tunnel (not just HTTP)
- You want to quickly expose any localhost port
- You already have a configured setup and don’t want to change
Use RequestBin when:
- You want to quickly see a webhook’s payload
- You don’t need forwarding to localhost
- It’s a one-time, isolated test
Use webhook.site when:
- You need to inspect webhooks with a rich interface
- You want to configure custom responses
- You don’t need forwarding or replay
Use HookScope when:
- You work with webhooks daily
- You need replay to debug integrations
- You want a permanent URL without reconfiguring
- You need automatic forwarding to localhost (via dashboard or CLI)
- You want local CLI debugging without tunnels (
hookscope listen) - You work in a team and need collaboration
- You want to generate types/DTOs from received payloads
- You’re looking for an affordable tool
Migrating from ngrok to HookScope
If you already use ngrok and want to try HookScope:
- Create a free account (no credit card required)
- Create an endpoint and copy the URL
- Replace the ngrok URL in the external service (Stripe, GitHub, etc.)
- Set up forwarding via dashboard or use the CLI:
dotnet tool install -g HookScope.Cli
hookscope login
hookscope listen my-endpoint --to http://localhost:3000
The URL never changes, so you don’t need to reconfigure when you restart your development environment.
Conclusion
Each tool has its niche. For quick, one-off tests, ngrok and webhook.site work well. For continuous development with webhooks, where you need replay, history, and automatic forwarding, HookScope was designed exactly for that.
Try HookScope for free and see the difference in your development workflow.