<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>API / Integration: Published Ordered Knowledge Base: : | Pushover Support</title>
    <description>Published Ordered Knowledge Base: API / Integration</description>
    <generator>Helprace RSS</generator>
    <link>https://support.pushover.net/s1-pushover/knowledgebase/c2-api-integration?format=rss</link>
    <item>
      <title>How to get a Pushover API or Pushover Application Token</title>
      <description><![CDATA[<p>Each application, service, or utility that sends notifications through Pushover's API needs to have its own API token which uniquely identifies all of the API requests that it makes.  A single API token can be used to send to multiple Pushover User Keys.</p> <p>API tokens are free and can be registered through our website.</p> <p>Please note that while API tokens can be used to send to multiple users, any API tokens you register should be protected and not disclosed to any other users or given to any 3rd party services.</p>]]></description>
      <pubDate>Wed, 14 Jun 2023 03:25:11 +0000</pubDate>
      <link>https://support.pushover.net/i175-how-to-get-a-pushover-api-or-pushover-application-token</link>
      <guid>https://support.pushover.net/i175-how-to-get-a-pushover-api-or-pushover-application-token</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Each application, service, or utility that sends notifications through <a href="https://pushover.net/api">Pushover's API</a> needs to have its own <b>API token</b> which uniquely identifies all of the API requests that it makes.  A single API token can be used to <a href="https://support.pushover.net/i169-how-do-i-send-messages-to-other-users-with-pushover">send to multiple Pushover User Keys</a>.</p>
<p>API tokens are free and can be registered <a href="https://pushover.net/apps/build">through our website</a>.</p>
<p>Please note that while API tokens can be used to send to multiple users, any API tokens you register should be protected and not disclosed to any other users or given to any 3rd party services.</p>]]></content:encoded>
    </item>
    <item>
      <title>Example code and Pushover libraries</title>
      <description><![CDATA[<p>Pushover's API is designed to be easy to use without the overhead of complicated authentication mechanisms like OAuth.  For full details on our API endpoints, see our API Documentation.</p>
<p>To quickly get started sending Pushover messages with a wide variety of programming languages, we have some sample code as well as a number of 3rd party libraries written and maintained by Pushover users.</p>
<p>In all of these examples, replace USER_KEY with your Pushover User Key (which can be found on your dashboard) or that of the user/group to which you are sending, and API_TOKEN with your application's API Token.  If[_cuted_]</p>]]></description>
      <pubDate>Fri, 15 Aug 2025 13:30:51 +0000</pubDate>
      <link>https://support.pushover.net/i44-example-code-and-pushover-libraries</link>
      <guid>https://support.pushover.net/i44-example-code-and-pushover-libraries</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Pushover's API is designed to be easy to use without the overhead of complicated authentication mechanisms like OAuth.  For full details on our API endpoints, see our <a href="https://pushover.net/api">API Documentation</a>.</p>
<p>To quickly get started sending Pushover messages with a wide variety of programming languages, we have some sample code as well as a number of 3rd party libraries written and maintained by Pushover users.</p>
<p>In all of these examples, replace <b><i>USER_KEY</i></b> with your Pushover User Key (which can be found on <a href="https://pushover.net/dashboard">your dashboard</a>) or that of the user/group to which you are sending, and <i><b>API_TOKEN</b></i> with your application's API Token.  If you don't already have an application API Token, you can <a href="https://pushover.net/api#registration">create one for free</a>.</p>
<p><b>Note</b>: if your language of choice is not listed here, try <a href="https://github.com/topics/pushover" rel="nofollow">browsing all GitHub libraries tagged "pushover"</a>.</p>
<div class="mce-toc">
<div style="display: none;"> </div>
<ul>
<li><a href="#c" rel="nofollow">C</a></li>
<li><a href="#csharp" rel="nofollow">C#/.NET</a></li>
<li><a href="#mcetoc_1fc60cd720" rel="nofollow">C++ / ESP32</a></li>
<li><a href="#go" rel="nofollow">Go</a></li>
<li><a href="#haskell" rel="nofollow">Haskell</a></li>
<li><a href="#java" rel="nofollow">Java</a></li>
<li><a href="#lua" rel="nofollow">Lua</a></li>
<li><a href="#node" rel="nofollow">Node</a></li>
<li><a href="#perl" rel="nofollow">Perl</a></li>
<li><a href="#php" rel="nofollow">PHP</a></li>
<li><a href="#php-image" rel="nofollow">PHP with Image Attachment</a></li>
<li><a href="#python" rel="nofollow">Python</a></li>
<li><a href="#python-image" rel="nofollow">Python with Image Attachment</a></li>
<li><a href="#r" rel="nofollow">R</a></li>
<li><a href="#ruby" rel="nofollow">Ruby</a></li>
<li><a href="#rust" rel="nofollow">Rust</a></li>
<li><a href="#rust" rel="nofollow">Swift</a></li>
<li><a href="#vba" rel="nofollow">Visual Basic for Applications (VBA)</a></li>
<li><a href="#unix" rel="nofollow">Unix command line</a></li>
<li><a href="#unix-image" rel="nofollow">Unix command line with Image Attachment</a></li>
<li><a href="#windows" rel="nofollow">Windows command line</a></li>
</ul>
</div>
<h3 id="c">C</h3>
<p>The 3rd party <code><a href="https://github.com/cbjartli/cpushover" rel="nofollow">cpushover</a></code> library written by Christian Bjartli is available. This library uses libcurl.</p>
<h3 id="csharp">C#/.NET</h3>
<p>Using the built-in HttpClient class:</p>
<pre>var parameters = new Dictionary&lt;string, string&gt; {<br>    ["token"] = "<i>APP_TOKEN</i>",<br>    ["user"] = "<i>USER_KEY</i>",<br>    ["message"] = "hello world"<br>};<br>using var client = new HttpClient();<br>var response = await client.PostAsync("https://api.pushover.net/1/messages.json", new<br>FormUrlEncodedContent(parameters));
</pre>
<p>Alternatively, the 3rd party <code><a href="https://github.com/msawyer91/Pushover.NET" rel="nofollow">Pushover.NET</a></code> package written by Matthew Sawyer, and the <a href="https://github.com/ridercz/Pushover-API" rel="nofollow"><code>Pushover-API</code></a> package written by Michal Altair Valášek are available.</p>
<h3 id="mcetoc_1fc60cd720">C++ / ESP32</h3>
<p>The 3rd party <a href="https://github.com/brunojoyal/PushoverESP32" rel="nofollow"><code>PushoverESP32</code></a> library written by Bruno Joyal is available.</p>
<h3 id="go">Go</h3>
<p>The 3rd party <code><a href="https://bitbucket.org/kisom/gopush" rel="nofollow">gopush</a></code> package written by Kyle Isom is available, as well as the <code><a href="https://github.com/gregdel/pushover" rel="nofollow">pushover</a></code> package written by Grégoire Delattre.</p>
<h3 id="haskell">Haskell</h3>
<p>The 3rd party <code><a href="https://github.com/WJWH/hPushover" rel="nofollow">hPushover</a></code> package written by Wander Hillen is available.</p>
<h3 id="java">Java</h3>
<p>The 3rd party <code><a href="https://github.com/sps/pushover4j/" rel="nofollow">pushover4j</a></code> package written by Sean Scanlon is available.</p>
<p>The 3rd party <a href="https://github.com/sdelamo/pushover" rel="nofollow">Pushover API Micronaut Java library</a> written by Sergio del Amo is also available.</p>
<h3 id="lua">Lua</h3>
<p>The 3rd party <code><a href="https://github.com/sweetfish/pushover-lua" rel="nofollow">pushover-lua</a></code> package written by Sven Andersson is available.</p>
<h3 id="node">Node</h3>
<p>The 3rd party <code><a href="https://github.com/SamDecrock/node-pushover" rel="nofollow">node-pushover</a></code> package written by Sam Decrock, the <code><a href="https://codeberg.org/qbit/node-pushover" rel="nofollow">pushover-notifications</a></code> package written by Aaron Bieber, and the <code><a href="http://github.com/sqmk/chump" rel="nofollow">chump</a></code> package written by Michael Squires are all available via npm.</p>
<h3 id="perl">Perl</h3>
<p>Using the CPAN module <code>LWP::UserAgent</code> may also require the <code>Mozilla::CA</code> module installed for proper TLS validation:</p>
<pre>use LWP::UserAgent;

LWP::UserAgent-&gt;new()-&gt;post(
  "https://api.pushover.net/1/messages.json", [
  "token" =&gt; "<em>APP_TOKEN</em>",
  "user" =&gt; "<em>USER_KEY</em>",
  "message" =&gt; "hello world",
]);
</pre>
<p>Alternatively, the 3rd party <code><a href="https://github.com/hakamadare/webservice-pushover" rel="nofollow">WebService::Pushover</a></code> Perl module written by Steve Huff is available in CPAN.</p>
<h3 id="php">PHP</h3>
<p>Using the built-in cURL module:</p>
<pre>&lt;?php
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL =&gt; "https://api.pushover.net/1/messages.json",
  CURLOPT_POSTFIELDS =&gt; array(
    "token" =&gt; "<em>APP_TOKEN</em>",
    "user" =&gt; "<em>USER_KEY</em>",
    "message" =&gt; "hello world",
  ),
  CURLOPT_SAFE_UPLOAD =&gt; true,
  CURLOPT_RETURNTRANSFER =&gt; true,
));
curl_exec($ch);
curl_close($ch);
?&gt;
</pre>
<p>Alternatively, there are a number of 3rd party PHP libraries available:</p>
<ul>
<li><code><a href="https://github.com/kryap/php-pushover" rel="nofollow">php-pushover</a></code> PHP class written by Chris Schalenborgh</li>
<li><code><a href="https://github.com/sqmk/Pushy" rel="nofollow">Pushy</a></code> PHP package written by Michael Squires</li>
<li><code><a href="https://github.com/LeonardoTeixeira/Pushover" rel="nofollow">Pushover for PHP</a></code> package written by Leonardo C. Teixeira</li>
<li><code><a href="https://github.com/dyaa/Laravel-pushover" rel="nofollow">Laravel-pushover</a></code> package for the Laravel framework written by Dyaa Eldin Moustafa</li>
<li><code><a href="https://github.com/edwardkarlsson/laravel-pushover" rel="nofollow">laravel-pushover</a></code> package for the Laravel framework written by Edward Karlsson</li>
<li><a href="https://github.com/tattersoftware/codeigniter4-pushover" rel="nofollow"><code>codeigniter4-pushover</code></a> package for the CodeIgniter 4 framework written by Tatter Software</li>
<li><a href="https://github.com/slunak/pushover-php" rel="nofollow"><code>pushover-php</code></a> package written by Serhiy Lunak</li>
</ul>
<h3 id="php-image">PHP with Image Attachment</h3>
<p>Please see our <a href="https://pushover.net/api#attachments">API documentation</a> for information about attachments such as file size limits.</p>
<p>The cURL module can be used, though the <a href="http://php.net/curl_file_create" rel="nofollow">curl_file_create</a> function requires at least PHP 5.5.</p>
<pre>&lt;?php
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL =&gt; "https://api.pushover.net/1/messages.json",
  CURLOPT_POSTFIELDS =&gt; array(
    "token" =&gt; "<em>APP_TOKEN</em>",
    "user" =&gt; "<em>USER_KEY</em>",
    "message" =&gt; "hello world",
    "attachment" =&gt; curl_file_create("image.jpg", "image/jpeg"),
  ),
  CURLOPT_SAFE_UPLOAD =&gt; true,
  CURLOPT_RETURNTRANSFER =&gt; true,
));
curl_exec($ch);
curl_close($ch);
?&gt;
</pre>
<h3 id="python">Python</h3>
<p>The standard <code>httplib</code> and <code>urllib</code> libraries can be used:</p>
<pre>import httplib, urllib
conn = httplib.HTTPSConnection("api.pushover.net:443")
conn.request("POST", "/1/messages.json",
  urllib.urlencode({
    "token": "<em>APP_TOKEN</em>",
    "user": "<em>USER_KEY</em>",
    "message": "hello world",
  }), { "Content-type": "application/x-www-form-urlencoded" })
