Skip to main content

django-mimsms: MiMSMS SMS API Integration for Django & Python

PyPI version License: MIT CI Status

Seamlessly integrate MiMSMS.com SMS API into your Django and Python applications. This package provides a robust, type-safe, and asynchronous client for sending SMS, bulk messages, and tracking delivery reports in Bangladesh.

Key Features

  • Strict Type Safety: Fully typed with mypy strict checks and Pydantic v2 validation.
  • Async Support: Efficient non-blocking I/O using httpx.
  • Django Integration: Configuration via standard Django settings.
  • 100% Test Coverage: Comprehensive test suite with deterministic network isolation (respx).
  • Multiple API Support: Single SMS, Bulk SMS (One-to-Many), and Dynamic SMS (DSMS).

Installation

Install the package via pip or uv:

# Using pip
pip install django-mimsms

# Using uv
uv add django-mimsms

Django Integration

1. Add to INSTALLED_APPS

# settings.py
INSTALLED_APPS = [
    ...,
    "django_mimsms",
]

2. Configure Settings

Add your MiMSMS credentials to your settings.py:

# settings.py
MIMSMS_API_KEY = "your_api_key"
MIMSMS_SENDER_ID = "your_sender_id"
MIMSMS_USERNAME = "your_username"

3. Usage

from django_mimsms import send_sms

# Send a simple SMS
response = send_sms(
    to="88017XXXXXXXX",
    message="Hello from Django!",
)

print(response.trxnId)

Plain Python Usage

If you're not using Django, you can use the MiMSMSClient directly:

import asyncio
from django_mimsms import MiMSMSClient

async def main():
    client = MiMSMSClient(
        api_key="your_api_key",
        username="your_username",
        sender_id="your_sender_id"
    )
    
    response = await client.send_sms(
        to="88017XXXXXXXX",
        message="Hello from Python!",
    )
    print(response.trxnId)

if __name__ == "__main__":
    asyncio.run(main())

Advanced Features

Bulk SMS

Send the same message to multiple recipients:

from django_mimsms import send_bulk_sms

send_bulk_sms(
    numbers=["88017XXXXXXXX", "88018XXXXXXXX"],
    message="Bulk message testing",
)

Dynamic SMS

Send different messages to different recipients in one call:

from django_mimsms import send_dynamic_sms

messages = [
    {"to": "88017XXXXXXXX", "message": "Hi Alice!"},
    {"to": "88018XXXXXXXX", "message": "Hi Bob!"},
]

send_dynamic_sms(messages)

License

MIT

Metadata

Release files for django-mimsms 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-mimsms 0.1.0
File Size Uploaded
django_mimsms-0.1.0.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-mimsms 0.1.0
File Interpreter ABI Platform
django_mimsms-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / django_mimsms-0.1.0.tar.gz

Download URL django_mimsms-0.1.0.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3d2245a216b3b3227278f33620799f9bf085b5a441ee9619a1da22396d12be07
BLAKE2b-256 checksum
How to use checksums
7debe6d93dd68e7f1a6d9d52fcabb816f0ae5b714e097b0d5dc1c393abc88c74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2026.

Transparency log

Release files / django_mimsms-0.1.0-py3-none-any.whl

Download URL django_mimsms-0.1.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
493f3cfa8bb65488f6b71680590be365319db085939bd277e45a3c955a978bc0
BLAKE2b-256 checksum
How to use checksums
69776201d96c33e40b99d32e87b561dfcbe876e63556bf6901cd388a48d3eda0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page