Create a key to copy examples filled with your team.
Sending emails
What you can send today, and how it is queued.
Queue one message at a time. SMTP on port 587, HTTP inject on the cluster, or POST /api/v1/teams/:team_id/clusters/:cluster_id/sends. The REST call composes RFC822 and injects it. from must be a verified domain. The cluster must be sending_ready and have an SMTP credential.
Request body
| Field | Description |
|---|---|
from |
Verified From address. |
to |
Recipients. Array or comma-separated string. |
cc |
Cc addresses. Same shape as to. |
bcc |
Envelope recipients only. PostShiba omits the Bcc header. |
reply_to |
Reply-To address. |
subject |
Subject line. |
text |
Plain body. Used alone when html is blank. |
html |
HTML body. Used alone when text is blank. |
attachments |
Array of {filename, content_type, content}. content is base64. |
headers |
Extra headers. Reserved names are ignored. |
unique_args |
Scalars that come back on delivery webhooks. |
tenant |
Tenant id or slug. Scopes the From domain, credential, and suppressions. |
Pass both text and html and the composer builds multipart. One body stays a single part.
403 errors
| error | When |
|---|---|
cluster_not_ready |
The cluster is suspended or the shared pool is not up. |
domain_unverified |
from is not a verified, unsuspended sending domain. |
credential_missing |
The cluster has no live SMTP credential for that tenant. |
suppressed |
A to, cc, or bcc address is on the suppression list. |
There is no batch send, scheduled send, or hosted template. One POST queues one message.