API Integration

REST API v1 — Live

Integrate SMS Into
Any Application in Minutes

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.

  • RESTful JSON API — works with any language
  • API key included free with every account
  • Full code samples: PHP, Python, JS, Java, cURL
  • Webhooks for delivery reports & inbound SMS
  • Sandbox/test mode for development
Get Your Free API Key View Code Samples
https://yoolasms.com/api/v1/
Authorization: Bearer YOUR_API_KEY
{"status": "success", "message_id": "YL-20250115-001", "delivered": 500}

From Zero to First SMS in 4 Steps

1
Create Account

Sign up free at yoolasms.com. Takes under 2 minutes.

2
Copy Your API Key

Go to Dashboard → API Key. Copy your unique key.

3
Make Your First Call

Use our code sample below to send your first SMS via API.

4
Go Live

Top up with Mobile Money and start sending at scale.

Send SMS in Your Language

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"
                    }

Available API Endpoints

All endpoints use POST requests and return JSON. Base URL: https://yoolasms.com/api/v1/

POSTsend
Send single or bulk SMS to one or multiple Uganda numbers. Parameters: api_key, sender, message, mobiles.
POSTbalance
Check your current SMS credit balance. Parameters: api_key.
POSTdelivery_report
Get the delivery status of a sent message by message_id. Parameters: api_key, message_id.
POSTschedule_sms
Schedule an SMS for future delivery. Parameters: api_key, sender, message, mobiles, schedule_time (YYYY-MM-DD HH:MM:SS).
GETinbox
Retrieve inbound SMS messages received on your virtual number. Parameters: api_key.
POSTadd_contact
Add a contact to your phonebook. Parameters: api_key, mobile, name, group_name.
POSTsend_to_group
Send SMS to an entire contact group. Parameters: api_key, sender, message, group_name.

Ready-Made Integrations

Plug Yoola SMS directly into your existing platform with our official plugins — no coding required.

PHP SDK
PHP SDK

PHP Library

Python SDK
Python SDK

Python Package

WordPress Plugin
WordPress Plugin

WordPress

WooCommerce
WooCommerce

e-Commerce Plugin

Android SDK
Android SDK

Android / Java

iOS SDK
iOS SDK

Swift / Obj-C

Magento
Magento

Magento Plugin

Shopify
Shopify

Shopify App

Built for Developers

Sub-15s Delivery for OTPs

Priority transactional route for time-sensitive messages like OTPs and payment alerts.

Delivery Webhooks

Get real-time delivery callbacks to your server URL for every message sent.

Two-Way Messaging

Receive inbound SMS replies via webhook or API polling on your virtual number.

Bulk Send in One Call

Pass a comma-separated list of thousands of numbers in a single API request.

Secure API Keys

Each account gets a unique API key. Regenerate anytime from your dashboard.

Delivery Report API

Query the status of any message — delivered, pending, or failed — via API call.

🔑

Ready to Integrate?

Create your free account in 2 minutes. Your API key is generated instantly — no waiting, no approval process needed.

Get My Free API Key Integration Support
WhatsApp Help & Support