Self-Hosted · No Monthly Costs · PHP + Android

YOUR
ANDROID
IS YOUR

SMS GATEWAY.

SMSKIT turns any Android phone into a dedicated SMS relay server. Flat-file PHP backend, zero database, zero monthly costs — deploy on any shared host in minutes.

1520
SMS / minute / device
5s
Poll interval
0$
Monthly infra cost
PHP7.4
Minimum requirement
SMSKIT
2 online
Total Sent
0
This Month
0
Queued
0
Devices
2
Last 7 Days
sent SMS delivered to +88017234… 00:02
sched Scheduled for 2026-05-19 23:58
api Key generated: sk_live_… 23:45
sent OTP delivered to +88019… 23:41
ZERO DATABASEFLAT-FILE JSONSHARED HOSTING READYOPEN SOURCEMULTI-DEVICEREST APISCHEDULED SMSBCRYPT SECURITY5-SECOND POLLINGROUND-ROBIN DISPATCH
ZERO DATABASEFLAT-FILE JSONSHARED HOSTING READYOPEN SOURCEMULTI-DEVICEREST APISCHEDULED SMSBCRYPT SECURITY5-SECOND POLLINGROUND-ROBIN DISPATCH

HOW IT
WORKS

A three-node communication loop. Your web server, your Android phone, and the people you need to reach — connected by nothing but PHP and a 5-second heartbeat.

01
Deploy the PHP Backend
Upload to any shared host, VPS, or cPanel. No database setup. Six JSON files in a protected directory handle everything: auth, settings, API keys, queues, schedules, and device registry.
02
Connect Your Android Phone
Install the companion app, enter your server URL and password. The app starts a foreground service that polls your server every 5 seconds — immune to Android's battery killer.
03
Send via Dashboard or API
Queue SMS through the web dashboard or REST API. Your phone picks them up within 5 seconds, dispatches via SmsManager, and reports delivery status back to the server.
04
Scale with More Devices
Add more Android phones. Round-robin dispatch assigns messages across all online devices, balancing load automatically. Each device independently polls — throughput scales linearly.
Web Dashboard / REST API
PHP · Flat-file JSON · Any shared host
poll every 5s ↕ report delivery
Android Companion App
Pure Java · Foreground Service · SmsManager
SmsManager.sendTextMessage()
Recipient's Phone
Native SMS · Delivered via carrier network
Data Layer (6 JSON Files)
auth.json settings.json apikeys.json queue.json schedules.json devices.json

BUILT FOR
BUILDERS

Every feature you need for a production SMS pipeline. Nothing you don't.

Scheduled + Recurring SMS
Schedule messages for a future datetime. Set daily, weekly, or monthly recurrence. Processed within 5 seconds of the trigger time.
Automation
REST API with Bearer Tokens
Full programmatic access. Keys hashed with SHA-256, never stored plaintext. Per-key rate limits and granular permissions: send, status, schedule, stats.
Developer
Multi-Device Round-Robin
Add multiple Android phones. Messages distribute round-robin across all online devices. Throughput scales linearly — 2 phones = 2× capacity.
Scalable
8 Built-In Templates
OTP delivery, order confirmation, appointment reminders, welcome messages, payment received, verification links, alerts, and task reminders — all with variable substitution.
Productivity
Incoming SMS Logging
The Android app intercepts incoming SMS via BroadcastReceiver and forwards them to the server — logged with sender, content, timestamp, and device metadata.
Receiving
CSV Export (4 Types)
On-demand export of sent SMS, received SMS, scheduled messages, and full queue — streamed directly as timestamped CSV files. No intermediate processing needed.
Analytics
Multi-Layer Security
Bcrypt passwords (cost 12), SHA-256 API key hashes, PHP file locking (LOCK_EX), config directory 403 protection, secure/httponly/SameSite cookies.
Security
Failed Message Retry
Failed SMS surface in a dedicated panel on the Status tab with recipient, preview, and error reason. One-click retry resets the message to queued status instantly.
Reliability
30-Second Auto Refresh
The Status tab polls the backend every 30 seconds via background fetch, updating metrics and activity log live — no page reload required.
Real-time

