alarmsender://privacy

Back to the console

Alarm Sender rings an alarm on your devices when something tells it to. This page says exactly what that means for your data: what is stored, where, for how long, and how to get rid of it.

This deployment · last updated 16 October 2026

Who we are

Alarm Sender is operated by Single Breath LLC. The console lives at alarmsender.com; trigger URLs live at alrm.sh, which serves triggers and a health check and nothing else. This policy covers both, the mobile and desktop apps, and the browser extension.

The short version

We store what the product needs to ring your alarms: your email address, a hash of your password, the devices you have paired, the alarms you have received, and the triggers you have made. There is no analytics, no advertising, no tracking, and no third-party SDK in any client we ship. We do not sell anything to anybody.

The honest caveat: your alarm history is kept until you delete it. An alarm's title and message can say anything you put in it, so treat that history as something you own and can clear.

Your account

WhatWhy
Email addressSigning in, sending escalation notices when an alarm goes unanswered, and, on a paid account, reminders before its plan ends
Password, hashedPBKDF2. The password itself is never stored and cannot be recovered from the hash
Sign-in sessionsStored as a hash of the session id, so a stolen database does not yield working sessions
When the account was created, and whether it is suspendedAdministration
Your plan: paid or complimentary, the date a paid plan runs to, and which renewal reminders have been sentDeciding whether alarms ring, and not sending the same reminder twice

The only email we send you is about your own alarms and your own account: an escalation notice from alerts@alarmsender.com when a chime asked to be escalated and nobody answered, and, if your plan is a paid one, reminders from the same address before it ends and if alarms stop because it has. There is no newsletter and no marketing email.

Your devices

Pairing a phone, desktop or browser records a name you can change, the platform it reported (android, linux, windows, chrome, firefox), when it paired, and when it last checked in. The pairing credential is stored as a hash; the token itself exists only on your device.

A device's name is generated from the platform — "Firefox on Linux x86_64", "Pixel 9" — and you can rename it. We do not collect an advertising ID, a hardware serial, an IMEI, or any other device identifier.

Your alarms

Every alarm is recorded: which chime rang, its title and message, any variables the trigger passed, which trigger or agent fired it, how many devices it reached, and when. Alongside it we keep one receipt per device — whether it rang, was silent, or was muted, and whether somebody acknowledged or dismissed it, with the time from both the device's clock and ours.

That history is what the Activity page shows, what escalation decides on, and what tells you an alarm reached nothing. An alarm's title and message contain whatever the sender put there, which may be anything from "gate opened" to the contents of a monitoring alert.

Triggers and who fired them

A trigger stores its name, a hash of its token, the mapping that turns an incoming request into an alarm, and its rate limits. Two things about the callers are kept, and only the most recent of each, so nothing accumulates:

FieldWhat it holds
Last caller addressThe IP address of the most recent request to that trigger
Last refused senderThe address of the most recent email a sender allowlist turned away

Both exist to answer one question — whether a refusal was a misconfiguration or somebody who should not be there — and each is overwritten by the next. We also count refusals by reason, without keeping a log of them.

Captured requests

This is the most sensitive thing the service can hold, and it is off by default. When you switch capture on for a trigger so you can build a field mapping, the next requests are stored whole: method, query string, headers and body. Up to ten are kept per trigger, oldest discarded.

Headers can include credentials the calling system sends. Turn capture off once the mapping is built, and delete the captures you no longer need.

What stays on your device

The apps keep some things locally that are never uploaded: your cached chimes, your device-side settings, a short list of recent alerts for the history screen, and your Senders list — the shared alarms you can ring. Senders live only on that device, which is why they survive unpairing and why losing the device loses the list.

What you send to somebody else lands on their account, not yours. Ringing a shared alarm sends whatever you typed to the person who gave you that trigger: it is stored in their alarm history and shown on their devices, and they can read it there afterwards. You hold the trigger; they hold the record. Treat it the way you would any other message to them.

AI agents and API keys

If you connect an AI assistant, we store the grant: which client, what it was allowed to do, and when it was last used. An agent sees only what its grant allows. API keys are stored as a hash alongside their name, scopes and the time they were last used — never the key itself.

When an agent rings an alarm, the alarm records the agent's name, so you can tell which assistant woke you.

How it travels

Everything is encrypted in transit: the console and the management API over HTTPS, and the live connection your devices hold over WSS. The trigger domain serves nothing over plain HTTP. A trigger URL is a credential in itself, which is why the apps refuse to ring one over http:// rather than put it on the wire in the clear.

What we do not collect

Who else sees it

Cloudflare runs the whole service: the application, the database, the real-time connections and outbound email. Data is processed on Cloudflare's global network, which means it may be handled outside your country. Cloudflare acts as our processor and does not use your data for its own purposes.

That is the entire list. There is no analytics provider, no error-reporting service, no advertising network, and no data broker.

If you install the Android app from Google Play, Google handles the distribution and whatever its own policies cover. We receive aggregate, anonymous install statistics from Play; we do not receive a list of who installed it.

How long we keep it

WhatHow long
Account, devices, chimes, triggersUntil you delete them, or close the account
Alarm history and receiptsUntil you close the account
Captured requestsThe last ten per trigger, or until you delete them
Last caller address, last refused senderOverwritten by the next one
Undelivered alarms waiting for a device to reconnect24 hours, then discarded

Getting your data out, or deleted

You can close your account yourself, from the console. It is immediate and it is final: your chimes, triggers and their URLs, devices, keys, agent grants and alarm history all go with it. Nothing is retained afterwards except what the law requires us to keep.

You can also delete individual triggers, devices, chimes, keys and captures at any time, and deleting a trigger is the only way to take back a URL you have shared — trigger URLs are permanent by design and never expire on their own.

Depending on where you live you may have rights to access, correct, export or delete your personal data, and to object to its processing. Write to us and we will help; most of it you can already do yourself in the console.

App permissions

The Android app asks for these, and each is used for exactly one thing:

PermissionWhat it is for
NotificationsShowing the alarm
Full-screen intentLetting a chime marked critical take over the lock screen instead of becoming a banner you sleep through
Foreground service, wake lockHolding the connection open so an alarm arrives in about a second rather than whenever the phone next wakes
Ignore battery optimisationsAsked for at runtime, and optional. Without it the phone suspends the connection and alarms arrive late or not at all
Do Not Disturb accessOnly so a chime you marked critical can ring through it. You grant this yourself
Start on bootReconnecting after a restart, so a rebooted phone does not stop receiving
Vibrate, network stateThe chime, and knowing when to reconnect

None of these is used to collect anything.

Children

Alarm Sender is not directed at children and we do not knowingly collect personal information from anyone under 13. If you believe a child has created an account, write to us and we will remove it.

Changes

If this policy changes in a way that affects what we collect or what we do with it, we will update the date at the top of this page and tell account holders by email before it takes effect.

Contact

Single Breath LLC — privacy@alarmsender.com