Create a batch of email messages
Creates up to 1,000 email messages in a single request. Request-wide admission checks run first and can reject the whole batch before message creation. After those checks pass, each message is validated and sent independently; item-level failures do not affect other messages, and the processed batch returns 207 Multi-Status. Per-message failures include validation errors; when a template has strict_variables enabled, a missing required variable produces a per-item unprocessable_entity error naming that variable while the other messages continue.
Headers
Optional opaque, unquoted key for safely retrying the same logical request. Keys must contain 1 to 255 letters, numbers, hyphens, or underscores. Generate a unique UUID v4 for each operation and reuse it only when retrying that operation with the same request. Invalid headers—including duplicate, empty, malformed, or overlong values—return 400 with error code 10015. A request already in progress with the same key returns 409; reusing the key with a different request returns 422. Only successful responses are replayed, for up to 24 hours. Do not include sensitive data in the key.
Request body
Response
Multi-Status — returned after request-wide admission checks pass and item processing runs. Each message is validated and sent independently; per-message failures do not affect other messages in the batch. An invalid or non-future scheduled_at/send_at is reported as a per-item unprocessable_entity error while the remaining items continue. When all messages succeed, errors is empty and every item is in data; otherwise data contains successes and errors contains failures. Request-wide gates can instead return 4xx or 5xx.
Example response
{
"data": [
{
"recipient_statuses": {
"delivered": 998,
"bounced": 2
}
}
]
}Changes
Changed in 10 of the 99 revisions of this API.94937
- ●
added the new
expiredenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
gw_rejectenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
injection_timeoutenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
quarantine_expiredenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
quarantine_rejectedenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
quarantine_release_dispatchedenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
quarantine_releasedenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
quarantinedenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
scan_deferredenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
suppressedenum value to the////response property for the response statusresponse-property-enum-value-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 to the response body
oneOflist for the response statusresponse-body-one-of-added
- ▲
the response's body type changed from
objectto no type for statusresponse-body-type-changed
- ●
removed the optional property
from the response with the statusresponse-optional-property-removed
- ●
added the new
10011enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
10011enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
10011enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
10011enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
10011enum value to the//response property for the response statusresponse-property-enum-value-added
- ●
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
domain_graduation_limit_exceededenum 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
domain_graduation_limit_exceededenum 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
domain_graduation_limit_exceededenum value to the//response property for the response statusresponse-property-enum-value-added
- ▲
- ●
added the new
unprocessable_entityenum 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
This revision also has 34 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ▲
removed the success response with the status
response-success-status-removed
- ●
the optional response header
Idempotent-Replayedremoved for the status207optional-response-header-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
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
added the new
daily_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 optional request property
////new-optional-request-property
- ○
added the new optional request property
////new-optional-request-property
- ○
added the new optional request property
//new-optional-request-property
- ○
added the new optional request property
//new-optional-request-property
- ○
the request property
//became nullablerequest-property-became-nullable
- ○
request property
//deprecatedrequest-property-deprecated
- ○
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 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
- ○
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
- ○
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 new
recipient_suppressedenum 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
recipient_suppressedenum 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
recipient_suppressedenum 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 new
reputation_suspendedenum 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 new
reputation_suspendedenum 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 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 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
- ●
- ▲
for the
headerrequest parameterIdempotency-Key, the maxLength was decreased from512to255request-parameter-max-length-decreased
- ●
changed the pattern of the
headerrequest parameterIdempotency-Keyfrom^(?:[A-Za-z0-9_-]{1,255}|"(?:[\x20-\x21\x23-\x5B\x5D-\x7E]|\\["\\]){1,255}")$to^[A-Za-z0-9_-]{1,255}$request-parameter-pattern-changed
- ▲
- ▲
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 request property
//request-property-removed
- ●
added the new
10027enum value to the//response property for the response statusresponse-property-enum-value-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
- ●
added the new
10036enum value to the//response property for the response statusresponse-property-enum-value-added
- ○
added the new optional
headerrequest parameterIdempotency-Keynew-optional-request-parameter
- ○
added the non-success response with the status
response-non-success-status-added
- ○
added the non-success response with the status
response-non-success-status-added
- ○
added the non-success response with the status
response-non-success-status-added
- ○
added the non-success response with the status
response-non-success-status-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.