PindoDocs
Web AppWeb

Send an SMS

Send a single text message to one recipient. Authenticate with your bearer token and post a JSON body.

POST/v1/sms/

Request

FieldTypeDescription
torequiredstringRecipient in international format, e.g. +250781234567.
textrequiredstringThe message content.
senderrequiredstringThe sender ID shown to the recipient.

Example request

Pick your language: your choice is remembered across every code sample in these docs.

# Send a single sms
curl -X POST \
https://api.pindo.io/v1/sms/ \
-H 'Accept: */*' \
-H 'Authorization: Bearer your-token' \
-H 'Content-Type: application/json' \
-d '{
"to" : "+250781234567",
"text" : "Hello from Pindo",
"sender" : "PindoTest"
}'

# Send bulk sms
curl -X POST \
https://api.pindo.io/v1/sms/bulk \
-H 'Accept: */*' \
-H 'Authorization: Bearer your-token' \
-H 'Content-Type: application/json' \
-d '{
"recipients" : [{"phonenumber": "+250781234567", "name": "Remy Muhire"}],
"text" : "Hello @contact.name, Welcome to Pindo",
"sender" : "PindoTest"
}'

Response

A successful send returns 201 Created with a cost breakdown and your remaining balance.

{
  "bonus": 0.0,
  "discount": 0.4,
  "item_count": 1,
  "item_price": 0.006,
  "remaining_balance": 71421.953,
  "self_url": "http://api.pindo.io/v1/sms/out_sms_01H7DJEJ1YZKTNT8EDXY2C7YG9",
  "sms_id": "out_sms_01H7DJEJ1YZKTNT8EDXY2C7YG9",
  "status": "sent",
  "to": "+250789385878",
  "total_cost": 0.006
}

Try it

Interactive PlaygroundFill in the fields and send a live SMS via the Pindo API
curl -X POST https://api.pindo.io/v1/sms/ \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+250781234567",
    "text": "Hello from Pindo!",
    "sender": "PindoTest"
  }'

Delivery reports

Pindo posts a Delivery Report (DLR) to your configured webhook when the carrier confirms the final status of a message.

{
  "status": "DELIVRD",
  "sms_id": 1058918,
  "modified_at": "24-07-2020, 23:35:32",
  "retries_count": 0
}