List account email events
Lists account-level email events sorted oldest first by occurred_at asc, id asc. Each row contains a legacy email.-prefixed event_type and an additive canonical_event_type. Gateway rejection renders email.failed with canonical email.gw_reject; ambiguous injection timeout renders email.injection_timeout in both; MTA expiration renders email.bounced with canonical email.expired. Message-scoped queued, sending, sandbox, cancelled, and daily_limit_exceeded rows fan out per durable recipient with stable derived IDs matching webhook delivery. Scheduled is the cardinality exception: account polling retains one message-scoped scheduled row with its stored event ID, while scheduled webhook publication fans out per recipient with derived IDs; reconcile scheduled events by message ID, event type, and occurrence time rather than event UUID. Recipient-scoped stored rows retain their stored UUIDs across polling and webhook delivery. Legacy names are derived from stored rows; an AdminBounce row stored as failed renders email.failed in polling while its webhook retains email.bounced, both with canonical email.failed.
Query parameters
Number of results to return. Defaults to 25; maximum is 100. Invalid values are clamped to the valid range.
Opaque URL-safe Base64 cursor returned by a previous event list response. The legacy page[after] and flat page_cursor forms are also accepted.
Comma-separated list of event types to include. Also accepts repeated query parameters (e.g. event_type=delivered&event_type=bounced). Unknown values return no matches.
Dual-name compatibility: values are accepted bare or email.-prefixed. A legacy value keeps matching the rows it matched pre-rename — no widening: failed also matches the rows that now store the canonical names of the outcomes it covered (gw_reject, injection_timeout, expired); bounced matches stored bounced rows only (recipient-scoped Expirations stored failed pre-rename and never matched bounced, so expired is deliberately not a bounced expansion). A canonical value matches its own rows plus legacy rows whose recorded payload evidence proves that outcome (expired also surfaces legacy bounced rows with bounce_category: transient). The additive canonical_event_type field in each response row names the canonical outcome.
Filter events for a specific email message UUID. Invalid UUID values are silently ignored (no filter applied).
Inclusive ISO 8601 start timestamp. Defaults to 30 days ago when omitted.
Inclusive ISO 8601 end timestamp. When from is provided without to, defaults to from + 30 days.
Response
Paginated list of account email events.
Example response
{
"data": [
{
"event_type": "email.delivered",
"canonical_event_type": "email.delivered"
}
]
}Changes
Changed in 7 of the 99 revisions of this API.4916
- ▲
removed the required property
//from the response with the statusresponse-required-property-removed
- ▲
removed the required property
//from the response with the statusresponse-required-property-removed
- ▲
removed the required property
//from the response with the statusresponse-required-property-removed
- ●
deleted the
queryrequest parameterpage_cursorrequest-parameter-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ○
added the new optional
queryrequest parameterpage[cursor]new-optional-request-parameter
- ○
added the optional property
///to the response with the statusresponse-optional-property-added
- ○
added the optional property
///to the response with the statusresponse-optional-property-added
- ○
added the optional property
///to the response with the statusresponse-optional-property-added
- ○
added the optional property
///to the response with the statusresponse-optional-property-added
- ○
added the optional property
///to the response with the statusresponse-optional-property-added
- ○
added the optional property
///to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ▲
- ●
added the new
10011enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
domain_graduation_limit_exceededenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
daily_limit_exceededenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
recipient_suppressedenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to the//response property for the response statusresponse-property-enum-value-added
- ○
added the optional property
to the response with the statusresponse-optional-property-added
- ●
- ●
added the new
10027enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
10036enum value to the//response property for the response statusresponse-property-enum-value-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ○
endpoint added
endpoint-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○
- ▲
api path removed without deprecation
api-path-removed-without-deprecation
This revision also has 111 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ▲
Of the 99 revisions, 1 has no diff computed.