Skip to main content
Send one-off transactional messages — order confirmations, receipts, alerts. These bypass marketing consent, frequency caps and quiet hours (the recipient triggered them), but email still needs a verified From domain and SMS still goes through the sender-ID gate and the wallet. Both endpoints use the X-Sender-Tenant + X-API-Key headers and return 202 Accepted — the message is queued through the send pipeline.

Send email

fromEmail
string
required
Sender address. Its domain must be verified in your workspace.
subject
string
required
Max 500.
html
string
required
HTML body (max 500,000).
to
string
Recipient email. Provide to or contactId.
contactId
string
Recipient contact UUID.
fromName
string
Max 255.
replyTo
string
Reply-to email.
text
string
Plain-text body (max 500,000).

Response

messageId
string
The queued message’s ID.
If fromEmail’s domain isn’t verified, the send is rejected. See Domains & authentication.

Send SMS

body
string
required
Message text (max 1600).
to
string
Recipient phone (max 32). Provide to or contactId.
contactId
string
Recipient contact UUID.
senderId
string
Sender ID (max 11). Must be approved; defaults to the platform pool.

Response

messageId
string
The queued message’s ID.
Transactional SMS is wallet-gated — a 402 Insufficient SMS credits means you need to top up. The sender ID must be approved or the send fails with sender_id_not_approved at the worker.