GET /v1/transactionallists available templates.POST /v1/transactional/sendrenders and sends one template to one recipient.POST /v1/transactional/createcreates a new template.GET /v1/transactional/{templateId}fetches a single template’s metadata.PUT /v1/transactional/updateupdates an existing template.POST /v1/transactional/deletedeletes a template.GET /v1/transactional/{templateId}/content/{locale}fetches a locale’s content tree.PUT /v1/transactional/{templateId}/content/{locale}sets a locale’s content tree.
templateId is the workspace-unique slug ID (the id returned by the list endpoint), not the internal UUID.
Listing templates
GET /v1/transactional returns every active template in the workspace, including its rendered body and its variables:
htmlBody/textBodyare the rendered body for the template’s primary locale, with{{variable}}placeholders preserved. UseGET /v1/transactional/{templateId}/content/{locale}when you need the source component tree or a specific locale.variablesare the placeholders you supply in the send endpoint’sdataVariables.autoResolvedVariablesare platform-filled placeholders (for examplecompany_name,date, and anycontact.*field). MailKatana resolves these automatically at send time — do not pass them indataVariables. They are listed here so you know what the template references.
name, label, kind, data_type, required, auto_resolved, editable_in_rule, and optional sources / child_fields / legacy_aliases.
Email content is a component tree
Email bodies are built from a small, fixed set of React Email components rather than raw HTML. A template’s body (per locale) is a JSON component tree — an ordered list of nodes:types: container, section, header, footer, heading, text, button, link, image, list. {{variable}} placeholders are allowed in any text prop and are substituted at send time. The platform renders the tree to HTML/text and caches it; you never send raw HTML.
Example send
success and supplies the public Activity ID:
messageId to correlate the request with Email Activity. Acceptance does not
prove delivery or Inbox placement. A timeout remains ambiguous; do not blindly
resend it.
Managing templates
Create a template with metadata and an optionalcontent tree for the primary locale. The response id is the slug ID you pass to send, update, delete, content, and get-by-id endpoints.
content is present it replaces the primary-locale tree:
Rendering rules
- Email bodies render from the component tree;
dataVariablesuse simple{{key}}replacement against the rendered subject/body. - Locale fallback order is exact locale, base locale, workspace brand primary locale, then English.
Attachments
Attachments are base64-encoded and support these content types:application/pdfimage/pngimage/jpegtext/plaintext/csv
- up to 3 attachments
- 10 MB decoded per file
- 20 MB decoded total
- 25 MB total request size
Contact linking
WhenaddToContact is true, MailKatana best-effort creates or updates the recipient as a contact and links the outbound recipient row without changing marketing consent.