Email Templates

Create an email template

Creates a Liquid email template. Variables are auto-extracted when omitted.

post/email_templates

Headers

Idempotency-Keystring

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

namestring required

Letters, numbers, spaces, hyphens, and underscores only.

subjectstring nullable

Liquid template subject.

html_bodystring nullable

Liquid template HTML body.

text_bodystring nullable

Liquid template text body.

variablesstring[]

Template variables. Auto-extracted from subject/body fields when absent.

strict_variablesboolean

Per-template strict variable-validation setting. Defaults to false for backward compatibility. When true, a send or render that is missing a variable marked required: true in variable_schema fails with 422 naming the variable. Missing optional variables never fail; their schema default (when set) is applied to the render.

autoescapeboolean

Per-template HTML autoescaping setting. Defaults to false for backward compatibility. When true, the rendered html_body HTML-escapes each Liquid expression's output at the output boundary (after its filters run, before concatenation with literal template markup). Input values are never mutated and subject/text_body are never autoescaped. The boundary escape is idempotent: HTML entities already present in the output (e.g. from an explicit escape filter) are preserved, so an explicit escape/escape_once is never double-escaped, and markup introduced by any later filter in the chain is still escaped.

variable_schemaobject nullable

Structured variable requirements. Required variables cannot define defaults; invalid combinations return 422. This is independent of the legacy variables array. On render with strict_variables enabled: required variables must be supplied as non-empty values — absent, null, empty string, empty object {}, and empty array [] all fail with 422 naming the variable, while present values such as false and 0 pass (they are present, not empty). Optional variables fall back to their default when absent.

Response

Template created.

Changes

Changed in 7 of the 99 revisions of this API.22918

    • ○

      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 required property / to the response with the status

      response-required-property-added

    • ○

      added the required property / to the response with the status

      response-required-property-added

    • ○

      added the required property / to the response with the status

      response-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 10011 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10011 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10011 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10011 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10011 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10011 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new domain_graduation_limit_exceeded enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new domain_graduation_limit_exceeded enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new domain_graduation_limit_exceeded enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new domain_graduation_limit_exceeded enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new domain_graduation_limit_exceeded enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new domain_graduation_limit_exceeded enum value to the // response property for the response status

      response-property-enum-value-added

  • 2fb3b617430a126See the full diff
    • ●

      added the new recipient_suppressed enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new recipient_suppressed enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new recipient_suppressed enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new recipient_suppressed enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new recipient_suppressed enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new recipient_suppressed enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new reputation_suspended enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new reputation_suspended enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new reputation_suspended enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new reputation_suspended enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new reputation_suspended enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new reputation_suspended enum value to the // response property for the response status

      response-property-enum-value-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

  • 021f0faf96df11See the full diff
    • ▲

      for the header request parameter Idempotency-Key, the maxLength was decreased from 512 to 255

      request-parameter-max-length-decreased

    • ●

      changed the pattern of the header request parameter Idempotency-Key from ^(?:[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

  • b3c5aebde44c45See the full diff
    • ●

      added the new 10027 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10027 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10036 enum value to the // response property for the response status

      response-property-enum-value-added

    • ●

      added the new 10036 enum value to the // response property for the response status

      response-property-enum-value-added

    • ○

      added the new optional header request parameter Idempotency-Key

      new-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.