<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ntfy.sh | simple HTTP-based pub-sub</title> <link rel="stylesheet" href="static/css/app.css" type="text/css"> <!-- Mobile view --> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="HandheldFriendly" content="true"> <!-- Mobile browsers, background color --> <meta name="theme-color" content="#004c79"> <meta name="msapplication-navbutton-color" content="#004c79"> <meta name="apple-mobile-web-app-status-bar-style" content="#004c79"> <!-- Favicon, see favicon.io --> <link rel="icon" type="image/png" href="static/img/favicon.png"> <!-- Previews in Google, Slack, WhatsApp, etc. --> <meta property="og:type" content="website" /> <meta property="og:locale" content="en_US" /> <meta property="og:site_name" content="ntfy.sh" /> <meta property="og:title" content="ntfy.sh | simple HTTP-based pub-sub" /> <meta property="og:description" content="ntfy is a simple HTTP-based pub-sub notification service. It allows you to send desktop notifications via scripts from any computer, entirely without signup or cost. Made with ❤ by Philipp C. Heckel, Apache License 2.0, source at https://heckel.io/ntfy." /> <meta property="og:image" content="/static/img/ntfy.png" /> <meta property="og:url" content="https://ntfy.sh" /> </head> <body> <div id="main"> <h1>ntfy.sh - simple HTTP-based pub-sub</h1> <p> <b>ntfy</b> (pronounce: <i>notify</i>) is a simple HTTP-based pub-sub notification service and tool. It allows you to send <b>desktop notifications via scripts from any computer</b>, entirely <b>without signup or cost</b>. It's also <a href="https://github.com/binwiederhier/ntfy">open source</a> if you want to run your own. </p> <p id="error"></p> <h2>Subscribe to a topic</h2> <p> Topics are created on the fly by subscribing to them. You can create and subscribe to a topic either in this web UI, or in your own app by subscribing to an <a href="https://developer.mozilla.org/en-US/docs/Web/API/EventSource">EventSource</a>, a JSON feed, or raw feed. </p> <p> Because there is no sign-up, <b>the topic is essentially a password</b>, so pick something that's not easily guessable. </p> <h3>Subscribe via web</h3> <p> If you subscribe to a topic via this web UI in the field below, messages published to any subscribed topic will show up as <b>desktop notification</b>. </p> <form id="subscribeForm"> <p> <label for="topicField">Topic ID:</label> <input type="text" id="topicField" placeholder="Letters, numbers, _ and -" pattern="[-_A-Za-z]{1,64}" autofocus /> <input type="submit" id="subscribeButton" value="Subscribe" /> </p> </form> <p id="topicsHeader">Subscribed topics:</p> <ul id="topicsList"></ul> <audio id="notifySound" src="static/sound/mixkit-long-pop-2358.wav"></audio> <h3>Subscribe via your app, or via the CLI</h3> <code> curl -s ntfy.sh/mytopic/raw # one message per line (\n are replaced with a space)<br/> curl -s ntfy.sh/mytopic/json # one JSON message per line<br/> curl -s ntfy.sh/mytopic/sse # server-sent events (SSE) stream </code> <h2>Publishing messages</h2> <p> Publishing messages can be done via PUT or POST using. Here's an example using <tt>curl</tt>: </p> <code> curl -d "long process is done" ntfy.sh/mytopic </code> <p> Messages published to a non-existing topic or a topic without subscribers will not be delivered later. There is (currently) no buffering of any kind. If you're not listening, the message won't be delivered. </p> </div> <script src="static/js/app.js"></script> </body> </html>