Get Started
Sign up at Signup for an account, verify your email and login.
Navigate to your APIs page, and generate your API Keys.
Test API OR Check Balance
In order to ensure you have valid API Key, kindly follow the sample code below to make a request to
check your balance
Send a json payload of the following parameter to the endpoint,
https://uellosend.com/balance/
Parameter
Required
Data Type
Description
api_key
true
String
Developer API Key generated on your dashboard.
Method: POST Endpoint: https://uellosend.com/balance/
// Request Headers
Content-Type: application/json
// Request Body
{
"api_key"=> "Your API Key"
}
$apiKey = "1=VnZuoQOExAIRIgEJGt9LMJauR2iibHzg" ;
// API URL
$url = "https://uellosend.com/balance/" ;
$payload = json_encode(["api_key"=>$apiKey]) ;
$ch = curl_init() ;
curl_setopt_array($ch, array(
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_ENCODING => "" ,
CURLOPT_MAXREDIRS => 10 ,
CURLOPT_TIMEOUT => 300 ,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => $payload ,
CURLOPT_HTTPHEADER ,array( 'Content-Type:application/json' ),
));
$response = curl_exec($ch) ;
$error = curl_error($ch) ;
curl_close($ch) ;
if ($error ) {
echo "cURL Error #:" . $error ;
} else {
$response ;
print_r($response) ;
// $res = json_decode($response,true) ;
//echo ($res["status"]) ;
}
.
import requests
# API URL
balance_url = "https://uellosend.com/balance/"
data =
{
'api_key': 'hcGlTZWNyZXQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIw'
}
headers = {'Content-type': 'application/json'}
response = requests.post (balance_url, headers=headers, json=data)
print(response.json())
.
const axios = require('axios') ;
// API URL
const balance_url = "https://uellosend.com/balance/" ;
axios({
method: 'post',
url: balance_url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'AiOiJKV1QiLCJhbGciOiJIUzI'
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}) ;
// Sample Response
{
"status":"Success" ,
"code":"200" ,
"desc":"balance: 2.7200"
}
Quicksend Endpoint
This endpoint is useful for sending one time passwords(OTP) or number verification, user notifications and sending message to a single recipient.
Collect the following data and send a json payload to the endpoint,
https://uellosend.com/quicksend/
Parameter
Required
Data Type
Description
api_key
true
String
Developer API Key generated on your dashboard.
sender_id
true
String
The name you want the recipient to see when the message is received eg. UviTech.
It must not be more than 11 characters.
message
true
String
The message for the recipient, it must not exceeed 800 characters.
recipient
true
String
The mobile number of the intended receiver of the message. Accepted format is 0230000000 or +233230000000
Method:POST Endpoint: https://uellosend.com/quicksend/
// Request Headers
Content-Type: application/json
// Request Body
{
"api_key"=> "Your API Key" ,
"sender_id"=> "Your senderID" ,
"message"=> "Your message" ,
"recipient"=> "Number of recipient"
}
$apiKey = "1=VnZuoQOExAIRIgEJGt9LMJauR2iibHzg" ;
$senderID = "UelloSend" ;
$msg = "Welcome to planet UelloSend!" ;
$recipient = "0230000000" ;
// API URL
$url = "https://uellosend.com/quicksend/" ;
$payload = json_encode(["api_key"=>$apiKey, "sender_id"=>$senderID,
"message"=>$msg, "recipient"=>$recipient]) ;
$ch = curl_init() ;
curl_setopt_array($ch, array(
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_ENCODING => "" ,
CURLOPT_MAXREDIRS => 10 ,
CURLOPT_TIMEOUT => 300 ,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => $payload ,
CURLOPT_HTTPHEADER ,array( 'Content-Type:application/json' ),
));
$response = curl_exec($ch) ;
$error = curl_error($ch) ;
if ($error ) {
echo "cURL Error #:" . $error ;
} else {
$response ;
print_r($response) ;
// $res = json_decode($response,true) ;
//echo ($res["status"]) ;
}
.
import requests
# API URL
quicksend_url = "https://uellosend.com/quicksend/"
data =
{
'api_key': 'NyZXQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIwM',
'sender_id': 'UelloPy',
'message': 'Hello testing python integration',
'recipient': '0543524033'
}
headers = {'Content-type': 'application/json'}
response = requests.post (quicksend_url, headers=headers, json=data)
print(response.json())
.
const axios = require('axios') ;
// API URL
const quicksend_url = "https://uellosend.com/quicksend/" ;
axios({
method: 'post',
url: quicksend_url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'JhcGlTZWNyZXQiOiJTU1Z6V1I5azZlaVFn',
sender_id: 'UelloJS',
message: 'Hello testing nodejs integration',
recipient: '0543524033'
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}); ;
// Sample Response
{
"status":"Success" ,
"code":"200" ,
"desc":[
{
"status": "ESME_ROK",
"recipient": "0501651480",
"message_id": "2180353930"
}
]
}
Campaign Endpoint
This endpoint is useful for sending message to multiple recipients and also scheduling messages.
Collect the following data and send a json payload to the endpoint,
https://uellosend.com/campaign/
Parameter
Required
Data Type
Description
api_key
true
String
Developer API Key generated on your dashboard.
sender_id
true
String
The name you want the recipient to see when the message is received eg. UviTech.
It must not be more than 11 characters.
message
true
String
The message for the recipient, it must not exceeed 800 characters.
recipient
true
Array
It should be an array of strings of contact numbers eg ["0230000000","0260000000"] or ["+233230000000","+233260000000"],
the number of contacts in the array must not exceed 350 contacts.
date
false
DateTime
This parameter should be used if only you want to schedule your message. Accepted format is DD-MM-YYYY HH:MM AM/PM eg 30-11-2020 03:30 AM
Method: POST Endpoint: https://uellosend.com/campaign/
// Request Headers
Content-Type: application/json
// Request Body
{
"api_key"=> "Your API Key" ,
"sender_id"=> "Your senderID" ,
"message"=> "Your message" ,
"recipient"=> "Array containing list of recipients" ,
"date"=>"date and time to send message, e.g 30-11-2020 03:30 AM"
}
$apiKey = "1=VnZuoQOExAIRIgEJGt9LMJauR2iibHzg" ;
$senderID = "UelloSend" ;
$msg = "Welcome to planet UelloSend!" ;
// API URL
$url = "https://uellosend.com/campaign/" ;
// array of contacts
$recipients = ["0501691480","0597959286"] ;
/*
USE THIS CODE IF YOU WANT TO SCHEDULE A MESSAGE
$payload = json_encode(["api_key"=>$apiKey, "sender_id"=>$senderID,
"message"=> $msg, "recipient"=> $recipients, "date"=>$scheduleDate]);
*/
$payload = json_encode(["api_key"=>$apiKey, "sender_id"=>$senderID,
"message"=>$msg, "recipient"=>$recipients]) ;
$ch = curl_init() ;
curl_setopt_array($ch, array(
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_ENCODING => "" ,
CURLOPT_MAXREDIRS => 10 ,
CURLOPT_TIMEOUT => 0 ,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => $payload ,
CURLOPT_HTTPHEADER ,array( 'Content-Type:application/json' ),
));
$response = curl_exec($ch) ;
$error = curl_error($ch) ;
curl_close($ch);
if ($error ) {
echo "cURL Error #:" . $error ;
} else {
$response ;
print_r($response) ;
// $res = json_decode($response,true) ;
//echo ($res["status"]) ;
}
.
import requests
import json
from datetime import datetime
now = datetime.now()
# convert date to format accepted by API
date_time = now.strftime("%d-%m-%Y %I:%M %p")
# API URL
campaign_url = "https://uellosend.com/campaign/"
data = # Payload if you want to schedule SMS
{
'api_key': 'ZXQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
'sender_id': 'UelloPy',
'message': 'Hello testing python integration',
'recipient': ['0543524033','0553597909'],
'date': date_time
}
OR
data = # If you are not scheduling
{
'api_key': 'XQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
'sender_id': 'UelloPy',
'message': 'Hello testing python integration',
'recipient': ['0543524033','0553597909']
}
payload = json.dumps(data,indent=4, sort_keys=True, default=str)
headers = {'Content-type': 'application/json'}
response = requests.post (campaign_url, headers=headers, data= payload)
print(response.json())
.
const axios = require('axios') ;
// API URL
const campaign_url = "https://uellosend.com/campaign/" ;
// If you want to schedule sms
axios({
method: 'post',
url: campaign_url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'e6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
sender_id: 'UelloJS',
message: 'Hello testing nodejs integration',
recipient: ['0543524033','0553597909'],
date: '26-11-2021 01:05 PM'
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}) ;
OR
// No scheduling
axios({
method: 'post',
url: campaign_url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'o1LCJhcGlTZWNyZXQiOiJTU1Z6V1I5MjAxMH0',
sender_id: 'UelloJS',
message: 'Hello testing nodejs integration',
recipient: ['0543524033','0553597909']
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}) ;
// Sample Response
{
"status":"Success" ,
"code":"200" ,
"desc":
[
{
"status": "ESME_ROK",
"recipient": "0543524033",
"message_id": "2180421813"
},
{
"status": "ESME_ROK",
"recipient": "0501651480",
"message_id": "2180422170"
}
]
}
Personalised SMS Endpoint
This endpoint is useful for sending message to multiple recipients and also scheduling messages to named contacts.
Collect the following data and send a json payload to the endpoint,
https://uellosend.com/personalisedsms/
Parameter
Required
Data Type
Description
api_key
true
String
Developer API Key generated on your dashboard.
sender_id
true
String
The name you want the recipient to see when the message is received eg. UviTech.
It must not be more than 11 characters.
message
true
String
The message for the recipient, it must contain the name placeholder that is {NAME} .
recipient
true
Array
It should be an array of strings of contact numbers eg ["0230000000","0260000000"] or ["+233230000000","+233260000000"],
the number of contacts in the array must not exceed 350 recipients.
names
true
Array
It should be an array of strings eg ["Confidence","Antwi"],
the number of names in the array must be equal to the number of recipients.
date
false
DateTime
This parameter should be used if only you want to schedule your message. Accepted format is DD-MM-YYYY HH:MM AM/PM eg 30-11-2020 03:30 PM
Method: POST Endpoint: https://uellosend.com/personalisedsms/
// Request Headers
Content-Type: application/json
// Request Body
{
"api_key"=> "Your API Key" ,
"sender_id"=> "Your senderID" ,
"message"=> "Your message" ,
"recipient"=> "Array containing list of recipients" ,
"names"=> "Array containing list of names" ,
"date"=>"date and time to send message, 30-11-2020 03:30 PM"
}
$apiKey = "1=VnZuoQOExAIRIgEJGt9LMJauR2iibHzg" ;
$senderID = "UelloSend" ;
$msg = "Dear {NAME}, Welcome to planet UelloSend!" ;
// API URL
$url = "https://uellosend.com/personalisedsms/" ;
// array of contacts
$recipients = ["0501691480","0597959286"] ;
// array of names
$names = ["Confi","Emma"] ;
/*
USE THIS CODE IF YOU WANT TO SCHEDULE A MESSAGE
$payload = json_encode(["api_key"=>$apiKey, "sender_id"=>$senderID,
"message"=> $msg, "recipient"=> $recipients, "names"=> $names, "date"=>$scheduleDate]);
*/
$payload = json_encode(["api_key"=>$apiKey, "sender_id"=>$senderID,
"message"=>$msg, "recipient"=>$recipients, "names"=> $names]) ;
$ch = curl_init() ;
curl_setopt_array($ch, array(
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_ENCODING => "" ,
CURLOPT_MAXREDIRS => 10 ,
CURLOPT_TIMEOUT => 0 ,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => $payload ,
CURLOPT_HTTPHEADER ,array( 'Content-Type:application/json' ),
));
$response = curl_exec($ch) ;
$error = curl_error($ch) ;
curl_close($ch);
if ($error ) {
echo "cURL Error #:" . $error ;
} else {
$response ;
print_r($response) ;
// $res = json_decode($response,true) ;
//echo ($res["status"]) ;
}
.
import requests
import json
from datetime import datetime
now = datetime.now()
# convert date to format accepted by API
date_time = now.strftime("%d-%m-%Y %I:%M %p")
# API URL
campaign_url = "https://uellosend.com/personalisedsms/"
data = # Payload if you want to schedule SMS
{
'api_key': 'ZXQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
'sender_id': 'UelloPy',
'message': 'Hello {NAME}, testing python integration',
'recipient': ['0543524033','0553597909'],
'names': ['Antwi', 'Kweku Boasiako'],
'date': date_time
}
OR
data = # If you are not scheduling
{
'api_key': 'XQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
'sender_id': 'UelloPy',
'message': 'Hello {NAME}, testing python integration',
'recipient': ['0543524033','0553597909'],
'names': ['Antwi', 'Kweku Boasiako']
}
payload = json.dumps(data,indent=4, sort_keys=True, default=str)
headers = {'Content-type': 'application/json'}
response = requests.post (campaign_url, headers=headers, data= payload)
print(response.json())
.
const axios = require('axios') ;
// API URL
const campaign_url = "https://uellosend.com/personalisedsms/" ;
// If you want to schedule sms
axios({
method: 'post',
url: campaign_url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'e6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
sender_id: 'UelloJS',
message: 'Hello {NAME}, testing nodejs integration',
recipient: ['0543524033','0553597909'],
'names': ['Antwi', 'Kweku Boasiako'],
date: '26-11-2021 01:05 PM'
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}) ;
OR
// No scheduling
axios({
method: 'post',
url: campaign_url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'o1LCJhcGlTZWNyZXQiOiJTU1Z6V1I5MjAxMH0',
sender_id: 'UelloJS',
message: 'Hello {NAME}, testing nodejs integration',
recipient: ['0543524033','0553597909'],
'names': ['Antwi', 'Kweku Boasiako']
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}) ;
// Sample Response
{
"status":"Success" ,
"code":"200" ,
"desc":
[
{
"status": "ESME_ROK",
"recipient": "0543524033",
"message_id": "2180421813"
},
{
"status": "ESME_ROK",
"recipient": "0501651480",
"message_id": "2180422170"
}
]
}
Delivery Receipt Endpoint
This endpoint is useful for checking message delivery receipt from the network.
Collect the following data and send a json payload to the endpoint,
https://uellosend.com/delivery/
Parameter
Required
Data Type
Description
api_key
true
String
Developer API Key generated on your dashboard.
message_id
true
String
The message ID you received when you sent the message.
Method: POST Endpoint: https://uellosend.com/delivery/
// Request Headers
Content-Type: application/json
// Request Body
{
"api_key"=> "Your API Key" ,
"message_id"=> "Message ID" ,
}
$apiKey = "1=VnZuoQOExAIRIgEJGt9LMJauR2iibHzg" ;
$message_id = "1234567890" ;
// API URL
$url = "https://uellosend.com/delivery/" ;
$payload = json_encode(["api_key"=>$apiKey, "message_id"=>$message_id]) ;
$ch = curl_init() ;
curl_setopt_array($ch, array(
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_ENCODING => "" ,
CURLOPT_MAXREDIRS => 10 ,
CURLOPT_TIMEOUT => 600 ,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => $payload ,
CURLOPT_HTTPHEADER ,array( 'Content-Type:application/json' ),
));
$response = curl_exec($ch) ;
$error = curl_error($ch) ;
curl_close($ch);
if ($error ) {
echo "cURL Error #:" . $error ;
} else {
$response ;
print_r($response) ;
// $res = json_decode($response,true) ;
//echo ($res["status"]) ;
}
.
import requests
import json
# API URL
url = "https://uellosend.com/delivery/"
data =
{
'api_key': 'XQiOiJTU1Z6V1I5azZlaVFnT3giLCJleHAiOjIwMjAxMH0',
'message_id': '1234567890'
}
payload = json.dumps(data,indent=4, sort_keys=True, default=str)
headers = {'Content-type': 'application/json'}
response = requests.post (url, headers=headers, data= payload)
print(response.json())
.
const axios = require('axios') ;
// API URL
const url = "https://uellosend.com/delivery/" ;
axios({
method: 'post',
url: url,
headers: {
'Content-type': 'application/json'
},
data: {
api_key: 'o1LCJhcGlTZWNyZXQiOiJTU1Z6V1I5MjAxMH0',
message_id: '1234567890'
}
})
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
}) ;
// Sample Response
{
"status":"Success" ,
"code":"200" ,
"desc":
[
{
"msgID": 1049,
"userID": 35,
"msg": "It is strictly forbidden to use your UelloSend Account for any illegal purposes including but not limited to fraud, phishing or scamming.",
"msg_cost": "0.035",
"recipient": "0543524033",
"date_sent": "2022-11-09 15:57:02",
"subject": "DEV-TEAM",
"server_response": "ESME_ROK",
"message_uuid": "1234567890",
"delivery_status": "DELIVRD",
"error": null,
"api_key": "",
"api_SMS": "YES",
"mobile_SMS": "",
"web_SMS": "",
"date": "2022-11-09"
}
]
}
Response Status Codes
Response codes that you will get in json when requests are made.
Code
Reason
200
Request Successful.
400
Bad request, a required parameter is missing or not provided
401
Unauthorised request, you provided an empty or null or invalid value for a paramter