Send email

One call, up to 100 recipients — receipts, OTPs, notifications. Each recipient is billed individually and tracked to delivery.

Send

POST/api/v1/email/send

Parameters

FieldTypeRequiredDescription
tostring[]YesUp to 100 recipient addresses. Duplicates are collapsed; suppressed addresses are skipped (and not billed).
subjectstringYesThe subject line.
htmlstringNoHTML body. At least one of html or text is required.
textstringNoPlain-text body/fallback.
fromstringNoLocal part (billing) or full address on your verified domain. Omit to use the domain's default from-address.
domain_uuiduuidNoRequired only when your team has more than one verified domain.
curl -X POST https://api.mobilesasa.com/api/v1/email/send \
  -H "Authorization: Bearer $MOBILESASA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": [
      "[email protected]",
      "[email protected]"
    ],
    "subject": "Your July invoice is ready",
    "html": "<p>Hi! Invoice INV-2041 for KES 12,400 is attached to your account page.</p>",
    "from": "billing"
  }'
Response — 200
{
  "success": true,
  "data": {
    "accepted": 2,
    "suppressed": 0,
    "failed": 0,
    "cost_total": 0.2,
    "messages": [
      { "uuid": "aa1f…", "to_email": "[email protected]",   "status": "sent" },
      { "uuid": "bb2e…", "to_email": "[email protected]", "status": "sent" }
    ]
  }
}

Track what happened

GET/api/v1/email/messages

Every recipient is a message row whose status advances as the provider reports back: sent → delivered, or bounced / complained (both of which also suppress the address for you).

curl "https://api.mobilesasa.com/api/v1/email/messages?status=bounced&page=1" \
  -H "Authorization: Bearer $MOBILESASA_TOKEN"

Suppression is permanent by design

A hard bounce means the mailbox doesn't exist; a complaint means the person marked you as spam. Sending to either again damages your domain's reputation, so the platform won't — those addresses come back in the response as suppressed and cost nothing. Contact support to lift a suppression that was genuinely transient.

Need thousands of recipients?

Use bulk campaigns — same billing, asynchronous fan-out with progress counters.