This tutorial explains how to send an SMS from your Raspberry Pi without using a GSM modem. In this tutorial, we’ll be sending the SMS through the internet using the ClickSend SMS API.

  1. Create an account at
  2. Create a Python script and add your ClickSend credentials

    # -*- coding: utf-8 -*- username = 'User' # Your ClickSend username api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' # Your Secure Unique API key msg_to = '+61411111111' # Recipient Mobile Number in international format (+61411111111 test number). msg_from = '' # Custom sender ID (leave blank to accept replies). msg_body = 'This is a test message' # The message to be sent. import json, subprocess request = { "messages" : [ { "source":"rpi", "from":msg_from, "to":msg_to, "body":msg_body } ] } request = json.dumps(request) cmd = "curl -u " + username + ":" + api_key + " -H \"Content-Type: application/json\" -X POST --data-raw '" + request + "'" p = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True) (output,err) = p.communicate() print output
  3. Connect to the Raspberry Pi via SSH/PuTTY (Raspberry pi must be connected to the Internet)
  4. Copy script from your windows PC to your Raspberry Pi. (../home/pi)
  5. Start script with your parameters: python
  6. Done! Your SMS should’ve been sent by now.

We’d love to hear what you’ve created. Please get in touch with us for some free SMS credits.

Your first SMS is on us

Want to send your first SMS from your Raspberry Pi for free? Sign up for a trial with ClickSend and you’ll get $2 AUD of credit to test with. Happy sending.

Start your trial