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.
| Event | Description |
|---|---|
email.sent | Email was accepted and is in transit. |
email.delivered | Delivery confirmed by the receiving mail server. |
email.bounced | Email 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.complained | Recipient marked the email as spam. |
email.opened | Recipient opened the email (requires track_opens). Fires once per email. |
email.clicked | Recipient clicked a tracked link (requires track_clicks). Payload includes link_id and url. |
* | Wildcard — subscribes to all current and future event types. |
Payload structure
{
"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.