epushy

Send push notifications with epushy

epushy turns an HTTP request into a push notification and a chat message. Channels are created the first time you post to them.

Send with curl

curl -d "Your order has shipped" https://epushy.com/c/your-channel

Anyone who knows an unclaimed channel name can read and post to it, so choose a name that is hard to guess, or claim it.

Install the CLI

curl -fsSL https://epushy.com/install.sh | sh
epushy send your-channel "Backup finished" -t "Server 3"

The CLI is a single Python script with no dependencies. It can also tail a channel and store a channel's publish key (epushy key).

Title, sender and JSON

HeaderMeaning
TitleBold line above the message.
X-SenderDisplay name shown on the bubble, for example your business name. On claimed channels the owner's name is used.
ActionsUp to three buttons: Label|https://url, separated by semicolons.
AuthorizationBearer <publish key> for claimed channels.

Prefer JSON? Send Content-Type: application/json with {"message": "...", "title": "...", "sender": "...", "actions": [{"label": "Track", "url": "https://..."}]}.

Action buttons

curl https://epushy.com/c/your-channel \
  -H 'Title: Order #1042' -H 'X-Sender: Acme Store' \
  -H 'Actions: Track|https://acme.example/t/1042' \
  -d 'Out for delivery today'

Read messages and replies

curl https://epushy.com/c/your-channel/json?since=0
curl -N https://epushy.com/c/your-channel/sse

The JSON endpoint returns recent messages, including replies. The SSE endpoint streams new ones live and supports Last-Event-ID to resume.

Claim a channel and get a publish key

Log in at epushy.com/dashboard with your email. You receive a six-digit code. Claim a channel name, then publish with its key so nobody else can post.

curl https://epushy.com/c/your-channel -H 'Authorization: Bearer epk_...' -d 'Hello'

Or do it all from the terminal with the CLI. epushy create claims a channel, saves its key and prints the QR code for you to scan in the app:

epushy login you@example.com
epushy create backups --sender "Server 3"
epushy send backups "Backup finished"
epushy qr backups        # show the QR again later

Limits and spam rules

Messages are rate-limited per IP and screened for spam and phishing. Recipients can report a message or block a channel in the app, and several reports hide a message. See the privacy policy for what we store, and support if something looks wrong.