A lightweight Django app for sending SMS messages through the ClickSend REST API. Supports single SMS, bulk SMS, Django settings integration, and a test management command.
- Send a single SMS
- Send bulk SMS
- Easy Django integration
- Simple, high-level SMS client
- Optional test command (
send_test_sms) - Works with Django 3.2+
Install using pip:
pip install django-clicksend-sms
Or install from a local folder:
pip install /path/to/django-clicksend-sms/
Add the app to your INSTALLED_APPS:
INSTALLED_APPS = [
...
"clicksend_sms",
]Add your ClickSend credentials:
CLICKSEND_USERNAME = "your_clicksend_username"
CLICKSEND_API_KEY = "your_api_key"from clicksend_sms.client import ClickSendSMSClient
def send_otp(phone, otp):
client = ClickSendSMSClient()
return client.send_sms(
to=phone,
message=f"Your OTP is {otp}"
)from clicksend_sms.client import ClickSendSMSClient
client = ClickSendSMSClient()
messages = [
{"to": "+1111111111", "message": "Hello User 1"},
{"to": "+1222222222", "message": "Hello User 2", "sender_id": "MyApp"},
]
response = client.send_bulk_sms(messages)
print(response)You can quickly test sending an SMS using the built-in Django command.
python manage.py send_test_sms <phone> "<message>"
Example:
python manage.py send_test_sms +11234567890 "Hello from Django!"
clicksend_sms/
__init__.py
apps.py
client.py
settings.py
management/
commands/
send_test_sms.py
This class handles:
- Loading credentials from Django settings
- Formatting message payloads
- Sending requests to ClickSend REST API
- Supporting both single and bulk SMS
Common errors:
- Missing credentials:
ValueError: ClickSend credentials are not configured.
- Non-JSON API response:
{"error": "Invalid JSON response", "status_code": ###}
Install in editable mode:
pip install -e .
Build package for PyPI:
python setup.py sdist bdist_wheel
Upload:
twine upload dist/*
This project is free and open-source.