conn.getresponse()
</pre>
<p> For Python 3, <code>httplib</code> has been replaced with <code>http.client</code> and <code>urlencode</code> has moved to <code>urllib.parse</code>.</p>
<pre>import http.client, urllib
conn = http.client.HTTPSConnection("api.pushover.net:443")
conn.request("POST", "/1/messages.json",
  urllib.parse.urlencode({
    "token": "<em>APP_TOKEN</em>",
    "user": "<em>USER_KEY</em>",
    "message": "hello world",
  }), { "Content-type": "application/x-www-form-urlencoded" })
conn.getresponse()
</pre>
<p> Alternatively, a number of 3rd party packages are available:  <code><a href="http://pypi.python.org/pypi/pushnotify" rel="nofollow">pushnotify</a></code> package written by Jeffrey Goettsch, <code><a href="https://github.com/Wyattjoh/pushover" rel="nofollow">pushover</a></code> Python 3 package written by Wyatt Johnson, <code><a href="http://chump.readthedocs.org/en/latest/" rel="nofollow">Chump</a></code> Python package written by Karan Lyons, and <code><a href="https://github.com/Thibauth/python-pushover" rel="nofollow">python-pushover</a></code> Python package written by Thibaut Horel.</p>
<h3 id="python-image">Python with Image Attachment</h3>
<p>To send an <a href="https://pushover.net/api#attachments">image attachment</a>, the 3rd party <a href="http://docs.python-requests.org/en/master/" rel="nofollow">Requests</a> library can be used. For example, to send the file "<code>your_image.jpg</code>":</p>
<pre>import requests
r = requests.post("https://api.pushover.net/1/messages.json", data = {
  "token": "<em>APP_TOKEN</em>",
  "user": "<em>USER_KEY</em>",
  "message": "hello world"
},
files = {
  "attachment": ("image.jpg", open("<em>your_image.jpg</em>", "rb"), "image/jpeg")
})
print(r.text)
</pre>
<h3 id="r">R</h3>
<p>The 3rd party <code><a href="https://github.com/briandconnelly/pushoverr" rel="nofollow">pushoverr</a></code> R module written by Brian Connelly is available.</p>
<h3 id="ruby">Ruby</h3>
<p>The standard <code>Net::HTTPS</code> library can be used:</p>
<pre>require "net/https"

