G K G Guru

Python SMS API Integration

Complete Python code examples for integrating with the SecureSMSC SMS API using requests.

Fast Integration

Get started in minutes with simple REST API calls

Global Reach

Send SMS to 200+ countries worldwide

Secure

Enterprise-grade SSL/TLS encryption

Reliable

99.9% uptime with delivery tracking

Quick Start: Get your API key from the dashboard to begin integration.

Installation

Install the required dependencies:

Terminal
pip install requests

Send Single SMS

Python
import requests

API_KEY = 'YOUR_API_KEY'
API_URL = 'https://whitelabled.securesmsc.com/api/v2/sms/send'

def send_sms(recipient, message):
    headers = {
        'Authorization': f'Bearer {API_KEY}',
        'Content-Type': 'application/json'
    }
    
    data = {
        'sender_id': 'SENDER',
        'recipient': recipient,
        'message': message,
        'route': 'transactional'
    }
    
    response = requests.post(API_URL, json=data, headers=headers)
    
    if response.status_code == 200:
        result = response.json()
        print(f"Success: {result['message']}")
        return result
    else:
        print(f"Error: {response.text}")
        return None

# Usage
send_sms('1234567890', 'Hello from Python!')

Send Bulk SMS

Python
def send_bulk_sms(recipients, message):
    headers = {
        'Authorization': f'Bearer {API_KEY}',
        'Content-Type': 'application/json'
    }
    
    data = {
        'sender_id': 'SENDER',
        'recipients': recipients,
        'message': message,
        'route': 'promotional'
    }
    
    response = requests.post(
        'https://whitelabled.securesmsc.com/api/v2/sms/send-bulk',
        json=data,
        headers=headers
    )
    return response.json()

# Usage
send_bulk_sms(['1234567890', '0987654321'], 'Bulk message!')

Check SMS Status

Python
def check_status(message_id):
    headers = {'Authorization': f'Bearer {API_KEY}'}
    response = requests.get(
        f'https://whitelabled.securesmsc.com/api/v2/sms/status/{message_id}',
        headers=headers
    )
    result = response.json()
    print(f"Status: {result['data']['status']}")
    return result

Check Balance

Python
def get_balance():
    headers = {'Authorization': f'Bearer {API_KEY}'}
    response = requests.get(
        'https://whitelabled.securesmsc.com/api/v2/balance',
        headers=headers
    )
    result = response.json()
    print(f"Balance: {result['data']['balance']} credits")
    return result

Error Handling - Django/Flask

Python - Flask
from flask import Flask, request, jsonify
import requests
import time
import os

app = Flask(__name__)

class SMSClient:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = 'https://whitelabled.securesmsc.com/api/v2'
        self.headers = {
            'Authorization': f'Bearer {api_key}',
            'Content-Type': 'application/json'
        }
    
    def send(self, recipient, message, retries=3):
        for attempt in range(retries):
            try:
                response = requests.post(
                    f'{self.base_url}/sms/send',
                    json={
                        'sender_id': 'SENDER',
                        'recipient': recipient,
                        'message': message,
                        'route': 'transactional'
                    },
                    headers=self.headers,
                    timeout=10
                )
                response.raise_for_status()
                return response.json()
            except requests.exceptions.RequestException as e:
                if attempt == retries - 1:
                    raise
                time.sleep(2 ** attempt)

@app.route('/send-sms', methods=['POST'])
def send_sms_endpoint():
    client = SMSClient(os.environ.get('SMS_API_KEY'))
    data = request.get_json()
    try:
        result = client.send(data['recipient'], data['message'])
        return jsonify(result)
    except Exception as e:
        return jsonify({'error': str(e)}), 500

if __name__ == '__main__':
    app.run(debug=True)