Sending SMS Messages with Python: A Step-by-Step Guide

Back to all posts
Sending SMS Messages with Python: A Step-by-Step Guide

*Updated July 2025*

This step-by-step guide shows you how to send SMS messages using Python and GatewayAPI. You’ll learn how to install dependencies, customize your message, and execute the script to send SMS globally. The post also highlights common pitfalls and provides best practices on sender IDs, encoding and link whitelisting to ensure successful delivery.

Before we begin, it’s important that you have a basic understanding of Python and a GatewayAPI account with account credit. You can also choose to use our EU setup where hosting and ownership is held entirely within the EU. This setup is especially relevant for customers who have special requirements concerning their data.

Let’s dive into the process step-by-step.

Getting started

GatewayAPI dashboard:
After logging into your GatewayAPI account, you’ll be presented with a dashboard where you can find range of code examples in various languages, ensuring that you can integrate with the API no matter what your preferred language might be. Here we naturally use the Python code sample, which is automatically included with your unique credentials.

Dependencies installation:
Before diving into the code, you’ll need to ensure that your Python environment is set up correctly. The key dependency you need is the requests library. To install it, open your terminal or command prompt and run the following command:

Setting up your editor:
After installing the necessary dependencies, copy the provided code example from your dashboard into your favorite code editor. 

Customizing the message

Input the phone number:
Within the code, locate the placeholder to input the recipient’s phone number.

Change the Sender ID:
Modify the sender’s name from the default “ExampleSMS” to “GatewayAPI” (or any other preferred sender name).

Modify the message content:
The default message in the example says “Hello World.” You can change this to a more personalized message like “Hello Oliver, how are you?” or any other text you’d like.

Remember to change the token:
If you have copied the code below instead of the one in your dashboard, remember to replace the token in the example with your unique token. This can be found in your dashboard under
API → API Keys.

The code should now look like this:

Sending the SMS

Run the script:
Once you’ve made all the necessary changes, save your script and head back to your terminal. Execute your Python script, and if everything is set up correctly, the message will be sent to the specified phone number.

Message confirmation:
You’ll be able to see a message pop up on the recipient’s phone. In our example, the message “Hello Oliver, how are you?” from GatewayAPI was received.

Typical errors

  • Using wrong credentials and e.g. mixing up the key with the token. 
  • Missing Dependencies: Forgetting to install required libraries or modules, leading to ModuleNotFoundError or ImportError.
python_holy_grail-nov_2023-1200x628px@2x

Python – the holy grail of programming?

Three fun facts about the Python coding language:

  • The name “Python” doesn’t come from the snake but from the British comedy group Monty Python. Guido van Rossum, the creator of Python, was a fan of “Monty Python’s Flying Circus,” and wanted a name that was short, unique and slightly mysterious.
  • Python has its own set of guiding principles, which you can view by typing import this into a Python interpreter. This will show you “The Zen of Python,” a collection of 19 aphorisms that capture the philosophy of the Python language
  • Python is one of the fastest-growing programming languages in the world. Its simplicity and versatility, especially in data science and web development, have led to its widespread adoption in various industries.

Concluding remarks

As a final note, here are key considerations ensuring that SMS broadcasts goes smoothly:

  • Keep your Sender ID within 11 alphanumerical characters or 15 numerical digits. Special characters may cause issues or overwrite your ID.
  • If incorporating links, initiate the whitelisting process ahead of time. Approval typically takes under a business day.
  • Ensure your SMS or PHP file encoding is set to UTF-8. This is critical for seamless operation, especially for Windows users who may encounter alternate default settings.

 

This overview touched on the essentials of SMS messaging via GatewayAPI. For an in-depth guide, consult our documentation.

For a video step-by-step walkthrough, check out our YouTube video, where my colleague demonstrates Python-based messaging, mirroring the guidance in this blog post.

Happy coding!

about_the_author_OG-nov_2023-1200x628px@2x

About the author

Oliver focuses on integrations and is the man to go to if you need an integration with your preferred system. When he is not working on GatewayAPI, he is an avid student of AI and Deep Learning. Oliver generally just enjoys working with code, whether it’s AI or something more down-to-earth, such as GUI or backend software.