Webhooks
Webhooks
Subscribe to email events and receive real-time HTTP POST notifications at your endpoint.
Subscribe to email events and receive real-time HTTP POST notifications at your endpoint. Webhook deliveries are retried up to 3 times with exponential back-off on failure.
POST
/webhooks| Parameter | Type | Description |
|---|---|---|
urlrequired | string | Public HTTP(S) endpoint to receive events. Private, loopback, and internal addresses are rejected — both at creation and again (after DNS resolution) before each delivery. |
eventsrequired | string[] | Event types to subscribe to. Use "*" to subscribe to all events. |
curl -X POST https://api.eusend.dev/webhooks \
-H "Authorization: Bearer eu_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/eusend",
"events": ["email.delivered", "email.bounced", "email.complained"]
}'{
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"url": "https://yourapp.com/webhooks/eusend",
"events": ["email.delivered", "email.bounced", "email.complained"],
"secret": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789ABC",
"createdAt": "2026-05-20T10:00:00.000Z"
}⚠
The secret is only returned once, at creation time. Store it securely —
you'll need it to verify incoming webhook signatures.
ℹ
Your endpoint must respond directly with a 2xx status. Redirects (3xx) are
not followed and count as a failed delivery.
The rest of the webhooks surface:
GET
/webhooksList webhooks.
GET
/webhooks/:idGet webhook + recent deliveries.
PATCH
/webhooks/:idUpdate url / events.
DELETE
/webhooks/:idDelete webhook.