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
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 the0
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
- Your number is not in
E.164
format - You’ve already sent a message to this number (use Textbelt’s paid API for sending multiple messages)
- 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.