Complete guide to webhook testing and management
webhook.party is a minimalist webhook testing service. Create password-protected channels, receive webhooks, inspect payloads, and view Markdown content all in one place.
Key Features:
Go to the homepage and create a channel with a secure password (min. 6 chars). You'll get:
/h/{id} to view and manage/{id} to receive webhookscurl -X POST http://localhost:3000/abc12345 \
-H "Content-Type: application/json" \
-d '{"message": "Hello webhook.party!"}'
Open your channel at http://localhost:3000/h/abc12345, enter your password, and see incoming webhooks in real-time.
Optional: Require a separate password when posting webhooks to your channel.
Setup: When creating a channel, check "Protect webhooks with password" and set a separate webhook password. This is different from your channel password.
Why two passwords? Your CI/CD system can post webhooks without needing the admin channel password.
Send webhook with password:
# Query parameter
curl -X POST http://localhost:3000/abc12345?password=webhook-secret \
-H "Content-Type: application/json" \
-d '{"data": "value"}'
# Header
curl -X POST http://localhost:3000/abc12345 \
-H "X-Webhook-Password: webhook-secret" \
-H "Content-Type: application/json" \
-d '{"data": "value"}'
Channels are automatically deleted 100 days after the last webhook is received. You can manually delete a channel anytime from its page or dashboard.
Visit /dashboard.html to manage all your channels:
Send structured JSON data:
curl -X POST http://localhost:3000/abc12345 \
-H "Content-Type: application/json" \
-d '{
"status": "success",
"user_id": 123,
"timestamp": "2024-08-12T19:30:00Z"
}'
Displayed as formatted JSON in the channel view.
Send and render Markdown content:
curl -X POST http://localhost:3000/abc12345?markdown=true \ -H "Content-Type: text/markdown" \ -d "# Deployment Successful - Service: api-v2 - Version: 1.2.3 - Status: OK"
Or use Content-Type: text/markdown header for auto-detection.
Rendered as formatted HTML in the channel view with support for:
Test webhook payloads from version control systems:
GitHub Settings → Webhooks → Add webhook Payload URL: https://webhook.party/webhook/your-channel-id Content type: application/json
Send Markdown alerts from monitoring systems:
#!/bin/bash curl -X POST https://webhook.party/alerts \ -H "Content-Type: text/markdown" \ -d "# ALERT: CPU High Server: prod-01 CPU: 95% Action: Scaling up instances"
Capture deployment logs and notifications:
# In your CI/CD pipeline
curl -X POST https://webhook.party/deployments?password=$WEBHOOK_PASSWORD \
-H "Content-Type: application/json" \
-d '{
"pipeline": "'$CI_PIPELINE_ID'",
"status": "success",
"branch": "'$CI_COMMIT_BRANCH'",
"duration": "'$CI_JOB_DURATION's"
}'
Quickly test how your application handles incoming webhooks without complex setup.
POST /api/channel/create — Create a new channelPOST /api/channel/{id}/verify — Verify channel passwordGET /api/channel/{id}/webhooks — Get all webhooksPOST /api/channel/{id}/delete — Delete channelPOST /{id} — Send webhook200 — Request successful202 — Webhook accepted (async processing)400 — Bad request (validation error)403 — Forbidden (wrong password)404 — Not found (channel doesn't exist)500 — Server errorIf your channel has password protection enabled on webhooks:
?password=your-passwordX-Webhook-Password: your-passwordDouble-check your channel ID. It must be exactly 8 characters.
Ensure you're using ?markdown=true or Content-Type: text/markdown.
Channels auto-delete after 100 days without incoming webhooks. Send a webhook to reset the timer.