Skip to content

๐Ÿ“จ OpenSMS

An open-source solution to host a SMS API server locally.

GitHub Downloads (all assets, all releases)

๐Ÿค” Why would you choose our app? (Features)

โœ…๏ธ Turns your Android phone into a SMS API server.
โœ…๏ธ Open-source, No advertisements and privacy focused.

๐Ÿ“ฝ๏ธ Demo

You can click on the below Image or this Youtube Link to see the demo. Please let me know in the comments, how do you feel about this App.

๐Ÿง‘‍๐Ÿ’ป Quickstart Guide

๐Ÿ“ฑ Download & Run the Android App

Minimum Android verion required: 9 .

  1. You can check the Releases and downlaod the latest version of the android app on your phone.
  2. You may need to disable (temporarily) Play Protect from your Play Store settings.
  3. Install the App & launch.
  4. Grant the permissions.
  5. Android might block sms permission. Go to Settings > Apps > OpenSMS > Tap on three vertical-dots at top-right corner > Allow restricted access .
  6. Then grant SMS permission from the settings window.
  7. Relaunch the app.
  8. Click Start Server . It will then prompt you to generate an API Key for the first time. Generate and store it securely.

๐Ÿงช Test API endpoint

Find the network address of your device and you may test out the API. Sample given below.

curl -i -X POST 'http://127.0.0.1:9292/sms/' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer my-secret-api-key' \
    -d '{"number": "+1234567890", "text": "Hello from OpenSMS API!"}'

๐Ÿ“š Tech Stack Used

Python stack

It works on Android and will bring this to Linux & Windows too. - FastAPI for the API layer. - KivyMD and few Kivy components for the UI and building the app.

๐Ÿ“‹ Future plans

  1. Bring this SMS API option to Desktop platforms. We will leverage Quectel EC200U based USB development boards to send SMS.

๐Ÿงฉ Building your app from code

๐Ÿ“ฑ Build Android App

A Linux environment is recommended for the app development. If you are on Windows, you may use WSL or any Virtual Machine .

# add the python repository (Optional: if you want some other versions)
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

# install all dependencies.
sudo apt install -y ant autoconf automake ccache cmake g++ gcc lbzip2 libffi-dev libltdl-dev libtool libssl-dev make openjdk-17-jdk patch patchelf pkg-config unzip wget zip git python3 python3-venv python3-dev libcairo2-dev pkg-config libjpeg-dev zlib1g-dev

# optionally you may check the java installation with below commands
java -version
javac -version

# install python modules
git clone https://github.com/daslearning-org/OpenSMS.git
cd OpenSMS/app
python3 -m venv .env # create python virtual environment
source .env/bin/activate
pip install -r req_android.txt

# build the android apk
buildozer android debug # this may take a good amount of time for the first time & will generate the apk in the bin directory

You can buy me a coffee via this link or tap on below image. Thank you ๐Ÿ™.