Thinkx SMS API

Uganda's Leading SMS Service Provider

Thinkx SMS is designed to be the most reliable, user-friendly, and easily integrated SMS service provider in Uganda. Whether you're looking to send individual messages or reach a large audience, our platform has you covered.

πŸš€ Key Features

Single SMS

Send messages to individual recipients with ease

Bulk SMS

Reach multiple contacts at once

Contact Groups

Organize contacts for efficient messaging

SMS Scheduling

Schedule messages for optimal timing

Easy Top-Ups

Convenient credit top-up options

API Integration

Seamless API integration

Access our services via a beautiful web portal or through seamless API integration. Our dedicated support team ensures fast response times, so you can focus on what matters mostβ€”connecting with your audience.

API Authentication

Secure access to our SMS services

Important Security Note

All requests to our API must include an api_key in the request body. Requests without this field will be denied.

To ensure secure access, all requests made to our API must include an api_key in the request body. This key authenticates your requests and ensures secure communication.

How to Generate Your API Key

1

Log in to your Thinkx SMS dashboard

Access your account through the web portal

2

Navigate to API Credentials

Find the API section in your dashboard menu

3

Click "Generate API Key"

Your unique API key will be created instantly

Send Single SMS

Send messages to individual recipients

POST
https://sms.thinkxcloud.com/api/send-message

Send individual SMS messages using our simple and reliable API endpoint. Perfect for transactional messages, notifications, and one-to-one communications.

πŸ“‹ Request Parameters

api_key Required

Your unique API key for authentication

number Required

The recipient's phone number (e.g., 776XXXXXX, +256776XXXXXX)

message Required

The message content to be sent

πŸ’» Code Example

PHP (Guzzle HTTP)
$client = new Client();

$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
];

$body = '{
    "api_key": "your_api_key_here",
    "number": "776XXXXXX",
    "message": "Hello! This is a test message from Thinkx SMS."
}';

$request = new Request('POST', 'https://sms.thinkxcloud.com/api/send-message', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

βœ… Success Response

200 OK Message sent successfully
{
    "response": "OK",
    "data": {
        "message_reference": "01J9CB7X3FB82A62WH77PVMNHT"
    }
}

πŸ’‘ Save the message_reference to track your message status later.

Check Message Status

Track the delivery status of your messages

POST
https://sms.thinkxcloud.com/api/check-message-status

Monitor the delivery status of your SMS messages using the message reference returned when sending a message.

πŸ“‹ Request Parameters

api_key Required

Your unique API key for authentication

message_reference Required

The message reference ID returned when sending the message

πŸ’» Code Example

PHP (Guzzle HTTP)
$client = new Client();
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
];
$options = [
    'multipart' => [
        [
            'name' => 'api_key',
            'contents' => 'your_api_key_here'
        ],
        [
            'name' => 'message_reference',
            'contents' => '01J6CG7GVYHQ37SYGD6XS4NTC6'
        ]
    ]
];
$request = new Request('POST', 'https://sms.thinkxcloud.com/api/check-message-status', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();

βœ… Success Response

200 OK Status retrieved successfully
{
    "response": "OK",
    "data": {
        "number": "+256776761878",
        "message_reference": "01J6CG7GVYHQ37SYGD6XS4NTC6",
        "send_time": "2024-08-28T12:44:06.000000Z",
        "status": "SENT"
    }
}

πŸ“Š Status Values

SENT PROCESSING FAILED CANCELLED

Send Bulk SMS

Send messages to multiple recipients efficiently

πŸš€ Why Use Bulk SMS?

Bulk SMS allows you to send the same message to multiple recipients simultaneously, perfect for campaigns, announcements, or reaching large audiences efficiently.

Prevents the need for individual messages or inefficient loops
POST
https://sms.thinkxcloud.com/api/send-bulk-message

πŸ“‹ Request Parameters

api_key Required

Your unique API key for authentication

numbers Required

Array of phone numbers to receive the message

message Required

The message content to be sent to all recipients

πŸ’» Code Example

PHP (Guzzle HTTP)
$client = new Client();

$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
];

$body = json_encode([
    "api_key" => "your_api_key_here",
    "numbers" => [
        "776XXXXXX",
        "0772YYYYYY",
        "+256701ZZZZZZ"
    ],
    "message" => "Hello! This is a bulk message from Thinkx SMS."
]);

$request = new Request('POST', 'https://sms.thinkxcloud.com/api/send-bulk-message', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

βœ… Success Response

200 OK Bulk message sent successfully
{
    "response": "OK",
    "data": {
        "batch_number": "01K04VBJ2WR476XY1WYQTRHKV2"
    }
}

About Batch Numbers

The batch_number is a unique identifier for your bulk message operation. Use it to check the status of all messages in the batch.

Check Bulk Status

Monitor all messages in a bulk operation

Use the batch number returned from bulk message sending to check the status of all messages in the bulk operation. Get detailed information about each message including delivery status, send time, and recipient details.

POST
https://sms.thinkxcloud.com/api/check-bulk-message-status

πŸ“‹ Request Parameters

api_key Required

Your unique API key for authentication

batch_number Required

The batch number returned when sending bulk messages

πŸ’» Code Example

PHP (Guzzle HTTP)
$client = new Client();

$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
];

$body = json_encode([
    "api_key" => "your_api_key_here",
    "batch_number" => "01K04VBJ2WR476XY1WYQTRHKV2"
]);

$request = new Request('POST', 'https://sms.thinkxcloud.com/api/check-bulk-message-status', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

βœ… Success Response

200 OK Batch status retrieved successfully
{
    "response": "OK",
    "data": [
        {
            "number": "+256704******",
            "message_reference": "01K04VBJ2XXZPAPHW5K12G50XE",
            "batch_number": "01K04VBJ2WR476XY1WYQTRHKV2",
            "send_time": "2025-07-14T16:12:45.000000Z",
            "status": "SENT"
        },
        {
            "number": "+256776******",
            "message_reference": "01K04VBJ2XXZPAPHW5K12G50XF",
            "batch_number": "01K04VBJ2WR476XY1WYQTRHKV2",
            "send_time": "2025-07-14T16:12:45.000000Z",
            "status": "SENT"
        }
    ]
}

Credit Balance

Check your remaining message credits

POST
https://sms.thinkxcloud.com/api/message-credit-balance

Monitor your available message credits to ensure uninterrupted service. This endpoint provides real-time balance information.

πŸ“‹ Request Parameters

api_key Required

Your unique API key for authentication

πŸ’» Code Example

PHP (Guzzle HTTP)
$client = new Client();
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
];
$options = [
    'multipart' => [
        [
            'name' => 'api_key',
            'contents' => 'your_api_key_here'
        ]
    ]
];
$request = new Request('POST', 'https://sms.thinkxcloud.com/api/message-credit-balance', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();

βœ… Success Response

200 OK Balance retrieved successfully
{
    "response": "OK",
    "data": {
        "message_credit_balance": "UGX 2,920.00"
    }
}

πŸ’‘ Pro Tip

Regularly monitor your credit balance to avoid service interruption. Set up automated top-ups through your dashboard for seamless operations.

Ready to Get Started?

Join thousands of businesses already using Thinkx SMS to connect with their customers effectively.