simhook turns an Android phone into an SMS API.
Pair a phone with a SIM in it. Every message you send from code goes out through that SIM, and every text the phone receives comes back to you as a webhook. Your numbers, your carrier plan, no per-message fees.
It is a Go API you can self-host, an Android app that stays out of the way, a dashboard, a TypeScript SDK, and an MCP server so an agent can text people too.
send one
# any HTTP client, or the SDK, or an agent over MCP
curl https://api.simhook.dev/v1/messages \
-H "X-Api-Key: sh_..." \
-H "Content-Type: application/json" \
-d '{"to": ["+15550001111"], "body": "Your code is 482913"}'# about two seconds later, at your server
POST /sms-events
X-Simhook-Event: message.delivered
X-Simhook-Signature: t=1788618234,v1=9f3c1a...
{"id": "...", "event": "message.delivered", "data": {"recipient": "+15550001111", "status": "delivered", "delivered_at": "2026-09-05T13:53:30Z", ...}}Every state change is a signed webhook: sent, delivered, failed. Incoming texts arrive the same way, with the sender and the SIM that received them. Quickstart
what you get
- Send and receiveThrough your own SIM. Dual SIM works; pick one per message.
- Delivery receiptsSent and delivered from the carrier, not guessed.
- WebhooksHMAC-signed, retried for two days, paused when your endpoint keeps failing.
- Sends and schedulingUp to 5,000 recipients in one call, a send time if you want one.
- SDK and MCP serverTyped client for Node and edge runtimes. Eight tools for agents.
- Self-hostingOne VPS, one compose file. AGPL-3.0.
what it looks like
1,284sent today
98.6%delivered
312received
3queued
Pixel 8
Galaxy A54
+1 555 000 1111
+90 532 000 0000
+44 7700 900123
app.simhook.dev

the app on a Pixel 8
pricing
| Plan | Includes | Price |
|---|---|---|
| Free | 30 messages a day, 500 a month, one phone, the whole API | $0 |
| Pro | 10,000 messages a month, three phones, 500 recipients per send | $12 / month |
| Scale | 50,000 messages a month, ten phones, 2,500 recipients per send | $39 / month |
Messages are counted, not billed: the carrier plan on your SIM is what actually sends them. Self-hosting is free and has no limits. Details
questions
- Will my carrier mind?
- Consumer plans are for people, not bulk. The app paces sends with a delay you set, and the dashboard shows what went out. Keep it to what your plan allows and to people who want your messages; for real volume use a business SIM.
- Does it forward one-time codes?
- Yes. The app targets Android 16 on purpose, because Android 17 withholds code-like texts from newer apps for three hours unless they are the default SMS app.
- Can I run it myself?
- Yes. The whole stack runs from one compose file on a small VPS, and the app can be pointed at your server when you pair it. Self-hosting
- Where does the app come from?
- From this site, signed and published on GitHub. Google Play does not allow apps that send SMS on your behalf unless they are your default messaging app, so simhook is installed directly and updates itself.