SMS API

SMS API for South African apps and websites

Send OTPs, alerts and reminders from your own system with one HTTPS request. Delivery reports come back to your server, and every message uses the same prepaid credits as the portal.

  • REST and JSON
  • Delivery reports
  • From 22c an SMS

Example request

POST /v1/messages
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "to": "27821234567",
  "message": "Smile Dental: See you at 10:00."
}

What you can build

What developers use our SMS API for

One-time PINs

Login codes, password resets and payment approvals, sent as soon as your system asks.

Booking reminders

Appointment and booking reminders straight from your booking system.

Order and delivery updates

Shipped, out for delivery and ready for collection, from your online store.

System alerts

Tell your team when a server, sensor or payment needs attention.

Two-way confirmations

Ask a question and handle YES or NO replies in your own system.

Sends from your CRM

Trigger messages to customer lists from the software you already use.

How it works

How the SMS API works

  1. Get your API key

    Open an account and we send your API key and the full documentation.

  2. Send a request

    POST the number and message over HTTPS, with your API key.

  3. Get a message ID

    Each message gets an ID, so you can match delivery reports to your records.

  4. Receive delivery reports

    Reports go to your webhook URL, or you can check them in the portal.

A simple REST API

Send a message with one authenticated POST request, then read the JSON response. Any language that can make an HTTPS request works: PHP, Python, Node.js, C#, Java and more.

The example is simplified. Your account comes with the exact endpoints, field names and keys.

  • HTTPS with a private API key
  • JSON requests and responses
  • Delivery reports by webhook
  • The same credits as the portal

Request

POST /v1/messages
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "to": "27821234567",
  "message": "Smile Dental: See you at 10:00."
}

Response

{
  "id": "msg_8f2c1a",
  "status": "queued",
  "parts": 1
}

Sending OTPs by SMS

One-time PINs suit SMS because every customer can receive one, with or without data or a smartphone. A few habits keep them fast, safe and cheap:

  • Put the code first, so it shows in the notification preview.
  • Say what the code is for and when it expires.
  • Tell people never to share it.
  • Limit how many codes one number can request, so nobody can run up your bill.
  • Keep promotions out of PIN messages. A PIN message should only carry the PIN.
Login code

482913 is your Main Street Gym login code. It expires in 5 minutes. Never share it.

83 characters · 1 SMS

Order confirmation code

Main Street Butchery: Use 7310 to confirm your R1,250.00 online order. Ignore this SMS if you didn't place it.

110 characters · 1 SMS

API pricing

Same prices as the portal

API messages use the same prepaid credits, with no monthly API fee.

Try it out

1,000SMS · Starter pack

R0.30 per SMS

R300

Buy Starter
Weekly senders

10,000SMS · Plus pack

R0.25 per SMS

R2,500

Buy Plus
Big lists

20,000SMS · Business pack

R0.23 per SMS

R4,600

Buy Business
Best rate

50,000SMS · Volume pack

R0.22 per SMS

R11,000

Buy Volume
  • No setup or monthly fees
  • Credits last 3 years
  • Delivery reports included
  • Prices are final, no VAT added

Questions

SMS API questions

Do API messages cost more than portal messages?

No. Both use the same prepaid credits at the same price, down to 22c an SMS on the Volume pack.

Can I get delivery reports through the API?

Yes. Delivery reports can go to a webhook URL on your server, and you can see them in the portal too.

Which programming languages can I use?

Any language that can send an HTTPS request and read JSON, including PHP, Python, Node.js, C#, Java and Go.

Can I test the API before I buy a big pack?

Yes. Start with the Starter pack, or WhatsApp us and we'll help you send a test to your own number first.

How do I keep my API key safe?

Keep it on your server and never put it in a mobile app or web page, where anyone could find it. If a key leaks, ask us to replace it.

Can I send one-time PINs (OTPs)?

Yes. The API suits one-time PINs well. Keep the message short and put the code first.

Ready to connect your system?

WhatsApp us for API access. We'll open your account, send your API key and documentation, and help with your first test.

Chat on WhatsApp

WhatsApp012 824 4299

Emailinfo@bulksmsdirect.co.za

WhatsApp us