The Yoola SMS REST API lets you send bulk or individual SMS, receive inbound messages, check delivery reports, and manage contacts — all from your own application using simple HTTP requests.
Sign up free at yoolasms.com. Takes under 2 minutes.
Go to Dashboard → API Key. Copy your unique key.
Use our code sample below to send your first SMS via API.
Top up with Mobile Money and start sending at scale.
Copy and paste — replace YOUR_API_KEY_HERE with your actual key.
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://yoolasms.com/api/v1/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"phone": "256704487563,256712345678",
"message":"Your Message",
"api_key": "YOUR_API_KEY_HERE"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
# Yoola SMS API - Send SMS (cURL)
curl --location 'https://yoolasms.com/api/v1/send' \
--header 'Content-Type: application/json' \
--data '{
"phone": "256704487563,256712345678",
"message": "Your Message",
"api_key": "YOUR_API_KEY_HERE"
}'
# Yoola SMS API - Send SMS (Python)
import requests
import json
url = "https://yoolasms.com/api/v1/send"
payload = json.dumps({
"phone": "256704487563,256712345678",
"message": "Your Message",
"api_key": "YOUR_API_KEY_HERE"
})
headers = {'Content-Type': 'application/json'}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
// Yoola SMS API - Send SMS (Axios)
const axios = require('axios');
let data = JSON.stringify({
"phone": "256704487563,256712345678",
"message": "Your Message",
"api_key": "YOUR_API_KEY_HERE"
});
let config = {
method: 'post',
url: 'https://yoolasms.com/api/v1/send',
headers: { 'Content-Type': 'application/json' },
data : data
};
axios.request(config)
.then((response) => { console.log(JSON.stringify(response.data)); })
.catch((error) => { console.log(error); });
# Yoola SMS API - Send SMS (Ruby)
require "uri"
require "json"
require "net/http"
url = URI("https://yoolasms.com/api/v1/send")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"phone" => "256704487563,256712345678",
"message" => "Your Message",
"api_key" => "YOUR_API_KEY_HERE"
})
response = https.request(request)
puts response.read_body
// Yoola SMS API - Send SMS (Java - OkHttp)
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType,
"{\n \"phone\": \"256704487563,256712345678\",\n \"message\": \"Your Message\",\n \"api_key\": \"YOUR_API_KEY_HERE\"\n}");
Request request = new Request.Builder()
.url("https://yoolasms.com/api/v1/send")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
// Yoola SMS API - Send SMS (Go)
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://yoolasms.com/api/v1/send"
payload := strings.NewReader(`{
"phone": "256704487563,256712345678",
"message": "Your Message",
"api_key": "YOUR_API_KEY_HERE"
}`)
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
// Yoola SMS API - Send SMS (C#)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://yoolasms.com/api/v1/send");
var content = new StringContent("{\r\n \"phone\": \"256704487563,256712345678\",\r\n \"message\": \"Your Message\",\r\n \"api_key\": \"YOUR_API_KEY_HERE\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
// Yoola SMS API - Send SMS (Dart)
var headers = {'Content-Type': 'application/json'};
var request = http.Request('POST', Uri.parse('https://yoolasms.com/api/v1/send'));
request.body = json.encode({
"phone": "256704487563,256712345678",
"message": "Your Message",
"api_key": "YOUR_API_KEY_HERE"
});
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
} else {
print(response.reasonPhrase);
}
# Raw HTTP Request
POST /api/v1/send HTTP/1.1
Host: yoolasms.com
Content-Type: application/json
{
"phone": "256704487563,256712345678",
"message": "Your Message",
"api_key": "YOUR_API_KEY_HERE"
}
All endpoints use POST requests and return JSON. Base URL: https://yoolasms.com/api/v1/
Plug Yoola SMS directly into your existing platform with our official plugins — no coding required.
Priority transactional route for time-sensitive messages like OTPs and payment alerts.
Get real-time delivery callbacks to your server URL for every message sent.
Receive inbound SMS replies via webhook or API polling on your virtual number.
Pass a comma-separated list of thousands of numbers in a single API request.
Each account gets a unique API key. Regenerate anytime from your dashboard.
Query the status of any message — delivered, pending, or failed — via API call.
Create your free account in 2 minutes. Your API key is generated instantly — no waiting, no approval process needed.