Webhooks push email events to your server the moment they happen, so you don't have to poll.
Add a webhook
Under Webhooks, add your HTTPS endpoint and choose the events you want: delivered, bounced, open, click.
Payload
{
"event_type": "delivered",
"email_id": "…",
"timestamp": "2026-07-31T08:15:00Z",
"data": { "recipient": "user@example.com" }
}
Headers include X-ESMS-Signature (HMAC-SHA256 of the body with your webhook secret), X-ESMS-Event, and X-ESMS-Delivery-ID.
Verify the signature
Compute sha256=HMAC(secret, raw_body) and compare to X-ESMS-Signature before trusting a payload. Reject anything that doesn't match.
Retries
Non-2xx responses are retried with backoff (1m, 5m, 30m, 2h, 8h). Respond 200 quickly and process asynchronously. Endpoints resolving to private/internal addresses are blocked for safety.