url = URI.parse("https://api.pushover.net/1/messages.json")
req = Net::HTTP::Post.new(url.path)
req.set_form_data({
  :token =&gt; "<em>APP_TOKEN</em>",
  :user =&gt; "<em>USER_KEY</em>",
  :message =&gt; "hello world",
})
res = Net::HTTP.new(url.host, url.port)
res.use_ssl = true
res.verify_mode = OpenSSL::SSL::VERIFY_PEER
res.start {|http| http.request(req) }
</pre>
<p>Alternatively, the 3rd party <code><a href="https://rubygems.org/gems/rushover" rel="nofollow">rushover</a></code> Ruby module written by Brendon Murphy is available through Ruby Gems.</p>
<h3 id="rust">Rust</h3>
<p>The 3rd party <code><a href="https://github.com/unjordy/po" rel="nofollow">po</a></code> Rust library written by Jordan Mulcahey is available.</p>
<h3 id="rust">Swift</h3>
<p>The 3rd party <code><a href="https://github.com/kiliankoe/pushover" rel="nofollow">pushover</a></code> Swift library written by Kilian Koeltzsch is available.</p>
<h3 id="vba">Visual Basic for Applications (VBA)</h3>
<p>The 3rd party <code><a href="https://github.com/makah/pushover-vba" rel="nofollow">pushover-vba</a></code> module written by Mauricio Arieira is available.</p>
<h3 id="unix">Unix command line</h3>
<p>The <code><a href="https://curl.haxx.se/" rel="nofollow">curl</a></code> program may be used from the command line or integrated into shell scripts:</p>
<pre>curl -s \
  --form-string "token=<em>APP_TOKEN</em>" \
  --form-string "user=<em>USER_KEY</em>" \
  --form-string "message=hello world" \
  https://api.pushover.net/1/messages.json
