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.0.tar.gz (11.2 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.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bulksms-1.1.0.tar.gz
  • Upload date:
  • Size: 11.2 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.0.tar.gz
Algorithm Hash digest
SHA256 634bd34f4f51381ae287ceeb1e28eb0d46db7024aa0efdec12c1938763327688
MD5 37b6b23c10a0b9ae28c14faad9c765d9
BLAKE2b-256 fd6794c9b7eaa52a2db6249f7a172aeffcebb9cda2bd023d4c65d9d0259f8b50

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bulksms-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74aa91b3532bb9719aa60a774808e5443fd90e4ff35e355c29cf3cfa7ab49c68
MD5 67bde3fb0dabe89304c32904b69f19ed
BLAKE2b-256 fba128837ca8c85d12b4ad4e0f5be6ee6c8f5b8e2df96fbd749657c6d866ab71

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