Splashify SMS

Docs

Open panel
Panel

Send a message

POST

/api/v1/sms/messages

API key or session

Sends one SMS using one of your approved templates.

Request

bash
curl -X POST https://api.splashifypro.com/api/v1/sms/messages \
  -H "Authorization: Bearer sms_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "9876543210",
    "dlt_template_id": "1234567890123456789",
    "variables": ["482913", "10"]
  }'

Response

json
{
  "success": true,
  "accepted": true,
  "message_id": "0f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
  "status": "sent",
  "parts": 1,
  "unicode": false,
  "charged": 0.18,
  "balance_after": 1250.32
}

A rejected message returns 200

This surprises people, so it is worth stating plainly.

If the request was well-formed and we processed it, the status is 200 even when the network refused the message. accepted is false and message explains it.

Why not 4xx

A 4xx would tell your code it sent a bad request, when what actually happened may be a configuration problem on our side that your retry logic cannot fix. Retrying a well-formed request against a problem that is not yours just produces load. Branch on accepted.

json
{
  "success": false,
  "accepted": false,
  "message_id": "0f1c2d3e-...",
  "status": "rejected",
  "message": "That mobile number does not look valid. Check it and try again.",
  "charged": 0
}

A message that is not accepted is never charged, and the text says so where the cause was not yours.

When the request itself fails

Other refusals arrive as 400 with a specific message: a template not yet approved, a sender ID not yet approved, or a DLT chain not yet verified. Each names what to fix, and none of them is retryable until you fix it.

Sending to a list

There is no bulk endpoint yet. Send one request per recipient, and:

  • Keep to the rate limit. A 429 means slow down, not fail.
  • Store every message_id. Reconciling a campaign without them is guesswork.
  • Check your balance first with GET /balance, rather than finding out halfway through.

Accepted is not delivered

The response tells you the network took the message. Whether it reached a handset comes later, through Message status or a delivery webhook.