**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.
[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:
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/).
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:
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).
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/)_