Back to blog

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:

  1. Localhost is not accessible from the internet
  2. Temporary URLs need to be reconfigured every session
  3. No replay — if the webhook arrived and your code had a bug, you need to re-trigger the event
  4. 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

  1. Create a “bin” on the site
  2. Receive a temporary URL
  3. Point the webhook to the URL
  4. 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

  1. Create an endpoint with a permanent URL
  2. Point the external service’s webhook
  3. Visualize in real time on the dashboard
  4. Automatic forwarding to your localhost (via dashboard or CLI)
  5. 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

FeaturengrokRequestBinwebhook.siteHookScope
Permanent URLPaidNoNoYes (all plans)
Forward to localhostYesNoPaidYes (dashboard + CLI)
Webhook replayNoNoNoYes
Real-time visualizationBasic dashboardYesYesWebSocket real-time
HistoryCurrent sessionTemporaryTemporary24h to 90 days
Installation requiredCLI mandatoryNoNoNo (CLI optional)
CLI for local debugYes (tunnel)NoNoYes (via SignalR)
Schema DiscoveryNoNoNoYes
Workflows/automationsNoPipedreamBasic actionsYes
Team/collaborationNoNoNoYes (Pro+)
Price (entry)US$8/monthFree (limited)US$9/monthR$0 (Free)
TCP/TLS tunnelYesNoNoNo

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:

  1. Create a free account (no credit card required)
  2. Create an endpoint and copy the URL
  3. Replace the ngrok URL in the external service (Stripe, GitHub, etc.)
  4. 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.