Send SMS
POST
/sms-api/sendSend 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_idstringrequiredThe id (UUID) of an approved sender ID, not its name.
messagestringrequiredThe text to send.
recipientsstring[]optionalPhone numbers in local (024…) or international (23324…) format. Required unless group_id_list is given.
group_id_liststring[]optionalContact group ids to send to. Required unless recipients is given.
| Field | Type | Required | Description |
|---|---|---|---|
sender_id | string | required | The id (UUID) of an approved sender ID, not its name. |
message | string | required | The text to send. |
recipients | string[] | optional | Phone numbers in local (024…) or international (23324…) format. Required unless group_id_list is given. |
group_id_list | string[] | 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" } }