Create or send an email message
Queues, schedules, or sandbox-sends an email message. The legacy /v2/emails POST route is a backward-compatible alias for this operation.
subject is required unless template_id is supplied. When using template_id, do not also provide subject, html_body, or text_body; the template is rendered with template_variables.
Note: template lookup failures (not found, wrong account) return 400, not 404.
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
Message queued, scheduled, or sandbox-created.
Example response
{
"data": {
"recipient_statuses": {
"bounced": 2,
"delivered": 998
}
}
}Changes
Changed in 7 of the 61 revisions of this API.63330
- ▲
removed the required property
data/inserted_atfrom the response with the202statusresponse-required-property-removed
- ●
removed the optional property
data/send_atfrom the response with the202statusresponse-optional-property-removed
- ●
removed the optional property
data/suppressedfrom the response with the202statusresponse-optional-property-removed
- ●
added the new
daily_limit_exceededenum value to thedata/events/items/typeresponse property for the response status202response-property-enum-value-added
- ○
added the new optional request property
attachments/items/content_idnew-optional-request-property
- ○
added the new optional request property
attachments/items/dispositionnew-optional-request-property
- ○
added the new optional request property
forward_of_message_idnew-optional-request-property
- ○
added the new optional request property
in_reply_to_message_idnew-optional-request-property
- ○
added the new optional request property
reply_to_allnew-optional-request-property
- ○
added the new optional request property
scheduled_atnew-optional-request-property
- ○
added the new optional request property
tracking_settingsnew-optional-request-property
- ○
the request property
group_idbecame nullablerequest-property-became-nullable
- ○
request property
send_atdeprecatedrequest-property-deprecated
- ○
added the optional property
data/recipient_statusesto the response with the202statusresponse-optional-property-added
- ○
added the optional property
data/scheduled_atto the response with the202statusresponse-optional-property-added
- ○
added the required property
data/attachments/items/content_idto the response with the202statusresponse-required-property-added
- ○
added the required property
data/attachments/items/dispositionto the response with the202statusresponse-required-property-added
- ○
added the required property
data/attachments/items/sha256to the response with the202statusresponse-required-property-added
- ○
added the required property
data/attachments/items/size_bytesto the response with the202statusresponse-required-property-added
- ○
added the required property
data/attachments/items/urlto the response with the202statusresponse-required-property-added
- ○
added the required property
data/created_atto the response with the202statusresponse-required-property-added
- ▲
- ▲
added
RenderErrorResponseto the response bodyoneOflist for the response status422response-body-one-of-added
- ▲
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status400response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status401response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status403response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status404response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status409response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status413response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theerrors/items/coderesponse property for the response status503response-property-enum-value-added
- ●
added the new
recipient_suppressedenum value to theoneOf[email_ErrorResponse]/errors/items/coderesponse property for the response status422response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status400response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status401response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status403response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status404response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status409response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status413response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theerrors/items/coderesponse property for the response status503response-property-enum-value-added
- ●
added the new
reputation_suspendedenum value to theoneOf[email_ErrorResponse]/errors/items/coderesponse property for the response status422response-property-enum-value-added
- ○
added the optional property
oneOf[email_ErrorResponse]/suppressedto the response with the422statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the202statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the400statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the401statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the403statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the404statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the409statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the413statusresponse-optional-property-added
- ○
added the optional property
suppressedto the response with the503statusresponse-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
data/idempotency_keyfrom the response with the202statusresponse-required-property-removed
- ▲
removed the success response with the status
200response-success-status-removed
- ●
removed the request property
idempotency_keyrequest-property-removed
- ●
added the new
10027enum value to theerrors/items/coderesponse property for the response status400response-property-enum-value-added
- ●
added the new
10027enum value to theerrors/items/coderesponse property for the response status401response-property-enum-value-added
- ●
added the new
10027enum value to theerrors/items/coderesponse property for the response status403response-property-enum-value-added
- ●
added the new
10027enum value to theerrors/items/coderesponse property for the response status404response-property-enum-value-added
- ●
added the new
10027enum value to theerrors/items/coderesponse property for the response status503response-property-enum-value-added
- ●
added the new
10027enum value to theoneOf[email_ErrorResponse]/errors/items/coderesponse property for the response status422response-property-enum-value-added
- ●
added the new
10036enum value to theerrors/items/coderesponse property for the response status400response-property-enum-value-added
- ●
added the new
10036enum value to theerrors/items/coderesponse property for the response status401response-property-enum-value-added
- ●
added the new
10036enum value to theerrors/items/coderesponse property for the response status403response-property-enum-value-added
- ●
added the new
10036enum value to theerrors/items/coderesponse property for the response status404response-property-enum-value-added
- ●
added the new
10036enum value to theerrors/items/coderesponse property for the response status503response-property-enum-value-added
- ●
added the new
10036enum value to theoneOf[email_ErrorResponse]/errors/items/coderesponse property for the response status422response-property-enum-value-added
- ○
added the new optional
headerrequest parameterIdempotency-Keynew-optional-request-parameter
- ○
added the non-success response with the status
409response-non-success-status-added
- ○
added the non-success response with the status
413response-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
- ▲