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.