Webhook Tester

1

Generate URL

Create a unique webhook endpoint URL

2

Send Requests

Configure your service to send webhooks to this URL

3

View Requests

See all incoming requests with headers and body

Your Webhook URL

Click "Generate Webhook URL" to create your endpoint

Incoming Requests (0)

📭

No requests yet

Send a webhook to your URL above to see it here

Features

Generate unique webhook URLs
Capture incoming requests
View request headers
View request body (JSON, form data)
Request history (last 10)
Timestamp for each request
HTTP method detection
Send test requests
Copy webhook URL
Real-time request capture

What is a Webhook?

A webhook is an HTTP callback that sends real-time data from one application to another when a specific event occurs. Instead of constantly polling an API for updates, webhooks push data to your application immediately when something happens, making them more efficient than traditional polling.

Webhooks are commonly used for notifications, integrations, and automation. For example, when a payment is completed, a payment processor sends a webhook to your server with transaction details. When testing webhook integrations, you need a publicly accessible URL to receive these HTTP requests.

Common Webhook Use Cases

Example webhook payload from GitHub:
{
  "action": "opened",
  "pull_request": {
    "id": 1,
    "title": "Add new feature",
    "user": {
      "login": "developer"
    }
  },
  "repository": {
    "name": "my-repo",
    "full_name": "user/my-repo"
  }
}

How to Use the Webhook Tester

Step 1: Generate Webhook URL

Click "Generate Webhook URL" to create a unique endpoint. This URL is where you'll send your webhook requests for testing. The URL remains active for your testing session.

Step 2: Configure Your Service

Copy the generated URL and paste it into your webhook configuration in the service you're integrating (GitHub, Stripe, Slack, etc.). Most services have a "Webhooks" or "Integrations" section in their settings.

Step 3: Trigger Events

Perform actions in your service that trigger webhooks (create a pull request, make a payment, send a message). The webhook tester will capture and display all incoming requests in real-time.

Step 4: Inspect Requests

View the complete request details including HTTP method, headers, and body. This helps you understand the webhook payload structure and debug integration issues.

Common Use Cases

1. Webhook Integration Development

When building webhook integrations, use this tester to see exactly what data your application will receive. Inspect the payload structure before writing code to handle it.

2. Debugging Webhook Issues

If webhooks aren't working in your application, use this tester to verify that the service is sending webhooks correctly. Check if the payload format matches your expectations.

3. Testing Without Local Server

During development, you may not have a publicly accessible server. Use this tester as a temporary endpoint to receive and inspect webhooks without setting up ngrok or similar tools.

4. Webhook Payload Documentation

Capture real webhook payloads to document the data structure for your team. This is especially useful when the service's documentation is incomplete or outdated.

5. Third-Party Service Verification

Verify that third-party services are sending webhooks as expected. Check timing, payload format, and headers before integrating into your production application.

Webhook Testing Examples

Example 1: GitHub Webhook

POST /webhook/abc123
Content-Type: application/json
X-GitHub-Event: push

{
  "ref": "refs/heads/main",
  "commits": [
    {
      "id": "abc123",
      "message": "Update README",
      "author": {
        "name": "Developer"
      }
    }
  ]
}

Example 2: Stripe Webhook

POST /webhook/abc123
Content-Type: application/json
Stripe-Signature: t=123,v1=abc

{
  "type": "payment_intent.succeeded",
  "data": {
    "object": {
      "id": "pi_123",
      "amount": 2000,
      "currency": "usd",
      "status": "succeeded"
    }
  }
}

Example 3: Slack Webhook

POST /webhook/abc123
Content-Type: application/json

{
  "type": "message",
  "user": "U123",
  "text": "Hello from Slack",
  "channel": "C123",
  "ts": "1234567890.123456"
}

Example 4: Custom Webhook

POST /webhook/abc123
Content-Type: application/json
X-Custom-Header: value

{
  "event": "user.created",
  "timestamp": "2024-02-08T10:30:00Z",
  "data": {
    "user_id": 123,
    "email": "user@example.com"
  }
}

Example 5: Form Data Webhook

POST /webhook/abc123
Content-Type: application/x-www-form-urlencoded

name=John+Doe&email=john@example.com&status=active

Frequently Asked Questions

How long does the webhook URL stay active?
The webhook URL remains active during your browser session. If you close the page or refresh, you'll need to generate a new URL. For persistent webhook testing, consider using dedicated services like webhook.site or RequestBin.
Can I use this for production webhooks?
No, this tool is for testing and development only. For production, implement proper webhook endpoints in your application with authentication, validation, and error handling.
How do I secure my webhooks?
In production, verify webhook signatures (like Stripe-Signature or X-Hub-Signature), use HTTPS, validate payload structure, and implement rate limiting. Most webhook providers include signature verification in their documentation.
What if I don't see incoming requests?
Check that you copied the correct URL, the service is configured to send webhooks, and you've triggered an event. Some services require webhook verification before sending events.
Can I replay webhook requests?
This basic tester displays requests but doesn't replay them. For replay functionality, use the service's webhook dashboard (GitHub, Stripe, etc.) or dedicated webhook testing tools.
How many requests can I capture?
The tester displays the last 10 requests. Older requests are automatically removed to keep the interface clean. For production logging, implement proper webhook logging in your application.
What HTTP methods are supported?
The tester captures all HTTP methods (GET, POST, PUT, DELETE, PATCH). Most webhook services use POST, but the tester handles any method.
Can I test webhooks locally?
For local development, use tools like ngrok to expose your local server to the internet, or use this tester to capture webhooks without running a local server.
Are webhook requests stored?
No, requests are only displayed in your browser and not stored on any server. All data is temporary and exists only in your browser session.
How do I handle webhook retries?
Most webhook services retry failed requests. In production, return HTTP 200 quickly, process webhooks asynchronously, and implement idempotency to handle duplicate requests.

Related Tools

Explore our other API and testing tools:

💙

Support TechConverter

Get $200 free DigitalOcean credit or sponsor us on GitHub!