Blacklist
Your team's opt-out list. Numbers you add here are always skipped, whatever a campaign asks for. Keep it in sync with your own unsubscribe flows.
Endpoints live under /api/v1/ with a scoped mbs_ token or JWT. An entry can opt a number out of one sender (set sender_name) or out of everything your team sends (omit it).
Two kinds of block, one list
The list holds two different things and treats them differently.
- Yours. Anything you add through this API or the portal. These are skipped by every campaign unconditionally — there is no flag that overrides them, because an opt-out you recorded is an instruction.
- The carrier's. When a network reports that a subscriber has blocked one of your senders, we record it here too. These go stale: the network unblocks people and does not tell us. A campaign only skips them when
skip_blacklistedis set, which now defaults to off in the portal, and a later successful delivery clears the entry automatically.
The practical effect: leaving skip_blacklisted off reaches numbers the network unblocked months ago, and costs nothing if the block is still live — the message is rejected and the entry is put straight back.
Add a number
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| msisdn | string | Yes | The phone number, any accepted format (07…, 2547…, +2547…). |
| sender_name | string | No | Restrict the opt-out to this sender ID only. Omit for a global opt-out across all your senders. |
| reason | string | No | Free-text note, e.g. "replied STOP", "complained via support". |
# Paste your token once (it starts with mbs_):
export MOBILESASA_TOKEN="mbs_your_token_here"
curl -X POST https://api.mobilesasa.com/api/v1/blacklist \
-H "Authorization: Bearer $MOBILESASA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"msisdn": "0712345678",
"sender_name": "DUKAPAY",
"reason": "replied STOP"
}'View the list
# Paste your token once (it starts with mbs_):
export MOBILESASA_TOKEN="mbs_your_token_here"
curl "https://api.mobilesasa.com/api/v1/blacklist?page=1&page_size=50" \
-H "Authorization: Bearer $MOBILESASA_TOKEN"{
"success": true,
"data": [
{
"uuid": "e7a21c04-…",
"msisdn": "254712345678",
"sender_name": "DUKAPAY",
"reason": "replied STOP",
"created_at": "2026-07-11T08:12:44Z"
}
],
"meta": { "page": 1, "page_size": 50, "total": 1 }
}Remove an entry
Removing an entry re-enables sends to that number. Use it when a customer opts back in.
# Paste your token once (it starts with mbs_):
export MOBILESASA_TOKEN="mbs_your_token_here"
curl -X DELETE "https://api.mobilesasa.com/api/v1/blacklist/e7a21c04-…" \
-H "Authorization: Bearer $MOBILESASA_TOKEN"Blacklist straight from a message
If you're looking at a sent message (say, one a customer complained about), this shortcut blacklists its recipient against that message's sender in one call, no need to re-derive the msisdn.
Honour STOP replies automatically