How SMSKit works
Your code calls our API. We wake your phone. Your SIM sends the SMS. You get it all back.
Delivery reports flow back the same path: phone → cloud → your webhook.
- 1
Pair a phone
Install the SMSKit Gateway app on any Android phone (8.0+), open the dashboard, and scan a pairing code. The phone registers and reports its SIMs.
- 2
Call the API
From your backend, POST /api/sms/send with a recipient and a message, authenticated by your API key. We queue the message and pick the best device + SIM.
- 3
We wake your phone
A high-priority push (FCM) wakes the app even if it's idle. It pulls the job and sends the SMS through Android's native SmsManager — over your real SIM.
- 4
Track everything
The phone reports back: sent, delivered, or failed. See it live in the dashboard, poll the job-status endpoint, and receive webhooks. Replies come back as sms:received.
Why send from a real phone?
Because real numbers get delivered. An SMS from a physical SIM arrives as a normal person-to-person message from a real local number. Carriers don't filter it the way they filter shared short codes and aggregator brand IDs. No A2P 10DLC registration is required because — to the carrier — it's just you, texting.
This is exactly why SMSKit started: aggregator OTP deliverability was unacceptable, and a local SIM fixed it. More on the origin in About.
What makes it reliable
Retry + dead-letter
A failed send retries across your other phones; truly stuck jobs go to a dead-letter queue you can see — never silently dropped.
Auto-failover
A phone drops offline mid-send and its jobs move to a healthy device automatically.
Per-device throttling
An hourly limit per device keeps you under carrier abuse thresholds.
Idempotency
Retried API calls with the same key never double-send.
Observability
Prometheus metrics, health checks, and PII-masked logs — so you (and we) can see what is happening.
What you'll need
- One or more Android phones (8.0 / API 26+). Cheap or used is fine.
- A SIM in each, on a normal carrier plan.
- The phones kept on, charged, and online (Wi-Fi or mobile data).
- Five minutes to pair the first one.
Battery tip. Android aggressively sleeps background apps. The app guides you to exempt it from battery optimization — see the Download guide.
Who runs what
You bring the phones and SIMs. We run everything else — the API, the routing engine, push wakeups, the dashboard, and your database. No servers to set up, nothing to deploy: sign up, pair a phone, send.
Where your data lives
Every account gets its own isolated database — your messages never share a table with anyone else's. We host that database; you don't manage it, but it's yours alone. Logs mask phone numbers and message content.
Start sending in five minutes.
Pair a phone, grab an API key, send your first SMS — free.