Introduction

Ender is an open source SMS gateway that lets you send text messages using your own Android phones or USB modems.

What is Ender?

Instead of paying per-message fees to services like Twilio or Vonage, Ender lets you use your existing hardware to send SMS. Connect an old Android phone or a USB modem, and you have your own SMS gateway.

Ender provides:

  • REST API - Simple HTTP endpoints to send messages and check status
  • Web Dashboard - Manage devices, users, and view analytics
  • Webhooks - Get notified on delivery, failures, and incoming messages
  • Multi-tenant - Create users with quotas and permissions

Use cases

Ender works great for:

  • OTPs and verification codes - Send login codes from your app
  • Notifications - Alert users about important events
  • Internal tools - Send SMS from your internal systems
  • Side projects - Avoid monthly minimums from big providers

Note: Ender is designed for transactional messages, not marketing or bulk SMS. Carriers may block your number if you send spam.

Deployment options

Ender Cloud

The easiest way to get started. No server required.

  • ✓ Free plan available
  • ✓ Paid plans from $0.99/month
  • ✓ No infrastructure to manage
Get started free

Self-hosted

Full control on your own infrastructure.

  • ✓ 100% open source
  • ✓ Deploy with Docker
  • ✓ Your data, your server
Self-host guide

How it works

  1. Sign up or deploy - Use Ender Cloud or self-host on your server
  2. Set up a device - Install our Android app or connect a USB modem
  3. Send via API - Make HTTP requests to send messages
  4. Track delivery - Get status updates via webhooks or polling

Architecture

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Your App  │────▶│   Ender     │────▶│   Device    │
│             │     │   Server    │     │  (Android/  │
│  HTTP POST  │     │             │     │   Modem)    │
└─────────────┘     └─────────────┘     └─────────────┘
                           │
                           ▼
                    ┌─────────────┐
                    │  Webhooks   │
                    │  (delivery  │
                    │   status)   │
                    └─────────────┘

Next steps