Personalized bulk
A different message for every recipient in one request — statements, balances, due dates, anything per-person.
POSThttps://api.mobilesasa.com/v1/send/bulk-personalized
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| senderID | string | Yes | An approved sender ID on your account. |
| messageBody | array | Yes | Array of { phone, message } objects — each recipient with their own text. |
curl -X POST https://api.mobilesasa.com/v1/send/bulk-personalized \
-H "Authorization: Bearer $MOBILESASA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderID": "MOBILESASA",
"messageBody": [
{
"phone": "0712000001",
"message": "Dear Amina, your loan instalment of KES 5,400 is due on 15 Aug."
},
{
"phone": "0733000002",
"message": "Dear Peter, your loan instalment of KES 12,100 is due on 15 Aug."
},
{
"phone": "0700000003",
"message": "Dear Grace, your loan instalment of KES 3,250 is due on 15 Aug."
}
]
}'Response
json
{
"status": true,
"responseCode": "0200",
"message": "Accepted for delivery"
}Notes
- Billing is per part per message — a long message for one recipient doesn't affect what the others cost.
- Render the personalisation yourself (your data lives in your system). Pull names/amounts from your database, build the array, send once.
- Invalid phones in the array are skipped; the rest deliver. The daily duplicate rule applies per recipient.
- For per-message tracking IDs, loop v2 single sends instead — bulk-personalized doesn't return per-row IDs.