HTTP requests in, SMS out through the phone's SIM
SMS Gateway for Android is an Android app that turns the phone into an SMS gateway. Your backend sends an authenticated HTTP request and the phone sends the text through its own SIM card; incoming messages and delivery reports come back as webhooks. Clients reach the API on the phone itself (a local server on port 8080 by default, no account needed) or, when the phone has no reachable address, through a relay: the maintainers' free server, whose sign-up asks for no email, or a private one.
Device-held keys, SIM rotation and anti-throttling settings
- Optional end-to-end encryption: clients encrypt the message body and phone numbers with the phone's RSA-2048 public key. The private key stays in the Android Keystore, so the relay never sees the text or the recipients.
- Fourteen webhook events: received, sent, delivered, failed and cancelled SMS, downloaded MMS, incoming data SMS, plus a periodic
system:pingthat tells you the phone is still up. - Several SIMs, several phones: pick the SIM per message or let the app rotate between them. In cloud or private mode, one account spreads its outgoing messages across its devices.
- Settings against carrier filtering: a cap per minute, hour or day, a random delay between messages, and working hours outside which the queue pauses.
Twilio fallback, email-to-SMS and IoT commands
- Verification codes and transactional texts. The docs advise against the sending cap for these, since it delays messages.
- Resending through the phone whatever Twilio failed to deliver, with the project's
twilio-fallbackservice and no change to the code that calls Twilio. - Texting from a system that can only send email, through the project's SMTP bridge.
- Commands to IoT equipment carried in binary SMS.
Sideloaded APK, Firebase wake-ups and carrier limits
The app is not on Google Play. It ships as an APK on the GitHub releases page. On Android 15 and later, Play Protect may block the install, and the SMS permission stays greyed out until someone grants it by hand.
Cloud mode runs on Firebase Cloud Messaging. The server wakes the phone with a push notification; when idle, the device may check in only once every 15 minutes. A private server keeps message data on your own infrastructure, yet its push notifications still travel through api.sms-gate.app and FCM unless the phone uses SSE. Running one takes a Linux VPS, Docker, a MySQL or MariaDB database and a reverse proxy with a valid TLS certificate.
Texts go out under the SIM's number. The app supports neither an alphanumeric sender ID, which only the carrier can set up, nor RCS.
The README advises against bulk sending because of carrier restrictions. The public cloud is free with no published quota, though the pricing page asks anyone above 10,000 messages a day to contact support and leaves the door open to paid tiers for new users. On that cloud, the only queue limit is age: once a message has been pending for more than 24 hours, new sends are refused with HTTP 503.
Ten releases between September 3 and October 27, 2026, including 1.77.5 on October 21 and 1.78.0, still a pre-release. The docs describe active development and note that some projects already run it in production. Both the app and the server are licensed Apache-2.0.
