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.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
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.
1 - 255^[A-Za-z0-9_-]{1,255}$Body
1Optional display name for string from; overrides from.name when provided.
Reply-to address. If provided as an object with a name, only the email is stored; the name is ignored.
Required unless template_id is supplied. When using a template, the template's subject is rendered; if the template has no subject or renders empty, the request returns 400.
HTML email body. Write-only; not returned in responses.
Plain text email body. Write-only; not returned in responses.
Custom email headers. Write-only; not returned in responses.
Tags for categorization. Write-only; not returned in responses.
Custom metadata. Write-only; not returned in responses.
Variables for Liquid template rendering. Non-object values may cause a 422 validation error on message creation, but are silently treated as an empty object for template rendering.
Future ISO 8601 time to schedule sending. Invalid or past timestamps are silently ignored and the email is sent immediately.
Optional unsubscribe group ID. Associates the message with an unsubscribe group for group-scoped suppression handling.
When true, bypasses suppression checks for overridable blocks. Requires the email:override API key scope. Overrides are audited. Non-overridable suppressions (hard bounces, spam complaints, invalid addresses) cannot be bypassed.