SMS2Webhook
org.golder.sms2webhook
android MIT kind 32267
Forwards incoming SMS to a webhook endpoint you control, with retries, deduplication and optional API key authentication.
latest release
2.2.1
main
released 2026-10-06 08:18 UTC
download apk
asset · 14.5 MB
+1 more variants — full list in the assets card below
✓ signed
cert 4932517e…
about
- description
- SMS2Webhook runs on your own phone and posts each incoming SMS to a webhook URL that you configure. It is a building block for self-hosted automation: point it at your own server to trigger workflows, archive messages, feed a CRM or ticketing system, or expose SMS to your own dashboards. ## What it sends Every forwarded message is posted as JSON to the single endpoint you set. The payload is your phone's own messaging row rather than a fixed shape, so the fields present vary by device and Android version: the sender `address`, the message `body` and the `date` timestamp are always there, and devices whose messaging app records a SIM subscription include it as `sub_id`. Treat anything beyond those as optional. If you configure an API key it is sent as an `Authorization: Bearer` header. ## What leaves the device Message content is transmitted **only** to the webhook URL you enter. There are no analytics, no advertising, no crash reporting and no third-party servers. The local database stores a SHA-256 hash of each message for deduplication, not the message text. Source code is public and auditable. Because this is a self-hosted tool, the destination is yours to choose. Review the URL you enter, and prefer HTTPS so message bodies are encrypted in transit. ## Permissions - `RECEIVE_SMS` and `READ_SMS` — required to observe incoming messages and, if you choose, to backfill your existing SMS history. - `INTERNET` — to reach your webhook. - `CAMERA` — optional, only for scanning the setup QR code. The telephony and camera hardware features are declared optional, so the app installs on devices without them. ## Reliability Uploads are queued in WorkManager with exponential backoff, so a webhook that is briefly unreachable does not lose messages. A SHA-256 cache prevents the same message being delivered twice. ## Requirements Android 9.0 (API 28) or later.
- publisher
- e3c6d9d514d74afe40ffbb93e659cb34d1c9a8bd1e84f60faae4525aa61423c9
- first seen
- 2026-10-04T12:08:12.420844+00:00
- last event
- 2026-10-06 08:18 UTC
- website
- https://github.com/rossigee/sms2webhook
- install
- zapstore.dev or any Zapstore-compatible client
- topics
- #automation #notifications #privacy #self-hosted #sms #webhook
source & build
- repository
- https://github.com/rossigee/sms2webhook
- arch flags
- android-arm64-v8a android-armeabi-v7a android-x86 android-x86_64
- manifest
- zapstore.yaml ok checked 2026-10-04T12:09:33.256994+00:00
parsed zapstore.yaml (gap-filler — event fields always win)
{
"images": [
"screenshots/04_settings_screen_filled.png",
"screenshots/05_main_screen_configured.png",
"screenshots/02_main_screen_with_logs.png",
"screenshots/01_main_screen_empty.png",
"screenshots/03_settings_screen_empty.png"
],
"license": "MIT",
"match": ".*-release-signed\\.apk$",
"name": "SMS2Webhook",
"release_notes": "./CHANGELOG.md",
"repository": "https://github.com/rossigee/sms2webhook",
"summary": "Forwards incoming SMS to a webhook endpoint you control, with retries, deduplication and optional API key authentication.",
"tags": [
"sms",
"automation",
"webhook",
"self-hosted",
"notifications",
"privacy"
],
"website": "https://github.com/rossigee/sms2webhook"
}
releases (kind 30063)
5 releases indexed; latest 2.2.1.
| version | channel | released | event |
|---|---|---|---|
| 2.2.1 | main | 2026-10-06 08:18 UTC | 62ec6130… |
| 2.2.0 | main | 2026-10-06 06:15 UTC | 05ea4fdc… |
| 2.1.2 | main | 2026-10-06 01:02 UTC | 78142caa… |
| 2.1.1 | main | 2026-10-06 00:03 UTC | 3ce2ad0e… |
| 2.1.0 | main | 2026-10-04 12:19 UTC | 61f704e4… |
assets & verification
Every app, release and asset event is schnorr-verified (NIP-01 id + signature) before it enters the catalog, and assets are content-addressed by sha256. We subscribe read-only to the catalog relay — never write to it.
2.2.1 — application/vnd.android.package-archive
- sha256
- f170ff9be102f0f13e2ce018c37a6f20afc73915a0ada55e838e5a2d485a1859
- size
- 14.5 MB
- archs
- android-arm64-v8a, android-armeabi-v7a, android-x86, android-x86_64
- version code
- 8
- apk cert sha256
- 4932517eaf4a0dc3191dd261301edb3ba786b08725fbcd4148011c281daa2533
- download
- asset
2.2.1 — application/vnd.android.package-archive
- sha256
- 20f4ed70b163a415fbbe9b9d38e4e4569c0c2866abe537e5f06f987712857c33
- size
- 14.5 MB
- archs
- android-arm64-v8a, android-armeabi-v7a, android-x86, android-x86_64
- version code
- 8
- apk cert sha256
- 4932517eaf4a0dc3191dd261301edb3ba786b08725fbcd4148011c281daa2533
- download
- asset
2.2.0 — application/vnd.android.package-archive
- sha256
- 162f75081b4ff8ce659b43c97782a2cc3cc9906179de9315a9a6821773c7a3a4
- size
- 14.5 MB
- archs
- android-arm64-v8a, android-armeabi-v7a, android-x86, android-x86_64
- version code
- 7
- apk cert sha256
- 4932517eaf4a0dc3191dd261301edb3ba786b08725fbcd4148011c281daa2533
- download
- asset
2.2.0 — application/vnd.android.package-archive
- sha256
- 64ecbafdca424d96a37cc1cf26c2d586c554d71f63710207e32a352630f10996
- size
- 14.5 MB
- archs
- android-arm64-v8a, android-armeabi-v7a, android-x86, android-x86_64
- version code
- 7
- apk cert sha256
- 4932517eaf4a0dc3191dd261301edb3ba786b08725fbcd4148011c281daa2533
- download
- asset
Showing the newest 4 asset descriptors; the full set is in /api/apps/e3c6d9d5…