email.failed
Fires when an email fails to send due to an error such as an invalid recipient, domain issue, or a reached quota.
The email.failed event fires when an email failed to send due to an error. Common causes include invalid recipients, API key problems, domain verification issues, or hitting your daily sending quota.
The data.failed object carries a machine-readable reason you can branch on.
{
"type": "email.failed",
"created_at": "2026-06-22T23:41:12.126Z",
"data": {
"campaign_id": "8b146471-e88e-4322-86af-016cd36fd216",
"created_at": "2026-06-22T23:41:11.894719+00:00",
"email_id": "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794",
"message_id": "<111-222-333@email.example.com>",
"from": "Acme <onboarding@example.com>",
"to": ["recipient@example.com"],
"subject": "Sending this example",
"template_id": "43f68331-0622-4e15-8202-246a0388854b",
"failed": {
"reason": "reached_daily_quota"
},
"tags": {
"category": "confirm_email"
}
}
}typestringoptionalThe event type that triggered the webhook.
created_atstringoptionalISO 8601 timestamp when the webhook event was created.
dataobjectoptionalEvent-specific data. The fields below live inside this object.
data.campaign_idstringoptionalIdentifier for the campaign, if applicable.
data.created_atstringoptionalISO 8601 timestamp when the email was created.
data.email_idstringoptionalUnique identifier for this email.
data.message_idstringoptionalRFC Message-ID header value for the email.
data.fromstringoptionalSender address; may include a display name.
data.tostring[]optionalRecipient email address(es).
data.subjectstringoptionalEmail subject line.
data.template_idstringoptionalIdentifier of the template used, if applicable.
data.failedobjectoptionalFailure details (see below).
data.failed.reasonstringoptionalReason for the failure, e.g. reached_daily_quota.
data.tagsobjectoptionalObject of tag key-value pairs associated with the email.