A push notification
from anything that can make an HTTP request

Install the free app, copy your key, send an HTTP request to notifi.it/send.

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

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

The app


One key per device.
Each iPhone, iPad or Mac gets its own key.
A push notification
from anything that can make an HTTP request.
No signup, just HTTP.
Install the app, copy your key, start sending.
run.sh — -zshclaude — ~/notifitrain.py — -zsh
$ curl notifi.it/send \
-d key=nk_live_8f3a \
-d title="Hello from notifi" \
-d message="Your first notification." \
-d link=https://notifi.it/docs \
-d image=https://notifi.it/anaglyph-bell.png
{"ok":true}
Claude Code v2.1.238
Fable 8
Build an app to send notifications over HTTP
 to my iOS device and my macOS device.
 Make no mistakes.
It already exists. Check your phone.
# tell me when the training run ends
import requests, tensorflow as tf
run = model.fit(train_ds, epochs=40)
loss = run.history["val_loss"][-1]
requests.post("https://notifi.it/send",
headers={"Authorization": f"Bearer {KEY}"},
json={"title": "Training finished",
"message": f"val loss {loss:.3f}"})
{"ok":true}
Tuesday 11 August
10:24
Hello from notifi
Your first notification.
Tuesday 11 August
10:24
Claude Finished
No mistakes made.
Tue 11 Aug 10:24
Training finished
val loss 0.041

On the device


A notification opened on iPhone: an image, then a heading, list, quote, table and code block rendered from Markdown.
A notification. Attach a main image, a link and a body in Markdown: headings, tables, images and code, rendered on the device.
The inbox hanging from the Mac menu bar: the bell sits in the bar and the popover beneath it lists the day’s notifications, the urgent one in red.
The inbox in the Mac menu bar. Notifications are stored only on your device, never on our servers.

API


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

JSON or form-encoded. Authenticate with Authorization: Bearer <key>, or pass key as a parameter. The full reference is at notifi.it/docs.

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.
link URL A link to a website or internal app. Up to 2,048 characters.
image URL Image displayed with the notification. URL up to 2,048 characters.
occurred_at integer Unix milliseconds. Changes the timestamp shown in the app; defaults to when we receive the request.
is_critical boolean Ask for an urgent notification: it breaks through Focus and stays on the lock screen. The key must also have Urgent alerts switched on in the app.
send.sh
curl -X POST https://notifi.it/send \
  -H "Authorization: Bearer $NOTIFI_KEY" \
  -d "title=Hello from notifi" \
  -d "message=Your first notification." \
  -d "link=https://notifi.it/docs" \
  -d "image=https://notifi.it/anaglyph-bell.png"

Uses


Agents

  • An agent stopped and needs a decision
  • An Nvidia GPU dropped below $500
  • Training loss went NaN

Builds and deploys

  • A deploy failed
  • App Review approved the build
  • A build has been queued for 20 minutes

Servers and jobs

  • A disk crossed 90%
  • A health check has been down five minutes
  • A nightly backup did not run

Home and hardware

  • A humidity sensor went over 70%
  • The UPS switched to battery
  • The car finished charging

How it works


No signup. The app makes a keypair on first launch. That is your identity.

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.

The server deletes a notification as soon as your device confirms it has collected it. Your history stays on your device.

Send is_critical=1 with a key marked urgent and it breaks through Focus.

One key per source. If one leaks, revoke it and the rest keep working.

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

App, API and crypto are on GitHub.

Why not just use ...


  • Quicker to set up than an SMTP relay
  • Your important notifications in one place, not your email inbox
  • Lighter than running Slack
  • No bot to register, unlike Telegram
  • Richer formatting than SMS allows
  • Encrypted, unlike Ntfy
  • Free, where Pushover charges

Download


Download for iOS Download for macOS

iOS 17 or later. macOS 14 or later, on Apple silicon or a T2 Mac.

Also on the Mac App Store, or with Homebrew:

Homebrew
$ brew install --cask notifi-it/tap/notifi