FreeSMS: An anonymous SMS Sending Tool by Ibn Aleem

Send Anonymous Text Messages

Ibn Aleem
3 min readSep 6, 2023

--

Sending anonymous text messages is a valuable tool for privacy-conscious individuals and organizations. This article explores one of the many methods for maintaining anonymity in text communication. Discover how to protect your identity and engage in discreet conversations. No programming experience is required, though preferred.

FreeSMS: An anonymous SMS sending tool with a WebGUI

Disclaimer: This repository is intended for educational purposes exclusively. I bear no responsibility for any illicit or unauthorized use of this project.

FreeSMS is a local WebGUI that uses Textbelt’s free SMS-API to send one free SMS internationally, ensuring privacy and enabling users to customize and run the code as desired.

FreeSMS is open source, allowing contributors to modify the JavaScript logic and HTML/CSS. It caters to developers who prefer efficient WebGUIs over command-line tools.

To get started, clone the repository:

$ git clone https://github.com/ibnaleem/FreeSMS.git

For simplicity, I’ve created a Python file called run.py that runs the WebGUI on localhost at port 8000 (http://localhost:8000)

$ py run.py

Make sure the Python file, run.py, is in the same directory as script.js , index.html and styles.css (for any issues, open an issue on the GitHub repository)

Additionally, you could open the index.html file if you don’t have Python installed.

E.164 Format

E.164, titled “The international public telecommunication numbering plan,” is a global standard that establishes a numbering plan for the worldwide public switched telephone network and certain other data networks. It specifies a universal format for international telephone numbers (The International Telecommunication Union Telecommunication Standardization Sector).

Not adhering to the E.164 format will prevent SMS messages from reaching your intended phone number. Ensure your desired phone number conforms to this guideline:

  • Country code with + (e.g +44, +1, etc.)
  • No leading zeros (eg +44076 = +4476); notice the 0 was removed after the country code (+44)

Send More Than 1 Text

To obtain an API key, visit Textbelt’s pricing page and input the key in the “API Key?” section of the WebGUI. Checking the box will activate a dedicated text box for API keys.

Failure to Send

  1. Your number is not in E.164 format
  2. You’ve already sent a message to this number (use Textbelt’s paid API for sending multiple messages)
  3. Use a VPN if errors persist, and open an issue

Delivery Status

For simplicity, I have omitted the delivery status functionality (you can add it by forking the repository and contributing to the project). You can always check the delivery status manually by using cURL anytime:

$ curl -X POST https://textbelt.com/text \
--data-urlencode phone='YOUR NUMBER HERE' \
--data-urlencode message='YOUR MESSAGE' \
-d key=textbelt
{"success": true, "quotaRemaining": 40, "textId": 12345}
$ curl https://textbelt.com/status/12345
{"status": "DELIVERED"}

The cURL post will return JSON containing the success status, your remaining quota (number of texts you can send) as well as the text-ID. Making a request to https://textbelt.com/status/[text-id] will return a JSON with the delivery status.

For any issues, contributions, please visit my GitHub.

--

--