notifi

No account. Encrypted. Sends from anything that can send an HTTP request.

Get a push notification to your device
from anything that can make an HTTP request

Install the app, grab your key, and send an HTTP request to notifi.it/send. The notification shows up on your iPhone or Mac, encrypted with your public key, so neither we nor Apple can read it.

~/deploy.sh
$ curl https://notifi.it/send -d key=nk_yourkeyhere -d title="hello world"
{"ok":true}

Replace nk_yourkeyhere with the key from the app. More fields in the API docs.

The app


One inbox,
on every Apple device you own.

The notifi inbox: a black list of alerts grouped under Today and Yesterday, unread ones showing their age in red.
Inbox
The same inbox hanging from the Mac menu bar: the bell sits in the bar and the popover beneath it lists the day's alerts, the urgent one in red.
Mac menu bar

API


One endpoint.

GET or POST https://notifi.it/send

JSON or form-encoded. Authenticate with Authorization: Bearer <key>, or pass key as a parameter. The header keeps it out of logs. Query parameters win over the body.

ParameterTypeNotes
key required string The key from the app. It picks which device gets the push. Send it as a header, Authorization: Bearer nk_yourkey, which keeps it out of logs; or pass it as this parameter.
title required string The notification title. Up to 200 characters.
message string The notification body. Markdown, up to 16,000 characters. The push shows a short preview; the app renders the full text.
link URL URL opened when the notification is tapped. Up to 2,048 characters.
image URL Image displayed with the notification. Must be https. PNG, JPEG or GIF, 5 MB max, URL up to 2,048 characters.
occurred_at integer When the event actually happened, as unix milliseconds, useful when a send is queued or retried. Only changes the timestamp shown in the app; defaults to when we receive the request.
is_critical boolean Ask for a critical alert: it breaks through Focus and stays on the lock screen, but does not sound through silent mode. The key must also have Critical alerts switched on in the app; a send that asks without that arrives as an ordinary notification rather than failing, and the reply carries a warning saying so.

60 sends an hour, shared by every key on your device. Errors return JSON with a code and a readable message: 400 invalid parameters · 401 unknown or revoked key · 429 rate limited. GET works for a quick test; POST is recommended.

Send


The same one request,
from wherever you run.

Copy one and put your key in it. Anything that can make an HTTP request can send.

send.sh
curl -X POST https://notifi.it/send \
  -H "Authorization: Bearer $NOTIFI_KEY" \
  -d "title=Backup complete" \
  -d "message=4.2 GB in 3m 11s" \
  -d "link=https://console.internal/backups"

Uses


Anything that finishes,
fails, or changes.

Agents

  • A Claude Code run finished
  • An agent stopped and needs a decision
  • A watched price dropped below your number

Builds and deploys

  • A deploy failed, with the failing step
  • A release went out, with the tag
  • A flaky test failed again on main

Servers and jobs

  • A disk crossed 90%
  • A health check has been down five minutes
  • A training run finished, with the final loss

Home and hardware

  • A leak sensor under the sink went wet
  • The UPS switched to battery
  • The car finished charging overnight

How it works


Your phone holds the only key.

No account

No signup, no email, no password. The app generates a keypair on first launch and that keypair is your identity.

Neither we nor Apple can read your notifications

Notifications are encrypted with your public key before they are stored, so the server only ever holds encrypted text. Apple relays an alert that just says notifi, and your phone decrypts the real title when it arrives.

See more.

Nothing kept after delivery

The server deletes a notification as soon as your device confirms it has collected it. Your history lives on your device, not in our database.

Critical alerts

Send with is_critical=1 on a key you have marked critical, and the notification breaks through Focus and lands on the lock screen.

One key per script, revocable

CI gets a key, the backup job gets a key, the scraper gets a key. If one leaks, revoke it and the rest keep working.

Send from anywhere

Plain HTTP and no SDK, so anything that can make an HTTP request can send: a Linux box, a CI runner, a router, a home hub, another phone.

Open source

The app, the API and the crypto are on GitHub.

Download


Get notifi on iPhone and Mac.

On the Mac it lives in the menu bar. Each key delivers to one device, so a script pages your phone, your Mac, or both if you give it two keys.

Download on the App StoreiPhone and iPad · iOS 17+ Download the Mac app (.dmg)Apple silicon or T2 · macOS 14+

The Mac build updates itself. Homebrew works too: brew install --cask notifi-it/tap/notifi