httpSMS: Turn Any Old Android Phone Into a Free SMS Gateway
Have an old Android phone collecting dust in a drawer? Itâs about to become your free SMS gateway.
httpSMS is an open-source project that transforms any Android device into a programmable SMS gateway. You get a simple HTTP API to send and receive text messages - no Twilio subscription, no virtual number fees, just your existing carrier plan.
GitHub: NdoleStudio/httpsms
Docs: docs.httpsms.com
Why This Exists
The creator, originally from Cameroon, built httpSMS because many countries donât support virtual phone numbers. If you canât buy a Twilio number in your region - or you just donât want to pay per-message fees - this solves the problem.
How It Works
Your App â HTTP API â Push Notification â Android Phone â Carrier SMS
â
Incoming SMS â Webhook â Your App
- Call the API with your message
- Firebase Cloud Messaging pings your Android phone
- Phone sends the SMS via its normal carrier connection
- Incoming messages get forwarded to your webhook
The Stack
- API: Go + Fiber, runs on Cloud Run (or self-hosted Docker)
- Web UI: Nuxt + Vuetify
- Android App: Native Kotlin
- Database: CockroachDB (or Postgres for self-hosting)
- Push: Firebase Cloud Messaging
Key Features
End-to-End Encryption
Messages encrypted with AES-256. The key stays on your phone - even the server canât read your SMS content.
Rate Limiting (Back Pressure)
Set limits like â3 messages per minuteâ to avoid carrier abuse detection. Even if you queue 100 messages, theyâll send at your configured rate.
Message Expiration
Set timeouts for time-sensitive messages. If the phone misses a push notification and canât send in time, you get notified instead of sending a stale message.
Webhook Forwarding
Every incoming SMS hits your webhook endpoint. Build auto-responders, 2FA verification, or chatbots.
Quick Start
// Sending an SMS with the Go client
client := httpsms.New(httpsms.WithAPIKey("your-api-key"))
client.Messages.Send(context.Background(), &httpsms.MessageSendParams{
Content: "Your verification code is 123456",
From: "+18005550199", // Your Android phone's number
To: "+18005550100",
})
Clients available for Go and JavaScript/TypeScript.
Self-Hosting
Full Docker setup available:
git clone https://github.com/NdoleStudio/httpsms.git
cd httpsms
# Configure Firebase, SMTP, Cloudflare Turnstile
cp api/.env.docker api/.env
cp web/.env.docker web/.env
# Edit .env files with your credentials
docker compose up --build
Youâll need:
- Firebase project (for push notifications + auth)
- SMTP server (for notification emails)
- Cloudflare Turnstile (for captcha protection)
Alternatives
httpSMS isnât the only option in this space:
- textbee - Similar concept, free tier for 300 messages/month
- SMS Gateway for Android - Privacy-focused, no registration required
- Somleng SMS Gateway - Twilio-compatible API, supports multiple devices
Use Cases
- 2FA/OTP delivery for your app
- Appointment reminders for small businesses
- IoT alerts from sensors/devices
- Transactional notifications without per-message fees
- SMS automation in regions without virtual number support
The Bottom Line
If youâre building something that needs SMS and youâre tired of paying Twilio $0.0079 per message (plus monthly number fees), httpSMS is a legitimate alternative. Grab that old Android phone, install the app, and youâve got an SMS API.
The tradeoff: youâre responsible for uptime. Phone dies? No SMS. But for side projects, internal tools, or regions where virtual numbers arenât available, this is a solid open-source solution.
httpSMS is AGPL-3.0 licensed. Star count: 3.6k+ on GitHub.