webhook.party

Test webhooks with password-protected channels

DocsDashboard

Create Channel


Access Channel


API Documentation

For complete API reference, use cases, and examples, see the full documentation.

Quick Reference — Password Requirements: Minimum 6 characters, maximum 255 characters.

Create Channel

POST /api/channel/create
Content-Type: application/json

{
  "password": "your-secure-password",
  "requirePasswordOnWebhook": false
}

Response (201):
{
  "id": "abc12345",
  "url": "/h/abc12345"
}

Errors:
- 400: Password required / too short / too long
- 500: Server error

Send Webhook

POST /{channelId}[?password=pwd][&markdown=true]
Content-Type: application/json (or text/markdown)

Body: Any valid JSON or Markdown text

Response (202):
{ "success": true }

Errors:
- 400: Invalid channel ID
- 403: Password required/incorrect (if requirePasswordOnWebhook=true)
- 404: Channel not found

Examples:
# JSON webhook
curl -X POST http://localhost:3000/abc12345 \
  -H "Content-Type: application/json" \
  -d '{"status": "ok"}'

# Markdown webhook
curl -X POST http://localhost:3000/abc12345?markdown=true \
  -H "Content-Type: text/markdown" \
  -d "# Title"

# With password protection
curl -X POST http://localhost:3000/abc12345?password=secret \
  -H "Content-Type: application/json" \
  -d '{"data": "value"}'

Verify Channel

POST /api/channel/{channelId}/verify
Content-Type: application/json

{
  "password": "your-password"
}

Response (200):
{ "success": true }

Errors:
- 400: Invalid channel ID
- 403: Wrong password
- 404: Channel not found

Get Webhooks

GET /api/channel/{channelId}/webhooks

Requires prior verification (verify endpoint)

Response (200):
[
  {
    "timestamp": "2024-08-12T17:45:11.340Z",
    "payload": {
      "method": "POST",
      "headers": {...},
      "body": {...},
      "query": {...},
      "ip": "::1"
    },
    "isMarkdown": false
  }
]

Errors:
- 400: Invalid channel ID
- 404: Channel not found

Delete Channel

POST /api/channel/{channelId}/delete
Content-Type: application/json

{
  "password": "your-password"
}

Response (200):
{ "success": true }

Errors:
- 400: Invalid channel ID
- 403: Wrong password
- 404: Channel not found

View full API documentation with examples