Renders the template with sample variable values and returns the resulting HTML + resolved subject. Draft region fields (base64) can be posted to preview unsaved edits. Deterministic tokens (partner title, theme colours) resolve from live white-label data; recipient/review/location tokens use sample placeholders. Never sends an email.
Auth: Both — authentication + an email-template feature check. company_id scoped by an ownership check; platform-owned types forbidden (403) for non-platform companies. (Only the reachable companies differ per role.)
Rate limit: No rate limit.
Request
- Body:
| Field | Type | Required | Notes |
|---|---|---|---|
| company_id | integer | Yes | Must be an existing account inside your own account tree. |
| type | string | Yes | Valid EmailTemplateType value. |
| header | string | No | nullable, base64 HTML, max:80000, token-validated. Falls back to saved/resolved if omitted. |
| body | string | No | nullable, base64 HTML, max:80000, token-validated. |
| footer | string | No | nullable, base64 HTML, max:80000, token-validated. |
| signature | string | No | nullable, base64 HTML, max:80000, token-validated. |
| subject_override | string | No | nullable, max:255, token-validated. Plain text. |
| template_mode | string | No | nullable, regions or html. Defaults to saved value. |
| custom_html | string | No | nullable, base64 HTML, max:400000. Used in html mode. |
| show_logo | boolean | No | Not in rules; read by the controller to override logo visibility for this preview only. |
Response — { data. } envelope with nested status + data object.
status(string) —success.data.html(string) — fully rendered email HTML document.data.subject(string) — resolved, variable-applied, tag-stripped subject.
Errors: 403 when the template type is platform-managed or the email-template section is disabled for your account.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
