Skip to main content
All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.
ParameterTypeDescription
typestringThe event type that triggered the webhook (e.g., email.sent, domain.created)
created_atstringISO 8601 timestamp when the webhook event was created
dataobjectEvent-specific data containing detailed information about the event

Email Event Payloads

Email events (email.sent, email.delivered, email.opened, email.clicked, email.bounced, email.complained, email.failed, email.delivery_delayed) share common parameters in the data object.

Common Email Parameters

ParameterTypeDescription
broadcast_idstringUnique identifier for the broadcast campaign (if applicable)
created_atstringISO 8601 timestamp when the email was created
email_idstringUnique identifier for the specific email
fromstringSender email address and name in the format “Name <[email protected]>“
toarrayArray of impacted recipient email addresses
subjectstringEmail subject line
tagsarrayArray of tag objects associated with the email

Tag Object Structure

ParameterTypeDescription
namestringThe tag key
valuestringThe tag value

Event-Specific Parameters

Email Bounced (email.bounced)

Additional bounce object in the data payload:
ParameterTypeDescription
bounce.diagnosticCodearrayArray of SMTP diagnostic responses from the receiving server, including the status code and reason for the bounce (e.g., smtp; 550 5.5.0 Requested action not taken: mailbox unavailable)
bounce.messagestringDetailed bounce message from the receiving server
bounce.subTypestringBounce sub-type (e.g., Suppressed, MessageRejected)
bounce.typestringBounce type (e.g., Permanent, Temporary)

Email Clicked (email.clicked)

Additional click object in the data payload:
ParameterTypeDescription
click.ipAddressstringIP address of the user who clicked the link
click.linkstringThe URL that was clicked
click.timestampstringISO 8601 timestamp when the click occurred
click.userAgentstringUser agent string of the browser that clicked the link

Email Failed (email.failed)

Additional failed object in the data payload:
ParameterTypeDescription
failed.reasonstringReason for the email failure (e.g., reached_daily_quota)

Domain Event Payloads

Domain events (domain.created, domain.updated, domain.deleted) contain domain configuration and DNS record information.

Domain Parameters

ParameterTypeDescription
idstringUnique identifier for the domain
namestringDomain name (e.g., example.com)
statusstringCurrent verification status of the domain (e.g., not_started, verified)
created_atstringISO 8601 timestamp when the domain was created
regionstringAWS region where the domain is configured (e.g., us-east-1)
recordsarrayArray of DNS record objects required for domain verification

DNS Record Object Structure

ParameterTypeDescription
recordstringRecord type purpose (e.g., SPF, DKIM)
namestringDNS record name/subdomain
typestringDNS record type (e.g., MX, TXT)
valuestringDNS record value to be set
ttlstringTime to live for the DNS record
statusstringVerification status of this specific record
prioritynumberPriority value for MX records (optional)

Contact Event Payloads

Contact events (contact.created, contact.updated, contact.deleted) contain information about audience contacts.

Contact Parameters

ParameterTypeDescription
idstringUnique identifier for the contact
audience_idstringUnique identifier for the audience this contact belongs to
created_atstringISO 8601 timestamp when the contact was created
updated_atstringISO 8601 timestamp when the contact was last updated
emailstringContact’s email address
first_namestringContact’s first name
last_namestringContact’s last name
unsubscribedbooleanWhether the contact has unsubscribed from the audience

Best Practices

  • Always validate the type field to determine how to process the payload
  • Store email_id for tracking and correlation with your application data
  • Use created_at timestamps for proper event ordering and deduplication
  • Handle missing optional fields gracefully (not all events include all parameters)
  • Check the status field in domain events to track verification progress
  • Monitor bounce types and reasons to improve deliverability
Looking for request body examples? Check out the Event Types page.