About this project
SMS Gateway for Android is an Android application that turns a smartphone into an SMS gateway, allowing applications and services to send and receive SMS messages programmatically through an API or CLI tool. It is distributed under the Apache-2.0 license and is built with Kotlin, Ktor, Room and Firebase.
Core capabilities
- Send and receive SMS via API; no registration is required, and local mode needs no account at all.
- Supports Android 5.0 and later.
- Multipart messages with automatic partitioning, plus message status tracking.
- Incoming message viewer for SMS, Data SMS and MMS with tabs and statistics.
- Real-time incoming SMS and MMS notifications through webhooks, including reading previously received messages.
- MMS support: download notifications with body and attachments, and sending MMS with images, audio, video or files, with optional subject and text body.
- Batch webhook events when multiple messages arrive at once.
- Cancel pending messages, filter messages by state and type, and apply send rate limiting per period.
- Data SMS support for binary payloads (IoT commands, encrypted messages).
- Working-hours scheduling that pauses the queue outside configured windows.
- Webhook queue diagnostics screen showing pending deliveries and retries.
Security and privacy
- End-to-end encryption of message content and recipient phone numbers before they reach the API, decrypted on the device.
- Private server support so a backend can run in your own infrastructure.
Advanced features
- Multiple SIM card support and multiple device support: devices connected to the same account with Cloud or Private server receive messages distributed across them.
Integration
- Webhooks for events such as sms:received, sms:batch:received, sms:sent, sms:delivered, sms:failed, sms:cancelled, sms:data-received, mms:received, mms:downloaded, app:started and system:ping.
- Webhooks are sent directly from the device, so the device needs an outgoing internet connection.
Modes of operation
- Local Server: the app runs an HTTP server on the device, reachable on the local network, with basic authentication credentials and interactive Swagger docs at /docs. Example curl and CLI commands are provided for sending text and MMS messages.
- Cloud Server: connects to api.sms-gate.app for devices with dynamic or shared IP addresses; received messages are uploaded for centralized access. A private server can be deployed instead.
Installation
- Prebuilt APKs are available from the GitHub Releases page, in a secure release build and an insecure development build (cleartext traffic allowed, not for public environments).
- Required permission: SEND_SMS. Optional permissions: READ_PHONE_STATE (SIM selection), READ_SMS (reading previous messages), RECEIVE_SMS, RECEIVE_MMS and RECEIVE_WAP_PUSH (webhooks for incoming SMS/MMS).
Intended use cases include SMS-based two-factor authentication, transactional messages, reminders, notifications and user feedback. The README notes that batch sending is not recommended due to potential mobile operator restrictions.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.