You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Obsidian/00.04 IT/ntfy.sh - email to message.md

71 lines
4.9 KiB

[[Article]], [[Selfhosting|Self hosting]]
# [ntfy.sh | Send push notifications to your phone or desktop via PUT/POST](https://ntfy.sh/)
**ntfy** (pronounce: _notify_) is a simple HTTP-based [pub-sub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, entirely **without signup, cost or setup**. It's also [open source](https://github.com/binwiederhier/ntfy) if you want to run your own.
[![](https://ntfy.sh/static/img/screenshot-curl.png)](https://ntfy.sh/static/img/screenshot-curl.png) [![](https://ntfy.sh/static/img/screenshot-web-detail.png)](https://ntfy.sh/static/img/screenshot-web-detail.png) [![](https://ntfy.sh/static/img/screenshot-phone-main.jpg)](https://ntfy.sh/static/img/screenshot-phone-main.jpg) [![](https://ntfy.sh/static/img/screenshot-phone-detail.jpg)](https://ntfy.sh/static/img/screenshot-phone-detail.jpg) [![](https://ntfy.sh/static/img/screenshot-phone-notification.jpg)](https://ntfy.sh/static/img/screenshot-phone-notification.jpg)
Publishing messages
-------------------
[Publishing messages](https://ntfy.sh/docs/publish/) can be done via PUT or POST. Topics are created on the fly by subscribing or publishing to them. Because there is no sign-up, **the topic is essentially a password**, so pick something that's not easily guessable.
Here's an example showing how to publish a message using a POST request (via curl -d):
`curl -d "Backup successful 😀" ntfy.sh/mytopic`
There are [more features](https://ntfy.sh/docs/publish/) related to publishing messages: You can set a [notification priority](https://ntfy.sh/docs/publish/#message-priority), a [title](https://ntfy.sh/docs/publish/#message-title), and [tag messages](https://ntfy.sh/docs/publish/#tags-emojis). Here's an example using some of them together:
`curl \   -H "Title: Unauthorized access detected" \   -H "Priority: urgent" \   -H "Tags: warning,skull" \   -d "Remote access to $(hostname) detected. Act right away." \   ntfy.sh/mytopic`
Here's what that looks like in the [Android app](https://ntfy.sh/docs/subscribe/phone/):
![](https://ntfy.sh/static/img/priority-notification.png)
Urgent notification with pop-over
Subscribe to a topic
--------------------
You can create and subscribe to a topic either [using your phone](https://ntfy.sh/docs/subscribe/phone/), in [this web UI](https://ntfy.sh/docs/subscribe/web/), or in your own app by [subscribing via the API](https://ntfy.sh/docs/subscribe/api/).
### Subscribe from your phone
Simply get the app and start [publishing messages](https://ntfy.sh/docs/publish/). To learn more about the app, [check out the documentation](https://ntfy.sh/docs/subscribe/phone/).
[![](https://ntfy.sh/static/img/badge-googleplay.png)](https://play.google.com/store/apps/details?id=io.heckel.ntfy) [![](https://ntfy.sh/static/img/badge-fdroid.png)](https://f-droid.org/en/packages/io.heckel.ntfy/) [![](https://ntfy.sh/static/img/badge-appstore.png)](https://github.com/binwiederhier/ntfy/issues/4)
Here's a video showing the app in action:
Sending push notifications to your Android phone
### Subscribe in this Web UI
Subscribe to topics here and receive messages as **desktop notification**. Topics are not password-protected, so choose a name that's not easy to guess.
### Subscribe using the API
There's a super simple API that you can use to integrate your own app. You can consume a [JSON stream](https://ntfy.sh/docs/subscribe/api/#subscribe-as-json-stream), an [SSE/EventSource stream](https://ntfy.sh/docs/subscribe/api/#subscribe-as-sse-stream) (useful for web apps), as well as a [plain text stream](https://ntfy.sh/docs/subscribe/api/#subscribe-as-raw-stream).
Here's an example for JSON. The **connection stays open**, so you can retrieve messages as they come in:
`$ curl -s ntfy.sh/mytopic/json {"id":"SLiKI64DOt","time":1635528757,"event":"open","topic":"mytopic"} {"id":"hwQ2YpKdmg","time":1635528741,"event":"message","topic":"mytopic","message":"Hi!"} {"id":"DGUDShMCsc","time":1635528787,"event":"keepalive","topic":"mytopic"} ...`
Here's a short video demonstrating it in action:
Subscribing to the JSON stream with curl
### Check out the docs!
ntfy has so many more features and you can learn about all of them [in the documentation](https://ntfy.sh/docs/) (I tried my very best to make it the best docs ever 😉, not sure if I succeeded, hehe).
[![](https://ntfy.sh/static/img/screenshot-docs.png)](https://ntfy.sh/docs/)
Check out the documentation
### 100% open source & forever free
I love free software, and I'm doing this because it's fun. I have no bad intentions, and I will never monetize or sell your information. This service will always stay [free and open](https://github.com/binwiederhier/ntfy). You can read more in the [FAQs](https://ntfy.sh/docs/faq/) and in the [privacy policy](https://ntfy.sh/docs/privacy/).
_Made with ❤️ by [Philipp C. Heckel](https://heckel.io/)_