For people and for code
A push notification from anything.
A tap on a link, a forwarded email, a script that finishes, or one that goes quiet: it lands on your phone.
- Your parcel is on its way Arriving today between 14:00 and 16:00. ↗
- Mum Home safe. Speak tomorrow! ↗
- Disk full on db1 /var/lib/postgres at 97%. Writes fail at 100%. ↗ grafana.example.com
- Nightly backup done restic: 2.4 GiB added, 18 snapshots kept ↗
No app needed to ring
Print a doorbell.
Every hook comes with a sign and a QR code. Put it on the front door, the shop counter or the shed. Whoever scans it gets one big button, and you get their name and note on your phone.
- Any phone with a camera can ring it.
- The person ringing needs no app and no account.
- Ticked urgent, it stands out in red in your inbox.
Front door
Scan with your phone's camera, then press the button to send a notification.
anypush.app
anypush
Quiet alerts
Hear about the day nothing happens.
Some news is a message that never comes. Tell a hook how often to expect one. If the morning tap doesn't come, or the backup job goes quiet, you get one urgent alert. The next message clears it.
Mum's check-inA tap on her link every morning
Mum's check-in Nothing has arrived for 24 hours.
Nightly backupA message after every run
Nightly backup Nothing has arrived for 24 hours.
Forward the emails that matter.
Each hook has its own email address. Set up a filter once in Gmail or Outlook, and the school, the dentist or the delivery service becomes a notification instead of one more unread email.
Gmail sends a confirmation code first. It arrives as a notification too.
From Smile Dental
Reminder: your appointment tomorrow at 10:30
Please arrive 10 minutes early. Reply to this email to change the time.
For developers
One URL. Any language.
- Send
- POST text, or JSON with
title,message,priorityandurl. Or use the headersX-Title,X-PriorityandX-Url. - Retry
- An
Idempotency-Keymakes a retry within 24 hours count once. - Limits
- Up to 64 KiB a message, 60 a minute per hook. The answer is
202with the message id. - Silence
- A quiet alert per hook, checking from every hour on Free and every 5 minutes on Plus, up to 31 days: a dead man's switch for any job.
- Desktop
anypush listenshows the same notifications on your computer;anypush sendsends from the shell.
export ANYPUSH_URL=https://api.anypush.app/h/your-token
curl -H 'X-Title: Deploy finished' \
-H 'X-Priority: high' \
-H 'X-Url: https://ci.example.com/run/42' \
-d 'web@4f2a91c is live' \
"$ANYPUSH_URL" HTTP/2 202 {"duplicate":false,"id":1042}
# crontab: a message after every good run. With a quiet alert
# of 1 day on the hook, the run that never happens reaches you too.
ANYPUSH_URL=https://api.anypush.app/h/your-token
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 -H 'X-Priority: low' -d 'backup ok' "$ANYPUSH_URL" - name: Notify on failure
if: failure()
run: |
curl -sS -H "X-Priority: high" \
-H "X-Url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
-d "${{ github.workflow }} failed on ${{ github.ref_name }}" \
${{ secrets.ANYPUSH_URL }} import json, os, urllib.request
def notify(message, title="", priority="normal"):
req = urllib.request.Request(
os.environ["ANYPUSH_URL"],
data=json.dumps({"message": message, "title": title,
"priority": priority}).encode(),
headers={"Content-Type": "application/json"},
)
urllib.request.urlopen(req, timeout=10)
notify("Training finished: loss 0.031", title="gpu-box") # configuration.yaml
rest_command:
anypush:
url: !secret anypush_url
method: POST
content_type: application/json
payload: '{"title": "{{ title }}", "message": "{{ message }}"}' The app fills in your own URL in recipes for cron, GitHub Actions, Home Assistant, Python, PowerShell, iPhone Shortcuts, Zapier, IFTTT and Make.
Free and Plus
Free to start. Plus when you need more.
Free has no ads. Plus raises the limits: more hooks, quiet alerts that check more often, and a longer history.
- Plus is a prepaid pass for 1 month or 12 months.
- It never renews by itself.
- It is sold in the app, through Google Play.
On both plans
- Push notifications
- Ping pages and printable signs
- Email-to-push
- Urgent alerts
- Unlimited devices
| Free | Plus | |
|---|---|---|
| Hooks | 3 | 100 |
| Quiet alerts | 3 that check at most every hour | 100 that can check as often as every 5 minutes |
| Message history | 7 days | 30 days |
| Price | €0 |
|
When a pass ends, everything you set up keeps running. History goes back to 7 days, and nothing new can be set up beyond the Free limits.
Your messages are yours
- €0 to startFree plan, no ads. Plus is a prepaid pass.
- 7 daysThen every message deletes itself. On Plus, after 30 days.
- 0Trackers on this site. The app asks before it sends even a crash report.
The privacy notice says exactly what is stored, for how long, and who handles it.
Get it the day it launches.
anypush is coming to Google Play. Send us a line, and we'll tell you when it's live.
Notify me at launch Opens an email to hello@anypush.app