TheVibeFounder. Resource · The Honest Read
Free open-source win · dev tool

Turn any Android
phone into an SMS API.

SMS Gateway for Android is a free, open-source app that turns any Android phone into a real, programmable SMS gateway — send and receive texts over an API, no vendor, no monthly bill, no lock-in. 5,000+ stars, Apache-2.0, and it just works. Here's the breakdown.

License — Apache-2.0 Stars — 5,000+ Android — 5.0+ Cost — $0
The 30-second version

What it actually is

01

A real SMS API — running on a phone

Install one app and any Android 5.0+ device becomes an SMS gateway you call over HTTP. Send texts and receive incoming ones programmatically. Free, open-source, 5,000+ GitHub stars, no registration needed in local mode.

02

Three modes, three trust levels

Local — the server runs on the phone, reachable on your network. Cloud — messages route through the maker's public server. Private — you self-host the server in your own infrastructure. Same API for all three.

03

Sends from your own number

It uses the phone's own SIM, so texts come from a real number people already recognize — no shared shortcode, no "this is an automated message from an unfamiliar sender."

04

Built for the useful stuff

2FA codes, alerts, reminders, transactional texts — the everyday sends that don't need enterprise volume. For actual bulk/marketing sends, pair it with a dedicated SIM plan.

Which mode routes where

Pick your mode by who you trust

Local ServerServer runs on the device; reachable over your LAN (or public IP if you open the firewall)
on-device
Cloud (Public) ServerRoutes through api.sms-gate.app; rate-limited on the free public tier
3rd-party relay
Private ServerSelf-host the backend in your own infra; message data stays yours, push via their server
self-hosted

The takeaway: where your messages travel is your choice. Local and Private keep the content in your hands; Cloud trades that for working through firewalls and changing IPs with zero setup.

The claims, checked

What holds up

True

"No registration required." In local mode you need no account at all — install, toggle on, send. Verified in the docs.

True

"End-to-end encryption." Message content and recipient numbers are encrypted before they hit the API and decrypted on the device. A real security feature, not a checkbox.

True

"Send & receive via API + webhooks." A real REST API plus webhooks that fire on incoming SMS/MMS. Multi-SIM and multi-device are supported too.

True

"Free and open-source." Apache-2.0, no paywall, no tier to unlock — you're running your own SMS on your own hardware, on your own terms.

Best fit

Everyday sends, not enterprise scale. One phone, one SIM — perfect for 2FA, alerts, and reminders. For high-volume campaigns, run it alongside a dedicated SIM or SMS plan.

The real setup · local mode

From zero to a working /message call

1

Install the APK

Grab the latest release (v1.66.2) from GitHub Releases and sideload it — enable Unknown sources first. Use the secure/release build, never the insecure one.

2

Grant permissions

SEND_SMS is required. Add RECEIVE_SMS / READ_SMS only if you want inbound webhooks or history, and READ_PHONE_STATE to pick a SIM.

3

Start the local server

Open the app, toggle Local Server on, tap Offline to activate it. The app shows your local/public IP and the basic-auth username + password.

4

Send a message

POST JSON to /message with the credentials from the previous step. Swap in the device IP, username, and password:

# send an SMS from your own number, via the phone
curl -X POST -u USER:PASS \
  -H "Content-Type: application/json" \
  -d '{ "textMessage": { "text": "Hello from my phone" },
        "phoneNumbers": ["+19162255887"] }' \
  http://DEVICE_IP:8080/message

Prefer a CLI? The smsgate tool wraps the same API. For incoming texts, register a webhook URL and the app POSTs you every SMS/MMS it receives.

Good to know

How to run it right

The phone IS the server

If the device dies, loses signal, or Android kills the app in the background, your gateway is down. Fine for side projects; risky for anything you can't afford to have silently stop.

Cloud mode = a third-party hop

Public Cloud mode relays your messages through the maker's server. Convenient, but if your data is sensitive or regulated, use Local or self-hosted Private mode instead.

Carrier terms & limits

You're sending from a consumer SIM. High volume or spammy content can get your number throttled or banned. Respect your carrier's ToS — this is not a bulk sender.

Sideloaded app, SMS permissions

You're granting send/read-SMS to a sideloaded APK. Install only the official release build; the "insecure" build allows cleartext traffic and should never run in public.

The fit check

Who should — and shouldn't

Reach for it if

  • You need a handful of programmatic texts (2FA, alerts, reminders) from your own number.
  • You want a cheap home-lab / IoT SMS trigger or a dev-test SMS endpoint.
  • You'd rather self-host than sign up for a paid SMS vendor.
  • You can keep a spare Android phone powered and online.
  • Skip it if

  • You need to send thousands of marketing or campaign texts.
  • You need guaranteed uptime, deliverability, or an SLA.
  • You can't dedicate a phone that stays on 24/7.
  • You're in a regulated flow that can't touch a third-party relay (unless you self-host Private).
  • The one line to keep
    Free, open-source,
    and it actually just works.
    The source · check it yourself

    It's open-source — read the code

    We did the plain-English read; the project speaks for itself. It's Apache-2.0 on GitHub with full docs. Star it, read the API reference, and grab the APK from Releases.

    capcom6 / android-sms-gateway
    Apache-2.0 · Kotlin · 5,000+ stars · docs at sms-gate.app