Documentation

API reference / Token auth

Templates

Create and publish reusable email templates from the canonical block document — compiled server-side to MJML and cross-client HTML.

MethodPathDescription
GET/v1/templatesList templates (summary view).
GET/v1/templates/{id}Get a template with its document + generated MJML/HTML.
POST/v1/templatesCreate a Draft template.
PUT/v1/templates/{id}Replace a template’s content (regenerates MJML+HTML, bumps version).
DELETE/v1/templates/{id}Delete a template.
POST/v1/templates/{id}/publishPublish a Draft template so the send API can use it.
POST/v1/templates/previewCompile-only preview of a document or stored template (no persistence).

GET /v1/templates

Token + X-MailStack-Org

List templates (summary view).

Response

[ { "id": "...", "name": "Welcome", "status": 1, "version": 3 } ]

GET /v1/templates/{id}

Token + X-MailStack-Org

Get a template with its document + generated MJML/HTML.

Response

{ "id": "...", "name": "Welcome", "status": 1, "version": 3, "compiledHtml": "<!doctype html>..." }

POST /v1/templates

Token + X-MailStack-Org

Template status is integer-encoded: Draft=0, Published=1. A template must be Published before the send API can render it by id.

Request body

{ "name": "Welcome", "document": { "settings": {}, "sections": [ ... ] }, "variables": { "name": "" } }

Response

{ "id": "...", "name": "Welcome", "status": 0, "version": 1 }

PUT /v1/templates/{id}

Token + X-MailStack-Org

Replace a template’s content (regenerates MJML+HTML, bumps version).

Request body

{ "name": "Welcome", "document": { ... } }

Response

{ "id": "...", "version": 4 }

DELETE /v1/templates/{id}

Token + X-MailStack-Org

Delete a template.

Response

{ "status": "ok" }

POST /v1/templates/{id}/publish

Token + X-MailStack-Org

Publish a Draft template so the send API can use it.

Response

{ "id": "...", "status": 1 }

POST /v1/templates/preview

Token + X-MailStack-Org

Compile-only preview of a document or stored template (no persistence).

Request body

{ "document": { ... }, "variables": { "name": "Sam" } }

Response

{ "mjml": "<mjml>...", "html": "<!doctype html>...", "errors": [] }

SDKs

Prefer a typed client? The Templates endpoints are covered by the official Node, .NET, Go, and Flutter/Dart SDKs.