Amazon SES · AsyncAPI Specification

Amazon Ses Events

Version

View Spec View on GitHub EmailEmail DeliverabilityEmail ServiceMarketing EmailNotificationSMTPTransactional EmailBulk EmailEmail ReceivingDKIMMessagingCloud InfrastructureAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://docs.aws.amazon.com/ses/latest/dg/event-publishing-retrieving-sns-contents.html
spec_type: null
spec_type_note: >-
  AWS publishes NO AsyncAPI document for Amazon SES. Searched the SES Developer Guide event-publishing
  section, the SES API v2 reference, the AWS docs llms.txt index and the awslabs/aws GitHub orgs; nothing.
  This file is the webhook/event catalogue captured from the published event-record documentation, so it
  carries a Webhooks pointer and NOT an AsyncAPI pointer. No AsyncAPI is fabricated.
delivery_model:
  name: SES event publishing
  mechanism: >-
    SES does not POST to a customer-supplied URL directly. Events are published to a configured event
    destination attached to a configuration set. One of those destinations is Amazon SNS, and an SNS topic can
    deliver to an HTTPS endpoint — that composition is how a SES event becomes a webhook.
  webhook_path: SES -> configuration set event destination -> Amazon SNS topic -> HTTPS subscription
  configured_by: CreateConfigurationSetEventDestination / UpdateConfigurationSetEventDestination
  selected_at_send: EmailContent + ConfigurationSetName on SendEmail / SendBulkEmail
  max_destinations_per_configuration_set: 10
destinations:
  - type: SNS
    http_capable: true
    docs: https://docs.aws.amazon.com/ses/latest/dg/event-publishing-add-event-destination-sns.html
    note: The only destination that yields an HTTP callback to a caller-owned endpoint.
  - type: EventBridge
    http_capable: false
    docs: https://docs.aws.amazon.com/ses/latest/dg/event-publishing-add-event-destination-eventbridge.html
  - type: CloudWatch
    http_capable: false
    docs: https://docs.aws.amazon.com/ses/latest/dg/event-publishing-add-event-destination-cloudwatch.html
  - type: Data Firehose
    http_capable: false
    docs: https://docs.aws.amazon.com/ses/latest/dg/event-publishing-add-event-destination-firehose.html
  - type: Pinpoint
    http_capable: false
    docs: https://docs.aws.amazon.com/ses/latest/dg/event-publishing-add-event-destination-pinpoint.html
envelope:
  discriminator_field: eventType
  discriminator_note: >-
    The field is named eventType when event publishing is configured, and notificationType on the legacy
    identity-level notification path. A consumer must handle both names.
  always_present:
    - eventType
    - mail
  payload_field_per_type: the lower-camel field matching the event type (bounce, complaint, delivery, send, reject, open, click, failure, deliveryDelay, subscription)
  mail_object_fields:
    - timestamp
    - messageId
    - source
    - sourceArn
    - sendingAccountId
    - destination
    - headersTruncated
    - headers
    - commonHeaders
    - tags
events:
  - type: Send
    payload_field: send
    description: SES accepted the message and will attempt delivery.
  - type: Delivery
    payload_field: delivery
    description: The recipient's mail server accepted the message.
  - type: Bounce
    payload_field: bounce
    description: The message was returned undelivered.
    subtypes:
      bounceType: [Undetermined, Permanent, Transient]
      bounceSubType: [Undetermined, General, NoEmail, Suppressed, OnAccountSuppressionList, MailboxFull, MessageTooLarge, ContentRejected, AttachmentRejected]
  - type: Complaint
    payload_field: complaint
    description: The recipient marked the message as spam.
    subtypes:
      complaintFeedbackType: [abuse, auth-failure, fraud, not-spam, other, virus]
      complaintSubType: [OnAccountSuppressionList]
  - type: Reject
    payload_field: reject
    description: SES accepted the message then rejected it, most often because it contained a virus.
  - type: Open
    payload_field: open
    description: The recipient opened the message and images were loaded.
  - type: Click
    payload_field: click
    description: The recipient clicked a link in the message.
  - type: Rendering Failure
    payload_field: failure
    description: A templated send failed because template data was missing or malformed.
  - type: DeliveryDelay
    payload_field: deliveryDelay
    description: Delivery was delayed and SES will retry.
    subtypes:
      delayType: [InternalFailure, General, MailboxFull, SpamDetected, RecipientServerError, IPFailure, TransientCommunicationFailure, BYOIPHostNameLookupUnavailable, Undetermined, SendingDeferral]
  - type: Subscription
    payload_field: subscription
    description: A contact changed their topic subscription preferences.
event_count: 10
recent_change:
  date: '2026-08-07'
  summary: Amazon SES now helps identify automated open and click events in event notifications.
  source: https://aws.amazon.com/about-aws/whats-new/2026/08/amazon-ses-automated-email-interactions/
  note: Adds signalling that distinguishes machine-generated opens/clicks (security scanners, prefetchers) from human ones.
docs:
  - https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html
  - https://docs.aws.amazon.com/ses/latest/dg/event-publishing-retrieving-sns-contents.html
  - https://docs.aws.amazon.com/ses/latest/dg/event-publishing-retrieving-sns-examples.html
  - https://docs.aws.amazon.com/ses/latest/dg/event-publishing-retrieving-firehose-contents.html