SSoftLinkSMSDocs
Email

Send an email to one or more recipients

POST
/api/v1/email

Queues a transactional email for delivery to up to 1000 recipients. Each recipient receives an individual EmailMessage record; delivery is dispatched asynchronously via a background task. Recipients on the suppression list (prior bounce, complaint, or unsubscribe) are rejected.

Authorization

apiKeyAuth
headerX-Api-Key<token>

Your API key, sent as X-Api-Key. Format bsk_<key_id>.<secret>. Create one in the dashboard under Settings → Developer tools.

Header Parameters

Idempotency-Key?string

Makes retries safe. Send a unique value (a UUID works) per logical send; repeating the request with the same key within 24 hours returns the original response with Idempotent-Replayed: true instead of sending and charging again. Reusing a key with a different body is 422 idempotency_key_reused. Max 255 characters.

Request Body

  1. body
recipients*array<>
Items1 <= items <= 1000
subject*string
Length1 <= length <= 255
body*string
Length1 <= length
traffic_class?string

Email is transactional only (receipts, codes, alerts) and needs approval. See GET /sending-profile.

  • promotional - Promotional
  • transactional - Transactional
Default"transactional"
Value in"promotional""transactional"

Response Body

Queued. One email per recipient, all sharing batch_id.

application/json
  1. response
batch_id*string

Shared by every message in this send, and by their webhook events.

Formatuuid
recipients*integer

Number of messages queued.

total_price*string

Total cost of the send as a decimal string, e.g. 1.20. Charged up front.

currency*string

ISO 4217 code, e.g. KES.

messages*array<>

One email per recipient.

Example Request
curl -X POST 'https://api.softlinksms.co.ke/api/v1/email' \  -H 'Content-Type: application/json' \  -d '{  "recipients": [    "user1@example.com",    "user2@example.com"  ],  "subject": "Your order has shipped!",  "body": "<p>Your order has shipped!</p>"}'
Example Response
{  "batch_id": "7b2e4c1d-0a9f-4e3b-8c6d-5f1a2b3c4d5e",  "recipients": 1,  "total_price": "0.25",  "currency": "KES",  "messages": [    {      "id": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",      "traffic_class": "transactional",      "recipient": "user1@example.com",      "price": "0.25",      "currency": "KES",      "batch_id": "7b2e4c1d-0a9f-4e3b-8c6d-5f1a2b3c4d5e",      "message_id": null,      "response_code": null,      "response_description": null,      "status": "pending",      "created_at": "2026-10-19T08:15:00.412000Z"    }  ]}