Are you tired of wrestling with webhook debugging? Do you struggle to capture, inspect, and replay requests in real-time without relying on complex tunneling tools or localhost setup? Look no further! Introducing the ultimate webhook testing suite for developers – a high-performance Apify Actor that's optimized for mobile marketing.

This innovative tool is designed to test, inspect, and automate incoming webhooks in real-time. With its sub-10ms logic execution and zero cold-start latency, you can say goodbye to tedious setup and hello to streamlined debugging. Perfect for testing webhook integrations from popular services like Stripe, GitHub, Shopify, or any other platform.

Interactive Demos

Run the following command while the Actor is active to see real-time streaming:

# Make sure the Actor is running locally on port 8080

npm start

# If authKey is configured, run with:

# AUTH_KEY=your-secret node demo_cli.js

node demo_cli.js

Test and inspect webhooks instantly without running localhost or complex tunneling tools. With our tool, you can create 100+ webhooks (vs platform UI limits), keep data for 365 days, parse up to 100MB payloads, and configure rate limiting – all in real-time!

Tips for Contributors

Want to test the Docker image locally? Check out our Local Docker Testing Guide.

Watch the 2-Min Narrated Walkthrough

You can run this Actor anywhere – on your local machine, VPS, or internal cloud – without an Apify account. It works as a standard Node.js application.

Option A: Run via npx (Zero Install)

npx webhook-debugger-logger

Option B: Clone & Install

git clone https://github.com/ar27111994/webhook-debugger-logger.git

cd webhook-debugger-logger

npm install

npm start

Note that when running via npx or npm start for the first time, the Actor will automatically generate a configuration file at storage/key_value_stores/default/INPUT.json. You can edit this file to change settings (like urlCount) in real-time! (The location respects APIFY_LOCAL_STORAGE_DIR if set).

Custom Deployments

You can configure the Actor via environment variables or JSON input:

# Example: 5 URLs, 72h retention, 100MB payload limit

INPUT='{"urlCount": 5, "retentionHours": 72, "maxPayloadSize": 104857600}' npm start

When running locally or self-hosted, you are not bound by the UI constraints of the Apify Platform:

  • URL Count: Create 100+ webhooks (vs platform UI limits) if your self-hosted instance has enough resources.
  • Retention: Keep data for 365 days. Fully configurable.
  • Payloads: Parse up to 100MB payloads (default 10MB) by setting maxPayloadSize.
  • Rate Limit: Fully configurable (e.g., 10,000+ per min) for management endpoints (/logs, /info, /replay). Applied per client IP.

Hot-Reload

To change settings while running (e.g., enable debug logging), simply edit storage/key_value_stores/default/INPUT.json. The Actor polls for changes every 5 seconds and applies them automatically.

Important Retention Update

Retention is activity-based: the expiration timer resets whenever the Actor is active (restarts/hot-reloads). This ensures your webhooks don't expire mid-debugging session. They only expire if you abandon the Actor for the full duration.

Stop Building Generic Tools

Start solving real problems! Use these pre-configured setup guides for your specific tech stack:

  • 💳 Stripe Hardening Pack: Verify signatures, inspect payloads, and replay payment events safely.
  • 🛍️ Shopify Launch Pack: Bridge Shopify webhooks to your local machine with 72h retention for high-traffic windows.
  • 💬 Slack & Messaging: Test complex message blocks and interactive components.
  • 💰 Revenue Recovery: Recover missed payments and reconcile Stripe/Shopify orders during high-burst launches.
  • 🌉 Low-Code Bridge: Optimize Zapier and Make (Integromat) costs by using the Actor as a smart pre-filter.
  • 📑 Legacy Migration: Safely compare raw payloads side-by-side when upgrading API versions or switching providers.

Debugging Webhooks is Painful

❌ Can't see what data services send

❌ No way to inspect payloads

❌ Localhost tunneling is complicated (ngrok, etc.)

❌ Failed webhook tests require service reconfiguration

Run Webhook Debugger – Get 3 unique webhook URLs – Configure service to send to those URLs – See all requests in real-time – Export logs as JSON/CSV

No setup required. No localhost tunneling. Takes 30 seconds.

| Feature | Description |

|---|---|

| URL Generation | Generate 1-10 temporary webhook URLs (Unlimited for self-hosted) |

| Request Logging | Capture ALL incoming requests (GET, POST, etc.) |

| Full Details | Headers, body, query params, IP, timing |

| Multi-Format | Handles JSON, Text, XML, and Form Data |

| URL Expiry | Webhook URLs expire automatically (configurable 1-72h, or Unlimited self-hosted) |

| Hot-Reloading | Configuration changes apply instantly without restarts (v2.7) |

| Export | Download logs as JSON or CSV from dataset |

Enterprise Update

Transform this Actor into a professional API mocking and workflow tool:

  • API Key Auth: Require a secret token for every incoming webhook.
  • IP Whitelisting: Lock down your endpoints to specific IPs or CIDR ranges.
  • Rate Limiting (v2.6): Protect your management endpoints (/logs, /info, /replay) with configurable per-IP rate limits. - Sensitive Data Masking (v2.6): Automatically redact known sensitive headers like Authorization and Cookie from your logs. - SSRF Protection (v2.8): Enterprise-grade Server-Side Request Forgery protection prevents your Actor from being used to scan internal networks (localhost, 10.x.x.x, etc.) during forwarding or replay.

Updates to the following settings are applied immediately without restarting the Actor:

  • authKey
  • maxPayloadSize
  • customScript
  • rate

With Webhook Debugger, you can say goodbye to tedious webhook debugging and hello to streamlined testing. Perfect for mobile marketing and any other use case where you need to test and inspect webhooks in real-time.