DOCS · LOCAL HTTP API
Read your SMS from your scripts.
The app has an HTTP server on your phone. Scripts on your network can read messages, threads and codes with a token.
Turn it on
- In the app, open Status and turn on HTTP API and MCP.
- Copy the address and the access token.
- Send each request with the header
Authorization: Bearer <token>.
Endpoints
GET /health- Status. No token.
GET /api/status- Permissions, switches and delivery counts.
GET /api/messages- Messages, newest first. Filters: q, from, since, before, source, box, limit.
GET /api/messages/{id}- One message. The ID is sms:<n> or rcs:<n>.
GET /api/conversations- SMS threads with the last message.
GET /api/conversations/{threadId}- Messages of one thread.
GET /api/otp/latest- The last one-time code. Filters: from, within (minutes).
GET /api/contacts- Contacts. Filter: q.
GET /api/log- Messages that the app caught, with the rules that matched.
GET /api/access-log- Calls to the server.
The since and before filters take epoch milliseconds or ISO-8601. The limit is 1 to 200.
Example
curl -H "Authorization: Bearer $TOKEN" \ "http://192.168.1.3:8686/api/otp/latest?from=HDFC&within=5"
{
"otp": "834512",
"message": {
"id": "sms:40501",
"from": "AX-HDFCBK",
"body": "Your OTP for login is 834512. Do not share it.",
"receivedAt": "2026-10-21T09:41:21.087Z",
"simSlot": 1
}
}
Security
- The server is off by default. Requests without the correct token get 401.
- Turn off Network access to accept requests from the phone only.
- The server uses HTTP. For access from outside your network, use a VPN such as Tailscale.