</pre>
<h3 id="unix-image">Unix command line with Image Attachment</h3>
<p>Please see our <a href="https://pushover.net/api#attachments">API documentation</a> for information about attachments such as file size limits.</p>
<p><code><a href="https://curl.haxx.se/" rel="nofollow">curl</a></code> can easily upload files as parameters by specifying a parameter such as "<code>attachment=@filename.jpg</code>" as the value, which will read <code>filename.jpg</code> on your computer and send it as the <code>attachment</code> parameter, complete with the necessary meta-data such as its <code>Content-Type</code> and <code>name</code>.</p>
<p>Note: because curl does file uploading automatically with the <code>-F</code> option, we strongly recommend using <code>--form-string</code> for all other parameters to avoid being tricked into sending a file from your computer as parameter data if you are passing message data from external sources.</p>
<pre>curl -s \
  --form-string "token=<em>APP_TOKEN</em>" \
  --form-string "user=<em>USER_KEY</em>" \
  --form-string "message=here is an image attachment" \
  -F "attachment=@image.jpg" \
  https://api.pushover.net/1/messages.json
</pre>
<h3 id="windows">Windows command line</h3>
<p>The <code>curl</code> program may be used (<a href="http://curl.haxx.se/download.html" rel="nofollow">Download a Win32 build</a> with TLS support):</p>
<pre>curl -s \
  --cacert curl-ca-bundle.crt \
  --form-string "token=<em>APP_TOKEN</em>" \
  --form-string "user=<em>USER_KEY</em>" \
  --form-string "message=hello world" \
  https://api.pushover.net/1/messages.json
</pre>
<p> Alternatively, <a href="https://docs.microsoft.com/en-us/powershell/" rel="nofollow">PowerShell</a> can be used. For PowerShell v3, using the new Invoke-RestMethod cmdlet, courtesy of Hal Rottenberg:</p>
<pre>$uri = "https://api.pushover.net/1/messages.json"
$parameters = @{
  token = "APP_TOKEN"
  user = "USER_KEY"
  message = "hello world"
}
$parameters | Invoke-RestMethod -Uri $uri -Method Post
</pre>
<p> Or for older versions:</p>
<pre>$parameters = New-Object System.Collections.Specialized.NameValueCollection
$parameters.Add("token", "APP_TOKEN")
$parameters.Add("user", "USER_KEY")
$parameters.Add("message", "hello world")
$client = New-Object System.Net.WebClient
$client.UploadValues("https://api.pushover.net/1/messages.json", $parameters)
</pre>
<p> The 3rd party PowerShell modules <a href="https://www.powershellgallery.com/packages/PowerShellPushOver/2.0" rel="nofollow">PowerShellPushOver</a> written by Kieran Jacobsen, and <a href="https://www.powershellgallery.com/packages/PushoverForPS" rel="nofollow">PushoverForPS</a> written by Chris Carter are also available.</p>]]></content:encoded>
    </item>
    <item>
      <title>Sending messages to another Pushover user</title>
      <description><![CDATA[<p>Pushover messages are delivered to your devices by supplying your Pushover User Key to any Apps and Services that support Pushover.  To send messages to an additional user's devices at the same time, you can create a Delivery Group and add each user to the group, and then supply that new Group Key to those Apps and Services instead of your own User Key.</p>
<p>Note: for companies and organizations that require centralized management of multiple accounts, please see our Pushover for Teams service which greatly simplifies sending messages to multiple users.</p>
<p>Creating a Delivery Group</p>
<p>To create a Delivery Group, login to[_cuted_]</p>]]></description>
      <pubDate>Wed, 14 Jun 2023 03:25:40 +0000</pubDate>
      <link>https://support.pushover.net/i53-sending-messages-to-another-pushover-user</link>
      <guid>https://support.pushover.net/i53-sending-messages-to-another-pushover-user</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Pushover messages are delivered to your devices by supplying your <a href="https://support.pushover.net/i7-what-is-pushover-and-how-do-i-use-it">Pushover User Key</a> to any <a href="https://pushover.net/apps">Apps and Services</a> that support Pushover.  To send messages to an additional user's devices at the same time, you can create a Delivery Group and add each user to the group, and then supply that new Group Key to those Apps and Services instead of your own User Key.</p>
