Send SMS

POST/sms-api/send

Send one message to a list of recipients, to whole contact groups, or both. Recipients are de-duplicated and normalised to the 233 format. The response returns a campaign id you can use to fetch per-recipient delivery status.

  • Cost is ceil(characters / 160) credits per recipient and is checked before sending.
  • Also accepted as GET with the same fields in the query string, for platforms that cannot POST JSON.

Parameters

  • sender_idstringrequired

    The id (UUID) of an approved sender ID, not its name.

  • messagestringrequired

    The text to send.

  • recipientsstring[]optional

    Phone numbers in local (024…) or international (23324…) format. Required unless group_id_list is given.

  • group_id_liststring[]optional

    Contact group ids to send to. Required unless recipients is given.

Errors

  • 402Insufficient balance. Please add funds to your account. (data.balance, data.smsCost)
  • 422Invalid Sender ID
  • 422At least one of recipients or group must be present.
  • 403Unauthorized. You do not own one or more of the contact groups.

Request

curl -X POST "https://api.bulkclix.com/api/v1/sms-api/send" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "sender_id": "9b1c2a3d-4e5f-4a6b-8c7d-1e2f3a4b5c6d",
  "message": "Your order #4521 has shipped and arrives tomorrow.",
  "recipients": [
    "0241234567",
    "0551234567"
  ]
}'

Response · 200

application/json
{
  "message": "Request Sent",
  "data": {
    "campaignId": "5f0d9c8e-2b1a-4c3d-9e8f-7a6b5c4d3e2f"
  }
}