mailkite_send
Send email messages from verified domains, using templates, attachments, scheduled sends, and open/click tracking.
Instructions
Send a message over a verified domain. Pass templateId (+ optional templateData) to send from a saved or base template. Requires an API key (mk_live_…).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | One recipient or a list. | |
| bcc | No | ||
| from | Yes | An address on a verified domain. | |
| html | No | ||
| text | No | ||
| headers | No | Extra raw MIME headers, applied after threading headers (caller wins). Use for what the structured fields can't express — e.g. `List-Unsubscribe`, a dedup/idempotency key (`X-Entity-Ref-ID`), or a tag header (`X-Tag`). Carried on both immediate and scheduled sends. | |
| replyTo | No | ||
| subject | No | Required unless supplied by a template. | |
| metadata | No | Structured metadata kept SERVER-SIDE for this send: stored on the message and echoed back on reads, but never emitted as a MIME header, so order ids, tenant keys, and internal correlation stay off the wire (that is the difference from `headers`). Scalar values only; at most 20 keys, keys ≤ 64 characters, string values ≤ 512. | |
| sequence | No | Enroll this recipient in a sequence when the send succeeds — the name or id of an ACTIVE sequence. Naming a sequence IS the consent: no trigger is involved, and an unnamed send enrols in nothing. The sequence's input is auto-injected from `templateData` and `metadata` (add `sequenceInput` for explicit params), and the message itself is readable in steps as {{trigger.from}}, {{trigger.subject}}, {{trigger.messageId}}. A name that does not exist, or a sequence that is not active, is answered on this call rather than silently ignored. | |
| inReplyTo | No | ||
| templateId | No | Send using a saved template — a user template (tpl_…) or a base template (base_…). Its subject/html/text seed the message; explicit subject/html/text here override them. | |
| trackOpens | No | Open-tracking override for this send (HTML only). Omitted → the from-domain's default applies. | |
| attachments | No | ||
| scheduledAt | No | Send later: ISO 8601, simple relative natural language ("in 2 hours"), or a ms-epoch. A future time parks the message with the scheduler — the response carries an ssnd_… id and status "scheduled", cancelable via DELETE /v1/scheduled/{id}. Omitted or past sends now. | |
| trackClicks | No | Click-tracking override for this send (HTML only): http(s) links are rewritten to a signed redirect that records the click, then 302s to the destination. Omitted → the from-domain's default applies. | |
| templateData | No | Values substituted into the template's {{merge_tags}} (e.g. {"name":"Ann"} fills {{name}}). HTML values are auto-escaped. | |
| sequenceInput | No | Explicit input for the sequence named in `sequence`, checked against its declared signature. Merged OVER the values auto-injected from `templateData` and `metadata`, so an explicit value always wins over one inferred from the message. |