<p><b>Note</b>: for companies and organizations that require centralized management of multiple accounts, please see our <a href="https://pushover.net/teams">Pushover for Teams</a> service which greatly simplifies sending messages to multiple users.</p>
<h4>Creating a Delivery Group</h4>
<p>To create a Delivery Group, login to your Dashboard and click <a href="https://pushover.net/groups/build">Create a Group</a> and then list each user's Pushover User Key:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://s3.amazonaws.com/chd-data/files/7405/3030453496_5a1b2ecc3286e14d4f6368d0fdc90e30_3364/group2.png" alt="" width="800" border="1" data-file="___chdfid_3364___"></p>
<p>Each user can find their Pushover User Key by logging into their Dashboard:</p>
<p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto;" src="https://s3.amazonaws.com/chd-data/files/7405/964359592_095d9f2a9543d9943969895f95432e3e_3365/userkey.png" alt="" border="1" data-file="___chdfid_3365___">
<br>
<i>Note: this is just an example User Key and is not your actual key</i></p>
<p>Note that it is not possible to send to users just based on their e-mail address for security and privacy concerns.  You'll need to collect their actual Pushover User Key.</p>
<p>Once you have created your Delivery Group, you'll be given a new Group Key.  This Group Key can be used in place of your individual Pushover User Key in any software that supports sending through Pushover.  Any messages sent to the Group Key will be broadcast to all members in the Group.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://s3.amazonaws.com/chd-data/files/7405/2276107319_906390053904a18560531d04a8563fcd_3366/group3.png" alt="" width="800" border="1" data-file="___chdfid_3366___"></p>
<h4>Adding Many Users to a Group</h4>
<p>If you plan on sending Pushover messages to a large group of users where collecting User Keys from them would be tedious, check out our <a href="https://pushover.net/api/subscriptions#web">Web-Based Subscriptions</a>.  This mechanism gives you a URL you can direct users to which allows them to subscribe and later unsubscribe from your Delivery Group on their own, without you having to manage your Delivery Group.</p>
<h4>Licensing</h4>
<p>When multiple Pushover users share the same iTunes or Google Play billing account, only one user has to make an in-app purchase.  The purchase can be <a href="https://support.pushover.app/i32-i-purchased-the-app-but-my-device-still-shows-i-am-in-a-trial-period-or-my-device-was-disabled-for-licensing" rel="nofollow">validated</a> on multiple Pushover accounts at the same time.</p>]]></content:encoded>
    </item>
    <item>
      <title>Creating Group-Based Subscriptions</title>
      <description><![CDATA[<p>Pushover Subscriptions are a great way to add other Pushover users to a Delivery Group to be able to broadcast messages to them, all without having to manually collect Pushover User Keys.  Subscribed users can also unsubscribe from your notifications at any time in the future without any effort required on your part.</p>
<p>By creating a Group-based Subscription, users can visit a URL that we create for your application and choose to subscribe to notifications from your application.  Once subscribed, the user will be added to a Delivery Group with a single-use User Key that is deleted as soon as[_cuted_]</p>]]></description>
      <pubDate>Fri, 12 Mar 2021 19:16:02 +0000</pubDate>
      <link>https://support.pushover.net/i152-creating-group-based-subscriptions</link>
      <guid>https://support.pushover.net/i152-creating-group-based-subscriptions</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Pushover Subscriptions are a great way to add other Pushover users to a Delivery Group to be able to broadcast messages to them, all without having to manually collect Pushover User Keys.  Subscribed users can also unsubscribe from your notifications at any time in the future without any effort required on your part.</p>