CLEAN
REST API

Full programmatic control over every SMSKIT function. Bearer token auth, JSON in, JSON out. Rate limits and permissions per key.

POST /api/v1/send.php Queue SMS to one or more numbers
GET /api/v1/status.php Check delivery status by message ID
GET /api/v1/statistics.php Retrieve usage stats and totals
POST /api/v1/validate.php Validate a phone number format
POST /api/v1/schedule.php Schedule a message for future delivery
send-otp.js
// Send an OTP via SMSKIT REST API
const SMSKIT_URL = "https://yourdomain.com";
const API_KEY   = "sk_live_xxxxxxxxxxxxxxxx";

async function sendOTP(phone, otp) {
  const res = await fetch(
    `${SMSKIT_URL}/api/v1/send.php`,
    {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        numbers: [phone],
        message: `Your OTP is ${otp}. Valid 5 min.`,
      }),
    }
  );

  const data = await res.json();

  // { ok: true, message_id: "msg_abc", count: 1 }
  return data.message_id;
}

// Check delivery status
async function checkStatus(messageId) {
  const res = await fetch(
    `${SMSKIT_URL}/api/v1/status.php?id=${messageId}`,
    { headers: { "Authorization": `Bearer ${API_KEY}` }}
  );
  return (await res.json()).status; // "sent" | "queued"
}

THE
NUMBERS

Throughput
15+
SMS per minute per Android device. Scales linearly with additional phones.
Poll Interval
5s
Android devices poll the server every 5 seconds. Max delivery latency from queue.
Queue Capacity
5k
Flat-file storage handles thousands of queued messages without performance degradation.
PHP Requirement
7.4
Minimum PHP version. Compatible with any shared host, cPanel, VPS, or bare-metal.
Storage Engine
0db
Zero database engines. Six JSON files with PHP flock() for safe concurrent writes.
Monthly Cost
$0
Beyond your existing hosting. No SaaS fees, no per-SMS charges, no API credits.
Templates
8+
Pre-installed templates with variable substitution. Create unlimited custom ones.
Security
B12
Bcrypt cost factor 12 for passwords. SHA-256 for API keys. Multi-layer protection.

USE
CASES

OTP & 2FA Pipelines
Deliver one-time passwords and two-factor codes without paying Twilio rates. Your SIM card, your carrier, your cost.
E-commerce Notifications
Order confirmations, shipping updates, payment receipts. Template variables let you personalize at scale with zero overhead.
Appointment Reminders
Schedule SMS days or hours before appointments. Daily, weekly, and monthly recurrence handles any cadence automatically.
Internal Alerts
Server downtime, CI failures, critical business events. Hook the REST API into any monitoring stack in minutes.
Marketing Automation
Small to medium campaigns without SaaS pricing. Scheduled recurring messages reach your audience on your schedule.
Developer Prototyping
Skip SMS API onboarding entirely. Self-host in 10 minutes, get a working API endpoint, ship your MVP today.

SIMPLE
STACK

Chosen for maximum compatibility and zero operational friction. If PHP runs on it, SMSKIT runs on it.

PHP 7.4+ Flat-File JSON Android Java SmsManager API REST JSON API bcrypt SHA-256 Foreground Service flock() File Locking BroadcastReceiver Token Bucket Rate Limit IANA Timezone SharedPreferences

NO
OVERHEAD

No MySQL / PostgreSQL
Six JSON files. PHP flock() prevents corruption under concurrent writes from multiple pollers.
No Composer / Node.js
Pure PHP. Upload the files, done. No build step, no package manager, no npm install.
No Twilio / Vonage / AWS
Your Android SIM card is the gateway. Carrier rates only — no per-message SaaS billing.
No AndroidX Dependencies
Pure Java companion app targets maximum Android compatibility — runs on nearly any device.

YOUR ANDROID.
YOUR SERVER.
YOUR SMS.

Deploy SMSKIT in under 10 minutes. Upload PHP, install the app, start sending. No configuration wizards, no third-party accounts, no monthly invoice.