Send a transactional email
Sends one message to one recipient, from a stored template or inline HTML. It ignores opt-outs and carries no unsubscribe header, so never use it for marketing.
Authorization
AuthorizationRequiredBearer <token>API key as Bearer token: Authorization: Bearer sk_live_.... Use sk_live_ prefixed keys for production data and sk_test_ prefixed keys for sandbox/test data.
In: header
X-API-Key<token>API key via header: X-API-Key: sk_live_.... Use sk_live_ prefixed keys for production data and sk_test_ prefixed keys for sandbox/test data.
In: header
Request Body
application/jsonRequiredtoRequiredstring"email"templateSlugstringSlug of a stored transactional template. Mutually exclusive with html.
htmlstringInline body. Requires subject. Max 256 KB. Every {{token}} must have a value in variables or a {{token|fallback}} default, otherwise the request is rejected rather than sent with a blank.
subjectstringRequired for inline sends. Optional on a template send, where it overrides the template's subject. The body cannot be overridden.
textstringPlain-text alternative. Generated from the HTML when omitted.
variablesobjectValues substituted into {{name}} tokens. Values are HTML-escaped into the body.
replyTostring"email"fromNamestringchannelIdstringSending channel to use. Defaults to the template's channel, then to the workspace's oldest verified channel.
"uuid"idempotencyKeystringSend this on anything a retry could duplicate.
Repeating a key with the same payload returns the original message and sends nothing. If that original failed, the repeat is a 409 IDEMPOTENT_REPLAY naming the key — not a replay of the old error — because a key identifies one attempt; use a new key to send again.
Repeating a key with a different payload is a 409 IDEMPOTENCY_KEY_REUSED. The payload is compared on recipient, rendered subject and rendered body.
contactIdstringOptional CRM contact to link the message to.
"uuid"Sent