API
Emails API
Message documents, templates, themes, assets, and test sends.
A message document is the versioned, linted email: TipTap content, subject, preheader, emailStyle, locale, and status.
Create: createMessageDocument, createMessageProposal, createMessageGeneration Read: getMessageDocument, getMessageContext, listMessageDocumentVersions, listMessageTemplates Revise: reviseMessageDocument, updateMessageDocument (title), translateMessageVariant, assistDraftMessage Preview / test: previewMessageDocument, previewDraftMessage, sendMessageTest Assets: uploadProjectAsset, listProjectAssets, listEmailIcons
Scope: write to draft; deliver is not required to confirm in the app, but sending always is. Agents should leave status: "proposed" until a human confirms.
Create a starter
POST with title / subject / locale and omit content to get a confirmed brand scaffold. If you supply a full body, default status is proposed unless you set it.
Subject is the inbox line (required). Title is internal (max 120). Preheader is required on revise (1–180 characters).
Revise
reviseMessageDocument sends subject, preheader, content, optional emailStyle and status (proposed | confirmed).
Lint runs on persist: placeholder URLs, missing heading/button/footer on marketing layouts, bad merge filters. Fix findings before confirm.
Idempotency-Key on generation and test send.
Copy into a Journey
copyMessageDocumentToJourney attaches a library email onto a node without silently forking unless you need an independent revision.
Templates, themes, sections
listMessageTemplates, listEmailThemes, pushEmailTheme, pushEmailStyles, listEmailSectionTemplates, pushEmailSectionTemplate. Push never mutates confirmed documents.
Test send
sendMessageTest delivers one addressed copy. It is not a campaign and does not enroll. Still requires a verified identity for real ESP delivery (local Mailpit in development).
Related
- The email editor
- Personalization
- Transactional send
- OpenAPI —
docs/openapi.ymlwins on fields