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.
| Method | Path | Description |
|---|---|---|
| GET | /v1/templates | List templates (summary view). |
| GET | /v1/templates/{id} | Get a template with its document + generated MJML/HTML. |
| POST | /v1/templates | Create 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}/publish | Publish a Draft template so the send API can use it. |
| POST | /v1/templates/preview | Compile-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.