<p>By creating a Group-based Subscription, users can visit a URL that we create for your application and choose to subscribe to notifications from your application.  Once subscribed, the user will be added to a Delivery Group with a single-use User Key that is deleted as soon as the user unsubscribes from your application.  The user's actual User Key remains private, and no information about the user is shared with you.</p>
<p>If you need more control over the subscription process, such as tying a subscribed user to an account on your server, or to be able to send custom notifications to each user, you will need to instead create a Web-based Subscription.</p>
<h4>Creating a Subscription</h4>
<p>To get started, find or create an application on your <a href="https://pushover.net/dashboard">Dashboard</a> under <b>Your Applications</b>.  Under the API Token/Key section at the top, click on <b>Edit Subscription Settings</b>.</p>
<p style="text-align: center;"><img src="//s3.amazonaws.com/chd-data/data/pushover/items/152/media/Screenshot_2021-03-12%20Pushover%20View%20Application%20Softball%20League.png" alt="" width="500" data-file="___chdfid_1605___"></p>
<p style="text-align: left;">Next, add a description, author, and optional informational URL.  These will be shown to Pushover users when subscribing to your application.  For the <b>Subscription Type</b>, choose <b>Group</b>, and choose an existing Delivery Group from the list or <b>Create a New Group</b>.  The group name is not shown to users.</p>
<p style="text-align: center;"><img src="//s3.amazonaws.com/chd-data/data/pushover/items/152/media/Screenshot_2021-03-12%20Pushover%20Simple%20Notifications%20for%20Android%2C%20iPhone%2C%20iPad%2C%20and%20Desktop.png" alt="" width="500" data-file="___chdfid_1606___"></p>
<p style="text-align: left;">Click <b>Create Subscription Code</b> and you'll be returned to your application's information page.  At the top, you will now see a URL for your subscription:</p>
<p style="text-align: center;"><img src="//s3.amazonaws.com/chd-data/data/pushover/items/152/media/Screenshot_2021-03-12%20Pushover%20View%20Application%20Softball%20League%281%29.png" alt="" width="500" data-file="___chdfid_1607___"></p>
<p style="text-align: left;">This URL can be given out to your users by e-mail, chat, added to a web page, or any other mechanism appropriate for your users.  When anyone visits that URL, they will be prompted to subscribe to your group and the user can optionally choose a specific device to receive your notifications and a sound.  Any custom sounds added to your application be available for users to choose from, in addition to any custom sounds the user has uploaded.</p>
<p style="text-align: center;"><img src="//s3.amazonaws.com/chd-data/data/pushover/items/152/media/Screenshot_2021-03-12%20Pushover%20Subscribe%20to%20Softball%20League.png" alt="" width="500" data-file="___chdfid_1608___"></p>
<p style="text-align: left;">Once a user is subscribed, they will be automatically added to the Delivery Group you chose earlier with a one-time, private user key.</p>
<h4 style="text-align: left;">Sending Messages</h4>
<p>To send a message to all subscribed users in your group, just use the Group Key assigned to the group in place of a User Key in any software that supports Pushover.  You can find this Group Key on the Delivery Group's page from your <a href="https://pushover.net/dashboard">Dashboard</a> under <b>Your Delivery Groups</b>.</p>
<p style="text-align: center;"><img src="//s3.amazonaws.com/chd-data/data/pushover/items/152/media/Screenshot_2021-03-12%20Pushover%20Edit%20Delivery%20Group.png" alt="" width="500" data-file="___chdfid_1611___"></p>
<p>You can also send a message from your dashboard by choosing your application as the <b>Send As</b> option, and your Delivery Group as the <b>To Device/Group</b>:</p>
<p style="text-align: center;"><img src="//s3.amazonaws.com/chd-data/data/pushover/items/152/media/Screenshot_2021-03-12%20Pushover%20Home.png" alt="" width="500" data-file="___chdfid_1610___"></p>]]></content:encoded>
    </item>
    <item>
      <title>Message size and frequency limitations</title>
      <description><![CDATA[<p>Each application registered to send Pushover notifications may send 10,000 messages per month for free, where one message is defined as successfully sending a message through our API to one user, regardless of the number of devices on their account. For Delivery Groups, each user in the group receiving that message counts as one message towards the application's quota.</p>
<p>One application assigned to a Team can send up to 25,000 messages per month for free. All other applications can send the usual 10,000 amount for free.</p>
<p>To send more than the free amount of messages per month, upgrade packages are[_cuted_]</p>]]></description>
      <pubDate>Thu, 12 Dec 2024 14:43:22 +0000</pubDate>
      <link>https://support.pushover.net/i12-message-size-and-frequency-limitations</link>
      <guid>https://support.pushover.net/i12-message-size-and-frequency-limitations</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Each <a href="https://pushover.net/apps">application</a> registered to send Pushover notifications may send 10,000 messages per month for free, where one message is defined as successfully sending a message through our API to one user, regardless of the number of devices on their account. For Delivery Groups, each user in the group receiving that message counts as one message towards the application's quota.</p>
