Webhooks API

Create and list webhook subscriptions for delivery events.

Overview

Webhooks notify your server about email events (delivery, open, click, bounce, complaint, and more). Each subscription is scoped to one verified sending domain; events fire only when the email's from-domain is that domain or a subdomain of it.

Dashboard: Webhooks. Guide: Webhooks & Notifications.

Plan limits

PlanWebhooks
Free0 (upgrade required)
Pro3
Scale10

Routes

  • GET /api/webhooks — list (includes domainId and domain per webhook)
  • POST /api/webhooks — create (webhookUrl, subscribedEvents, domainId)
  • GET /api/webhooks/{id} — get one
  • PUT /api/webhooks/{id} — update (subscribedEvents, optional domainId)
  • DELETE /api/webhooks/{id} — delete
  • POST /api/webhooks/test — send a test payload

Auth: x-api-key header for API calls, or a signed-in dashboard session when using the UI.

curl -X POST https://notify.cx/api/webhooks \
  -H "Content-Type: application/json" \
  -H "x-api-key: $NOTIFY_API_KEY" \
  -d '{
    "webhookUrl": "https://example.com/webhooks/notify",
    "subscribedEvents": ["Delivery", "Bounce", "Complaint"],
    "domainId": "123e4567-e89b-12d3-a456-426614174000"
  }'

Response:

{
  "success": true,
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "webhookUrl": "https://example.com/webhooks/notify",
    "subscribedEvents": ["Delivery", "Bounce", "Complaint"],
    "domainId": "123e4567-e89b-12d3-a456-426614174000",
    "domain": "example.com",
    "createdAt": "2025-04-10T12:00:00Z"
  }
}

Interactive schema: /api-docs.