eusend
Webhooks

Events

Subscribe to any combination of these event types, or use * to receive all of them.

Subscribe to any combination of these event types, or use * to receive all of them.

EventDescription
email.sentEmail was accepted and is in transit.
email.deliveredDelivery confirmed by the receiving mail server.
email.bouncedEmail hard-bounced (permanent failure) and the address was suppressed. The payload includes bounce_type. Transient/soft failures are retried and do not fire this event.
email.complainedRecipient marked the email as spam.
email.openedRecipient opened the email (requires track_opens). Fires once per email.
email.clickedRecipient clicked a tracked link (requires track_clicks). Payload includes link_id and url.
*Wildcard — subscribes to all current and future event types.

Payload structure

example payload (email.delivered)
{
  "type": "email.delivered",
  "email_id": "9a8b7c6d-5e4f-4a3b-8c1d-0e9f8a7b6c5d",
  "recipients": ["alice@example.com"],
  "timestamp": "2026-05-20T10:00:03.000Z"
}

Every payload includes type, email_id, and timestamp. Some events add fields: provider_message_id (sent), recipients (delivered, bounced, complained), bounce_type (bounced), and link_id + url (clicked). Deliveries from a test-mode send also carry test_mode: true.

On this page