support@quickpingsms.com+233 59 941 9093

Home / Developers

QuickPing SMS API

For companies: integrate QuickPing SMS directly into your software. Your system sends the message the moment something happens, with no one logging in to press send.

Request API accessRead the guide

Built for companies that need messages sent automatically

If your software already knows when something has happened, our API can tell your customer. Here is how different industries use it.

Logistics companies

Send shipment status, pickup and arrival alerts to your customers and your drivers from your tracking system.

Courier companies

Tell customers when a rider is on the way, and send delivery codes that confirm the parcel reached the right person.

Schools

Send fee reminders, results notices and attendance alerts to parents straight from your school system.

Hospitals

Send appointment reminders, test-result-ready notices and follow-up messages to patients, and check that each one was delivered.

E-commerce companies

Send order confirmations, checkout OTP codes and dispatch notices as soon as each order changes.

Fintechs

Send login and transaction OTPs, payment confirmations and account alerts in real time, and confirm that each one reached the phone.

Churches

Send service times, event notices and giving reminders to every member from your membership system.

Insurance companies

Send premium reminders, renewal notices and claim status updates to policyholders.

Travel companies

Send booking confirmations, trip changes and check-in reminders to travellers.

Government contractors

Send public notices, citizen alerts and verification codes from the systems you deliver.

Real estate companies

Send viewing reminders, rent due notices and follow-ups to tenants and buyers.

Do not see your industry? If your software can make a web request, it can send an SMS with QuickPing. Tell us what you are building.

Get API access

The base URL for every request is https://api.quickpingsms.com. To get your API key and secret, email support@quickpingsms.com with your company name and what you plan to build. We will set up your account, agree your price per SMS and send you your credentials. Your secret is shown only once, so store it safely.

Authentication

Send your key and secret in these headers on every request. Keep them on your server and never put them in a mobile app or in front-end code.

X-API-Key: qp_xxxxxxxxxxxxxxxx
X-API-Secret: xxxxxxxxxxxxxxxx
Content-Type: application/json

Send one SMS

POST /v1/sms/send

FieldRequiredDescription
toYesRecipient number in international format, for example +233244000000.
messageYesThe text of the message.
senderNoApproved Sender ID (up to 11 characters). Your default is used if you leave it out.
# cURL
curl -X POST https://api.quickpingsms.com/v1/sms/send \
  -H "X-API-Key: qp_your_key" \
  -H "X-API-Secret: your_secret" \
  -H "Content-Type: application/json" \
  -d '{"to":"+233244000000","message":"Your order has shipped"}'

// Node.js
const res = await fetch("https://api.quickpingsms.com/v1/sms/send", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.QP_KEY,
    "X-API-Secret": process.env.QP_SECRET,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ to: "+233244000000", message: "Your order has shipped" })
});
console.log(await res.json());

# Python
import os, requests
r = requests.post(
    "https://api.quickpingsms.com/v1/sms/send",
    headers={"X-API-Key": os.environ["QP_KEY"], "X-API-Secret": os.environ["QP_SECRET"]},
    json={"to": "+233244000000", "message": "Your order has shipped"},
)
print(r.json())

Successful response:

{
  "status": "success",
  "data": {
    "id": "7c1e9a52-3b0d-4f6e-9a1c-2d8b5e47f013",
    "to": "+233244000000",
    "status": "queued",
    "cost": 0.05,
    "currency": "GHS"
  }
}

Keep the id. You use it to check delivery status.

Send bulk SMS

POST /v1/sms/bulk sends the same message to many numbers in one request.

{
  "recipients": ["+233244000000", "+233201234567"],
  "message": "Weekend sale starts now!",
  "sender": "YourBrand"
}

Successful response:

{
  "status": "success",
  "data": {
    "recipients_count": 2,
    "cost": 0.10,
    "currency": "GHS",
    "messages": [
      { "id": "a3f1c6d0-...", "to": "+233244000000", "status": "queued" },
      { "id": "9b2e4d71-...", "to": "+233201234567", "status": "queued" }
    ]
  }
}

Every recipient gets its own id. A bulk request can include up to 10,000 numbers.

Check delivery status

GET /v1/sms/status/{id} tells you what happened to a message. Use the id from the send or bulk response. You can only look up your own messages.

# cURL
curl https://api.quickpingsms.com/v1/sms/status/7c1e9a52-3b0d-4f6e-9a1c-2d8b5e47f013   -H "X-API-Key: qp_your_key"   -H "X-API-Secret: your_secret"

Response:

{
  "status": "success",
  "data": {
    "id": "7c1e9a52-3b0d-4f6e-9a1c-2d8b5e47f013",
    "to": "+233244000000",
    "status": "delivered",
    "sent_at": "2026-10-05T09:41:00Z",
    "delivered_at": "2026-10-05T09:41:06Z"
  }
}
StatusMeaning
queuedWe accepted the message and it is waiting to go to the network.
sentThe message has gone to the network. No delivery report yet.
deliveredThe phone received the message.
failedThe message was not delivered, or it expired. For example, the phone was off for too long.
rejectedThe message was blocked, for example because of prohibited content.

Delivery reports from the networks can take a few seconds to a few minutes. A message that is still queued or sent may not be final yet, so check again after a short wait. Once a message is delivered, failed or rejected, its status does not change.

Errors

Errors return a JSON body with "status": "error" and a plain message.

CodeMeaning
400A required field is missing or invalid.
401API key or secret is missing or wrong.
402Your credit balance is too low. Top up and try again.
403This API key has been deactivated.
404No message with that id was found on your account.
429Too many requests. Slow down and retry.
502The message could not be handed to the network. Safe to retry after a short wait.

Rate limits and tips

  • The default limit is 60 requests per minute for each API key. Ask us if you need more.
  • Use bulk sending for lists instead of many single requests.
  • Use numbers in international format (+233) and remove duplicates before you send.
  • Credits are deducted for each message accepted. Your price per SMS is agreed when your account is created.
  • Follow our Terms of Service: only message people who agreed to hear from you.

Questions? Email support@quickpingsms.com.