POST /v1/messages).
Sending email
All email messages use the shared send endpoint:channel_id in the request body selects the verified sender identity. The message_type controls billing and delivery rules.
| Message type | Use | Billing unit |
|---|---|---|
MESSAGE | Action-based sends — receipts, confirmations, password resets | Basic Message |
NEWSLETTER | Subscription sends — newsletters, promotions to opted-in contacts | Basic Message |
Email has its own independent volume tiers. Tier thresholds and pricing are visible in your dashboard.
Sender channels
Email channels define the sender address, verified domain, reply-to address, and which message types are permitted. Channels are managed in the dashboard.| Concept | Detail |
|---|---|
| channel_id | Email channel identifier (ch_ prefix). Required on every send. See Identifiers. |
| Sender domain | Domain you have verified with SPF, DKIM, and DMARC records. |
| message_type allowlist | Each channel is configured to allow MESSAGE, NEWSLETTER, or both. |
Deliverability
The platform enforces the following automatically:- Suppression lists — bounced, complained, and unsubscribed addresses are blocked from receiving future sends.
- Unsubscribe headers —
List-UnsubscribeandList-Unsubscribe-Postheaders are added to allNEWSLETTERsends. - Bounce handling — hard bounces set the contact status to
BOUNCEDand suppress the address.
Provider events → webhooks
Delivery events from the email provider are normalised and forwarded as Arowana webhook events. Email events use theemail.* prefix — not message.*.
| Event | When |
|---|---|
email.delivered | SMTP acceptance confirmed |
email.bounced | Hard or soft bounce received |
email.opened | Open pixel fired (requires HTML content) |
email.clicked | Link click tracked |
email.complained | Spam complaint received |
email.unsubscribed | One-click unsubscribe processed |
Action-based email
Field reference for
message_type: MESSAGE.Subscription email
Field reference for
message_type: NEWSLETTER.