Skip to main content

The simplest way to text people (send SMS) via python.

Project description

badge_pipeline badge_coverage badge_release badge_pyver badge_license

🚩 Table of contents

  1. 👀 What is bulksms?

  2. 📌 Requirements

  3. 🚀 Quick start

  4. 💙 Help us be better

  5. 🎖️ License

👀 What is bulksms?

bulksms is the simplest way to text people (send SMS) via python:

import bulksms

bsms = bulksms.BulkSMS(token_id='17A7C58921F54B5899D5C1237FCCD5FA-02-F', token_secret='9Sj8Ae9WQhBMEI2eMGXIKpZHC8shq')

bsms.send('+123456789', 'Hello world! 👋🏻')

bulksms uses BulkSMS.com to deliver SMS.

Features

This library allows you to:

  • Send SMS to one recipient

  • Bulk-send an SMS to many recipients at once

  • Look up the delivery cost of a previous message

  • Look up the delivery status of a previous message

  • Customize the delivery type to trade time with cost

  • Customize the sender ID e.g. to your mobile number or a company name

  • Send “long SMS” exceeding the single-message length, using SMS concatenation

  • Send messages with plain text (160 characters/message) or Unicode, e.g. emojis (67 characters/message)

📌 Requirements

  • Python version between 3.9 and 3.12

  • An account at BulkSMS.com with some delivery credits

  • If you want to use custom sender IDs (e.g. your company name or your own mobile number), you need to have them configured in your BulkSMS account.

  • You need internet connectivity and HTTPS open towards api.bulksms.com to reach the delivery API

🚀 Quick start

Install the bulksms library into it:

pip install bulksms

Write some code to deliver messages:

import bulksms

# authenticate to BulkSMS with token data (log into BulkSMS > Settings > Advanced > API Tokens)
bsms = bulksms.BulkSMS(token_id='17A7C58921F54B5899D5C1237FCCD5FA-02-F', token_secret='9Sj8Ae9WQhBMEI2eMGXIKpZHC8shq')
bsms.send('+123456789', 'Hello world! 👋🏻')

Done!

Here’s some more advanced use-cases to deliver SMS:

import bulksms

bsms = bulksms.BulkSMS(token_id='17A7C58921F54B5899D5C1237FCCD5FA-02-F', token_secret='9Sj8Ae9WQhBMEI2eMGXIKpZHC8shq')

# send a message with a custom mobile number as Sender
bsms.send('+123456789', 'Hello world! 👋🏻', sender='+1666777888')
# send a message with a custom brand as SenderID
bsms.send('+123456789', 'Hello world! 👋🏻', sender='Google inc')

# send a text to a bunch of receivers in bulk
bsms.send(['+123456789', '+4985296345', '+44785612458'], 'Hello world! 👋🏻')

# send a text message with top priority.
# Unless priority is requested, the default 'routingGroup' set in the BulkSMS account is used.
bsms.send('+123456789', 'Hello world! 👋🏻', priority=True)

And here’s some inspection use-cases:

import bulksms

bsms = bulksms.BulkSMS(token_id='17A7C58921F54B5899D5C1237FCCD5FA-02-F', token_secret='9Sj8Ae9WQhBMEI2eMGXIKpZHC8shq')

# look up what's the current delivery status of a message
msgid = bsms.send('+123456789', 'Hello world! 👋🏻')

dstatus = bsms.msg_delivery_status(msgid)
# dstatus is in {'ACCEPTED', 'SCHEDULED', 'SENT', 'DELIVERED', 'FAILED'}

dcost = bsms.msg_cost(msgid)
# dcost is a float showing the number of credits consumed to deliver the message

💙 Help us be better

Here’s how you can help:

  • ⭐️ star our repository if you like bulksms.

  • Mention bulksms in any of your online posts so people find out about it.

And if you’re a developer:

  • Report any issue in our code or docs. We take those seriously.

  • Package bulksms for your distribution. Else Ubuntu, Debian, CentOS and FreeBSD will serve the most people.

🎖️ License

bulksms is open-source software (BSD 3-clause license).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bulksms-1.1.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bulksms-1.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file bulksms-1.1.1.tar.gz.

File metadata

  • Download URL: bulksms-1.1.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.4

File hashes

Hashes for bulksms-1.1.1.tar.gz
Algorithm Hash digest
SHA256 48aaaada495c434ef43f840d83bce5b56a43fb3926ddb29824d244a5cd1fc523
MD5 4f416c86ecfbfd266be07c48e96b19a7
BLAKE2b-256 efe5dab38787f0c0615fd0700e961b5ad1be0be361543a63dcc91c8376a671a9

See more details on using hashes here.

File details

Details for the file bulksms-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: bulksms-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.4

File hashes

Hashes for bulksms-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8110db6ea001f6fffa296003407d5c72e26c5a09ac3da238d031eac0f9d5579
MD5 a2c625a9a0f1f2d970aebcf54f60e6fb
BLAKE2b-256 d6b084eafdc5327188cfa1b2b7a975027656cfc85ce21c8a3fe3a7d9bf63f39a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page