<p>One application assigned to a <a href="https://pushover.net/teams">Team</a> can send up to 25,000 messages per month for free. All other applications can send the usual 10,000 amount for free.</p>
<p>To send more than the free amount of messages per month, <a href="https://support.pushover.net/i13-purchasing-additional-capacity-to-send-more-messages-per-month">upgrade packages</a> are available.</p>
<p>For per-message size limitations, please see the <a href="https://pushover.net/api#limits">limitations section</a> of our API documentation.</p>]]></content:encoded>
    </item>
    <item>
      <title>Purchasing additional capacity to send more messages per month</title>
      <description><![CDATA[<p>On the first of each month at midnight Central Time, all application usage limits reset back to the free allowance of 10,000 messages. Once an application has sent 10,000 messages in a month, it will receive an error from our API and will no longer be able to send messages until the first of the next month when the allowance resets.</p>
<p>For high-volume applications that need to send more than 10,000 messages per month, additional capacity can be purchased from our website (10,000 for $50.00 USD, 25,000 for $115.00 USD, 50,000 for $200.00 USD, 100,000 for $300.00 USD, 500,000 for[_cuted_]</p>]]></description>
      <pubDate>Wed, 19 May 2021 17:18:55 +0000</pubDate>
      <link>https://support.pushover.net/i13-purchasing-additional-capacity-to-send-more-messages-per-month</link>
      <guid>https://support.pushover.net/i13-purchasing-additional-capacity-to-send-more-messages-per-month</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>On the first of each month at midnight Central Time, all application usage limits reset back to the free allowance of 10,000 messages. Once an application has sent 10,000 messages in a month, it will receive an <a href="https://pushover.net/api#friendly">error from our API</a> and will no longer be able to send messages until the first of the next month when the allowance resets.</p>
<p>For high-volume applications that need to send more than 10,000 messages per month, additional capacity can be purchased from our website (10,000 for $50.00 USD, 25,000 for $115.00 USD, 50,000 for $200.00 USD, 100,000 for $300.00 USD, 500,000 for $1000.00 USD). Once an application uses its free allowance, subsequent messages will start deducting from its purchased reserve until the first of the next month. An application's purchased reserve will remain available until it has been completely used. Upgraded capacity is not transferable or refundable.</p>
<p>Additional message capacity can be purchased instantly through our website by viewing your specific <a href="https://pushover.net/dashboard#apps">application</a>:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="//s3.amazonaws.com/chd-data/data/pushover/items/13/media/Screenshot_2019-10-01%20Pushover%20Applications%20and%20Plugins.png" alt="" width="500" border="1" data-file="___chdfid_3033___"></p>
<p>Then click "Purchase Additional Message Capacity" (you may not see this option on applications that have not been used):</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="//s3.amazonaws.com/chd-data/data/pushover/items/13/media/Screenshot_2020-06-10%20Pushover%20View%20Application%20My%20Example%20App.png" alt="" width="500" border="1" data-file="___chdfid_3035___"></p>
<p>You'll have the option to make a single upgrade purchase or keep the credit card on file for automatic upgrading whenever your message capacity gets low.</p>]]></content:encoded>
    </item>
    <item>
      <title>Sending multi-line notifications through the API</title>
      <description><![CDATA[<p>To send multi-line notifications with line-breaks, send regular newline ("\n", ASCII 10) characters in your message. Your library or programming language may not interpret "\n" characters properly inside strings and may send them as a literal backslash and "n". In those cases, you may need to use your language's chr() or similar function to represent a single character with ASCII value 10.</p> <p>When using curl in shell scripts, you may find it easiest to just insert literal line breaks in your file:</p>]]></description>
      <pubDate>Fri, 30 Jul 2021 14:13:26 +0000</pubDate>
      <link>https://support.pushover.net/i35-sending-multi-line-notifications-through-the-api</link>
      <guid>https://support.pushover.net/i35-sending-multi-line-notifications-through-the-api</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>To send multi-line notifications with line-breaks, send regular newline ("<code>\n</code>", ASCII 10) characters in your message. Your library or programming language may not interpret "<code>\n</code>" characters properly inside strings and may send them as a literal backslash and "n". In those cases, you may need to use your language's <code>chr()</code> or similar function to represent a single character with ASCII value 10.</p>
<p>When using <code>curl</code> in shell scripts, you may find it easiest to just insert literal line breaks in your file:</p>
<pre>curl -s \
  --form-string "token=<em>APP_TOKEN</em>" \
  --form-string "user=<em>USER_KEY</em>" \
  --form-string "message=this is a

message with a line break" \
  https://api.pushover.net/1/messages.json
</pre>]]></content:encoded>
    </item>
    <item>
      <title>Getting your app/website/service listed on Pushover's Public Applications/Integrations page</title>
      <description><![CDATA[<p>Pushover's Featured Public Applications page provides our users with a list of applications, plugins, websites, and services that provide Pushover support and integrate with our API.</p>
<p>To get your application listed, it must follow these guidelines:</p>
<ul>
<li>The resource must be publicly available (i.e., not an internal company application). You may charge money for the app, plugin, or service, but you cannot charge extra for Pushover functionality.</li>
<li>For externally hosted services, you must use one API token per service/application and you are responsible for purchasing additional capacity as needed. You may not register multiple API token to get around our message[_cuted_]</li></ul>]]></description>
      <pubDate>Thu, 18 Mar 2021 17:12:49 +0000</pubDate>
      <link>https://support.pushover.net/i36-getting-your-app-website-service-listed-on-pushover-s-public-applications-integrations-page</link>
      <guid>https://support.pushover.net/i36-getting-your-app-website-service-listed-on-pushover-s-public-applications-integrations-page</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Pushover's <a href="https://pushover.net/apps">Featured Public Applications page</a> provides our users with a list of applications, plugins, websites, and services that provide Pushover support and integrate with our <a href="https://pushover.net/api">API</a>.</p>
<p>To get your application listed, it must follow these guidelines:</p>
<ul>
<li>The resource must be publicly available (i.e., not an internal company application). You may charge money for the app, plugin, or service, but you cannot charge extra for Pushover functionality.</li>
<li>For externally hosted services, you must use one API token per service/application and you are responsible for purchasing additional capacity as needed. You may not register multiple API token to get around our message limits and you may not request or host API tokens registered by end-users.</li>
<li>Your Pushover integration must conform to our <a href="https://support.pushover.net/i63-pushover-logos-and-usage">Pushover Logos and Usage guidelines</a>.</li>
<li>Your Pushover integration must be mentioned somewhere that is accessible to the public, such as a webpage or application documentation that we can point to. One should not have to login or pay for an application to verify that it includes Pushover support.</li>
</ul>
<p>If your application conforms to these guidelines, you are eligible to have it listed on our Featured Public Applications page. To get started:</p>
<ol>
<li>Edit your previously registered application on our website and verify that the description, URL, and icon are set properly. Once an application has been made public, these settings cannot be changed through our website.</li>
<li>Send us a <a href="https://pushover.net/support">support message</a> and include:
<ol>
<li>The <b>application's API token</b></li>
<li>The <b>name of the author</b> we should list on our apps page and an <b>optional URL for the author</b> (if separate from the URL to the application), and</li>
<li>The <b>URL to the webpage or application documentation</b> that describes how the application integrates with Pushover.</li>
</ol>
</li>
</ol>
<p>Once we have verified your Pushover integration, we will add it to our apps page and contact you.</p>]]></content:encoded>
    </item>
    <item>
      <title>Including an open source application's API token in its source code</title>
      <description><![CDATA[<p>Each application that uses Pushover's API must be registered to receive its own API token. For most users, this API token will be kept secret in your own application, script, or website and you will be able to monitor and restrict its use.</p>
<p>For those distributing software that is installed and managed by your end-users, such as libraries and open source projects that use Pushover's API, each user must register their own application and then enter that unique API token in their copy of your software. This way each user will get their own monthly quota of messages without being[_cuted_]</p>]]></description>
      <pubDate>Fri, 30 Jul 2021 14:14:55 +0000</pubDate>
      <link>https://support.pushover.net/i37-including-an-open-source-application-s-api-token-in-its-source-code</link>
      <guid>https://support.pushover.net/i37-including-an-open-source-application-s-api-token-in-its-source-code</guid>
      <author>Pushover Support</author>
      <dc:creator>Pushover Support</dc:creator>
      <content:encoded><![CDATA[<p>Each application that uses Pushover's <a href="https://pushover.net/api">API</a> must be registered to receive its own API token. For most users, this API token will be kept secret in your own application, script, or website and you will be able to monitor and restrict its use.</p>
<p>For those distributing software that is installed and managed by your end-users, such as libraries and open source projects that use Pushover's API, each user must <a href="https://pushover.net/apps/build">register</a> their own application and then enter that unique API token in their copy of your software. This way each user will get their own <a href="https://support.pushover.net/i12-message-size-and-frequency-limitations">monthly quota</a> of messages without being affected by other users. For popular applications listed on our <a href="https://pushover.net/apps">Featured Public Applications</a> page, we can enable a special cloning URL that you can direct users to that will simplify this registration process for them.</p>
<p>Please note, this does not apply to SaaS/hosted applications.  If you are managing a service or application for multiple users, you may only use one API token and you are not permitted to store or use API tokens registered by end-users.</p>
<p>For example, users setting up irssi can be directed to <a href="https://pushover.net/apps/clone/irssi">https://pushover.net/apps/clone/irssi</a> which will automatically clone the app's icon, description, and URL. The user just has to confirm the terms of service, click a button, and they can easily get their own API token to copy and paste into the irssi plugin configuration. For developers looking to get this functionality with their apps, please <a href="https://pushover.net/apps/build">register</a> your own application and set a proper description and icon, and then <a href="https://pushover.net/faq#technical-publicapp">contact us</a> with the details of what your application does, how it integrates with Pushover, and the API token you have registered that you would like to be made cloneable.</p>
<p>If you are providing a free service that uses Pushover where you are still in control of your API token (such as a website or server-side app that you run), <a href="https://pushover.net/support">contact us</a> to inquire about getting a free upgrade of your permitted monthly notifications.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
