Skip to documentation

Webhook events

email.opened

The tracking pixel in the email was loaded.

When it fires

email.opened fires each time the email's tracking pixel is requested, so it needs open tracking enabled on the sending domain. Repeated opens produce repeated events. Mail clients that prefetch images and security scanners can trigger opens without a person reading the email. Opens are recorded for the email, not per recipient: data.to lists the email's recipients as sent.

Payload

json
{
  "type": "email.opened",
  "created_at": "2026-09-29T10:00:00.000Z",
  "data": {
    "created_at": "2026-09-29T09:59:59.000Z",
    "email_id": "YOUR_EMAIL_ID",
    "message_id": "SES_MESSAGE_ID",
    "from": "hello@example.com",
    "to": ["you@example.net"],
    "subject": "Welcome",
    "tags": {}
  }
}

The data fields are the common email fields described in email.sent.

Handle the event

Verify the signature and deduplicate by svix-id.