In short, Pushover is a service to receive instant push notifications on your phone or tablet from a variety of sources. To quickly get started:
In more detail, Pushover is a platform for sending and receiving push notifications. On the server side, we provide an HTTP API for queueing messages to deliver to devices addressable by User or Group Keys. On the device side, our iOS, Android, and Desktop clients receive those push notifications, show them to the user, and store them for offline viewing.
If you're a developer or even just have some scripting knowledge, you can integrate Pushover notifications into your application, website, server process, network monitor, or anything else using our API. Examples in various programming languages can be found here in our FAQ.
[Top]Short answer: For individuals, after a 7-day free trial, it costs $4.99 USD once, per-platform (iOS, Android, Desktop), to use on as many of your own devices1 on that platform as you want. There are no monthly or yearly fees and you can receive as many notifications as you want.
Long answer: As an end-user receiving push notifications, our iOS, Android, and Desktop clients are free to try for 7 days. After 7 days, you'll need to purchase a $4.99 USD license for each platform you wish to use it on. Once you've licensed a particular platform, you can use it on as many of your own devices that you personally use1 with no additional recurring fees. For example, once you make an in-app purchase in our iOS app on your iPhone, you can also use it on your iPad without having to pay again. If you also want to use it on your Android tablet, you would need to purchase an additional license for Android.
For organizations needing extra features such as SMS backup and user management, our Pushover for Teams service is $5 USD per user, per month. This service enables the use of Pushover without any per-platform licensing fees.
As an application developer or service provider sending notifications through our API, you can send a certain number of notifications for free each month. See our question about message limitations for more information.
For information on volume license pricing, please see this answer.
1. We consider "your own devices" to be devices that you primarily operate. A single account or license cannot be shared among multiple users in a household, organization, etc.
[Top]No, Pushover's API only integrates with our branded iOS, Android, and Desktop client apps and is designed to be a complete, end-to-end solution for individuals and organizations needing to send notifications out, and receive them on their own devices.
Unlike wholesale notification providers like Urban Airship or Parse, who provide an API to handle dispatching bulk notifications through Apple and Google servers to be received by your own iOS and Android apps, Pushover only works with our own apps and we cannot send notifications to other mobile apps.
Additionally, our service cannot be integrated into other websites to push notifications to browsers that have not registered for Pushover.
[Top]For most users, no. Pushover does all of its communication with your device over the Internet, using the connection your phone already has to Google or Apple for receiving push notifications.
For Pushover for Teams users, your account can be configured to enable SMS backup delivery for priority 2 messages.
While you will not incur per-message SMS charges for receiving Pushover notifications, it also means that Pushover requires a working WiFi or cellular data connection to receive notifications. If your phone is out of range of a data provider, it will receive all queued up notifications once it establishes a working data connection.
[Top]Currently we have device clients for iOS (iPhone, iPad, iPod Touch), Android, and Desktop (Chrome, Firefox, Safari, macOS).
[Top]Due to the design of our systems, we do not store messages on our servers once they have been reliably received by your device client. To view a notification on multiple devices on your account, it must have been delivered to those devices. By default, all notifications sent to your account will be delivered to all active devices on your account. If you delete a message on one device, it will not affect that message stored on any of your other devices.
[Top]Each application registered to send Pushover notifications may send 7,500 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. For high-volume applications, please see the next question.
One application assigned to a Team can send up to 25,000 messages per month for free. All other applications can send the usual 7,500 amount for free.
For per-message size limitations, please see the limitations section of our API page.
[Top]On the first of each month at midnight Central Time, all application usage limits reset back to the free allowance of 7,500 messages. Once an application has sent 7,500 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.
For high-volume applications that need to send more than 7,500 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.
Additional message capacity can be purchased instantly through our website by viewing your specific application and clicking "Purchase Additional Message Capacity".
[Top]An ever-increasing number of applications, websites, libraries, and packages have integrated Pushover support to make your Pushover service more useful. As most of these are created and maintained by individuals and companies not associated with our company, we are unable to provide support for them when they do not work as intended, such as when you do not receive Pushover notifications from them.
From your dashboard (requires that you are logged into our website), enter a test message into the "Send Notification" area and click "Send". If you do not receive your test message on your device within a few minutes, please see our next FAQ entry to resolve problems with your device.
If you do receive your test message, then your device client and your Pushover service are working properly and the problem is with the 3rd party software or website you are using.
Before contacting the author of that software or service for support, double-check that you have entered your user key properly (which can be found on your dashboard and from within the Settings menu of your device client). It should be 30 characters long and not have any spaces.
Finally, if you do need to contact the 3rd party software author for support, let them know that you have successfully received test messages sent from our dashboard and that you have verified your user key. If they are unable to provide support, please contact us and we'll try to help out.
[Top]As detailed in the technical section, we send push notifications through Apple's and Google's servers and rely on their systems and frameworks to deliver messages to your device. If the connection between your device and Apple's or Google's servers is not working properly, you will not receive push notifications when our servers send them to Apple or Google, but once you open the Pushover device client, it will synchronize and download all pending notifications from our servers.
If you have already gotten an e-mail that your device has been disabled, please see our next question. Otherwise, you can try each of these steps until your device is again receiving push notifications:
When we send push notifications to Apple's or Google's servers to get forwarded to your device, they may report back to us that your device identifier is no longer valid. Most often this is because you have uninstalled the Pushover app on your device, but occasionally it can be because of a problem with your device. Once we are notified of such a problem, we must stop sending messages to your device and while your device is disabled on your Pushover account, our API will not queue any new messages for it.
To re-enable your device, start by making sure that you have not removed the notification permission for the Pushover application. Open the main Settings app of the phone, then go to Notifications, then Pushover. Make sure that notifications are enabled.
Next, you can try uninstalling the Pushover app. Unfortunately this will delete your local database of messages, so proceed with caution. Once uninstalled, restart the device. Then, install the app cleanly from the App Store (iPhone and iPad) or Google Play (Android) (do not recover the app from a backup). You will need to log into your account again and re-register your device (you can use the same device name as before).
Hopefully that will permanently restore service to your device. Note that it may take a few days to make sure this worked, as it can take a while for our servers to start receiving errors again for your device.
iOS (iPhone and iPad)
If you are still getting e-mails about problems with your iOS device after reinstalling, there is one more thing you can try as recommended by Apple:[Top]
If you're testing out Pushover for the first time, you may have the Pushover device client (app) open while you wait for the message to arrive. In this scenario, you will not hear a notification alert sound and/or feel vibration and you might think something is wrong. The Pushover device clients do not play sound or vibrate when the device is unlocked and the Pushover application is open, because no notification is generated with the system; the message is received and displayed directly by the running Pushover application which you can see at the top of your message list.
However, this is not how you will typically interact with Pushover. Your device will either be in sleep mode or you will be interacting with another application when a notification arrives. To properly test Pushover, turn the device's screen off or switch to another application before sending your test messages. This will more accurately represent how you will use Pushover most often: to receive notifications while your device is not in use.
Also, ensure that your notification volume is adjusted properly. On Android and iOS, there are actually separate volume controls for notifications, ringers, alarms, and media/music. When you are using the Pushover device client and use your device's volume keys to turn the volume up, you may just be adjusting the volume for your phone ringer which does not affect the volume at which notifications play.
On iOS, open the device's main Settings app, then go to Sounds. There is a volume slider there to adjust the "Ringer and Alerts" volume. Make sure it is at a reasonable level. Also, verify that Pushover is allowed to generate sounds by going to the device's Settings app, then Notification Center, then Pushover, and ensure Sounds is enabled. Also note that on iPhones, the physical mute switch on the side of the phone will mute all notification sounds and there is no way for an app like Pushover to override it.
On Android, open the device's main Settings app, then go to Sound, then Volumes. Adjust the "Ringtone & notifications" volume to a reasonable level.
Once you have adjusted the notification volume properly and are not in the Pushover app, you can test receiving notifications by using our dashboard to send a notification to your device with the specified sound.
If you are not hearing sound only during certain periods of time, ensure that your Quiet Hours are not in effect, and that any Do Not Disturb functionality is not enabled on your device. Note that on the iPhone, Pushover (or any 3rd party app) is not able to bypass the mute switch on the device.
[Top]Our API that websites and applications use to send you messages allows for each message to have a particular sound, in the case of applications sending multiple types of messages (for example, a network monitor sending a "host down" message could play a longer, more severe sound, but on a "host up" message, play a softer, more subtle sound.) When an application specifies a message sound, it will override the default sound that you have chosen in your Settings. For this reason, we encourage most applications to leave the sound setting to its default, or allow users to specify which sound(s) they want to hear from that application when registering with it.
To test whether your default sound has been saved properly, send a message to your device from your dashboard and leave the sound setting at its default "(Device default sound)". This should trigger a notification on your device and play your device's default sound. If not, go back into the Settings and re-select your chosen sound, as it may not have saved properly on our servers.
For applications that are subscribed to, you can edit those subscription settings to override the application's default sound. You can find these subscriptions from your dashboard under "Your Subscriptions".
And finally, you can force your default sound to be played for all applications by going to the Settings menu in the Pushover app on your device, and enabling the option to force playing your default sound.
[Top]This situation often occurs from misconfigured 3rd party software that sends messages through our API.
Each message sent to Pushover's API can include a user-specified priority which alters how the message is handled. (Contrary to the documentation of some 3rd party software, this priority has no affect on how quickly your message is processed or delivered through Pushover.) The highest priority, emergency (2), will repeat the alert multiple times until you acknowledge it by tapping on the notification and then tapping on the "Acknowledge" button in the app. These emergency-priority messages are indicated by a bright red background in the message list, and the label "Emergency priority" under the title in the dedicated message view.
If you are receiving repeating emergency-priority messages and you do not want this repeating behavior, change the message priority in the software you use to generate Pushover notifications to use the default (0) or just high-priority (1) which will not repeat.
For server-side software such as network monitors or cron tasks that send Pushover notifications, it may be possible that the software is running twice and sending two messages to our API each time.
If the same message appears multiple times in the message list of the Pushover app, then our API is receiving multiple messages from your software. Verify that it is not running twice on your servers (or however the messages are generated).
For messages received through our e-mail gateway, the same situation can occur where multiple e-mails are received by our servers and converted to notifications. Verify on the sending side that multiple e-mails are not being sent out.
Pushover for Android (as of version 2.1.2) includes a Tasker action plugin that can be used with the 3rd party Tasker app (sold separately) to perform actions whenever a Pushover notification is received.
Pushover exports a number of variables to Tasker which can be used in tasks, such as the content of the message, its URL, etc. These variables are:
For an example of using Pushover with Tasker, check out our demo.
[Top]Slide out the application list by sliding left-to-right, then tap-and-hold on a particular application to access its context menu where you'll be able to delete all of its messages or re-fetch its icon. To delete all messages globally, tap-and-hold on the "All Messages" entry and then tap on the option.
[Top]On iOS, notifications are received by the operating system itself and not by our client app, which means it displays the name and icon of our main Pushover application rather than your Pushover application's custom icon and name.
However, once you open the Pushover client, it is able to download your app's custom icon and display it in the message list. If your app's custom icon is not showing up inside the app, you can try forcing it to fetch again by sliding out the app list on the left side and tap-holding on your particular app. A menu will pop up and allow you to fetch the icon again.
If your custom app's icon is still not showing up inside the application after re-fetching it, please contact us.
[Top]Slide out the application list by sliding left-to-right, then tap-and-hold on a particular application to access its context menu where you'll be able to delete all of its messages or re-fetch its icon. To delete all messages globally, tap-and-hold on the "All Messages" entry and then tap on the option.
[Top]iOS 10 introduced some additional notification features, such as image attachments. Pushover for iOS uses this to show per-application icons, in addition to the standard Pushover icon. Our Apple Watch app for watchOS 3 has a dynamic notification interface that can show these icons as well. However, if the Pushover application is not installed on your Apple Watch, you will see the per-application icon as a full-screen image. To resolve this problem, you need to have the Pushover app installed on your watch.
If you still see these full-screen icons with the Pushover watchOS app installed, you may need to reinstall it. To do this, open the Watch app on your phone, scroll down to Pushover, then toggle the option for having the app installed, then toggle it again to reinstall it.
[Top]We get this feature request frequently, but unfortunately it is not technically possible for us to implement. 3rd party iOS apps such as Pushover can only play notification sound files that we bundle with our app (all of which have been custom designed for us.) Our app cannot play other notification sounds that you have on your phone or any other sound files.
[Top]Pushover for Desktop is an in-browser app. There is nothing to download or install and it works on Safari, Chrome, and Firefox on Mac, Windows, Linux, ChromeOS, and other Unix flavors. By having your web browser running and a tab open to our Desktop client app website, your browser will be in constant communication with our servers and generate notifications just like your mobile devices.
While this does mean that you have to keep your web browser open to receive notifications, most users have a web browser open all the time anyway.
Tip: In Chrome and Firefox, you can right-click on the Pushover for Desktop tab and click "Pin Tab". This will shrink the size of the tab, provide activity notifications, and open it by default when you open your browser.
Note: For OS X, you do not need to keep a browser open. The initial registration of your desktop device must be done in Safari so that it can download a special file from us that registers your desktop with us. This allows us to send notifications directly to your desktop without any browser being open.
[Top]Unfortunately this is a limitation of OS X's Safari notifications. We deliver these notifications to Apple's servers in order to deliver them to your desktop, and there is currently no way to specify a sound to be played. This limitation does not exist with our in-browser desktop client, since we generate notifications ourselves and can play a sound in the browser at the same time.
[Top]On macOS, you may need to re-register your desktop to continue receiving notifications after a system update or a reset of settings in Safari.
To start, open Safari, then its Preferences. Click the Notifications tab, and if there is an entry for Pushover, click on it and then click the Remove button. Close Safari, and then open it again and visit the Pushover dashboard and click the Login link next to your macOS device. You will be directed to the Desktop client website and you should be prompted to allow notifications again. Once this is setup, try sending a test notification to your macOS device from the dashboard.
If notifications are still not working, repeat these steps but reboot the computer in between removing Safari notifications and visiting the Desktop client site again. The apsd daemon on macOS can sometimes misbehave and stop processing notifications, which will get restarted when rebooting the computer.
If you are still not receiving notifications after all of this, you can try these steps from Apple's website to enable debugging in the apsd daemon to see what may be going wrong (for advanced users only):
$ sudo defaults write /Library/Preferences/com.apple.apsd APSWriteLogs -bool TRUE $ sudo defaults write /Library/Preferences/com.apple.apsd APSLogLevel -int 7 $ sudo killall apsd
Then watch the log while you send a notification to your macOS device from the dashboard:
$ sudo tail -f /Library/Logs/apsd.log[Top]
If your local database of messages became corrupted, you will experience errors when visiting https://client.pushover.net/ and you will be redirected to an error page. You can try to re-initialize the local database of messages to resolve this problem. Note that this will delete all of your past Pushover messages that are stored in your browser.
Chrome:
Open the Chrome settings, then click Show Advanced Settings at the
bottom. Click the Content Settings button, then click All Cookies and
side data. In the search box, type pushover.net, and then hover over the
client.pushover.net entry, and click the X on the right side. Click
Done, then Done again. Access your dashboard and click Login next
to your Chrome desktop device under Your Devices. You should no longer
get an error and your database of messages will be re-initialized.
Firefox:
Open client.pushover.net in
Firefox (it's ok if you get redirected to the error page). Click the
Tools menu, then Page Info. Click on the Permissions tab, then scroll
down to Maintain Offline Storage. Click Clear Storage, then close the
Page Info window. Access your dashboard and click Login next
to your Firefox desktop device under Your Devices. You should no longer
get an error and your database of messages will be re-initialized.
Safari:
Click the Safari menu, then Preferences. Click the Privacy tab, and then
the small Details button. Locate the "pushover.net" entry and click on
it, and then click the Remove button. Click Done, close the Preferences,
and then close and re-open Safari. When you navigate back to the main
Pushover website at pushover.net, you will need to login again. Under
Your Devices on your dashboard, click Login next to the macOS/Safari
device you have registered, and you will be guided through the
initialization again.
Pushover includes an e-mail gateway feature that allows you to send e-mails to a custom Pushover e-mail address and have them be converted into Pushover notifications. Every user has a unique @pomail.net address assigned when their account is created, and additional addresses can be created with custom options for each one such as a default sound.
You can find your default Pushover e-mail address on your dashboard, as well as create additional ones.
[Top]When Pushover's e-mail gateways receive an e-mail, there is already a date and time included in it which is put there by the sender when the e-mail was created. Since each e-mail may be received out of order, or may be delayed before reaching our e-mail gateway, we preserve this date and time and use it as the timestamp on the notification so that they are ordered in your Pushover application in the same order that they were created, rather than the order that we received them.
While most of the time this feature works well, some systems may be sending out e-mails with an incorrect date and time due to local clock drift, an incorrect timezone, or improper Daylight Saving Time settings.
If you are receiving e-mail gateway notifications with times that are incorrect, you should first check the clock on the system that sent them, if you have access to it. Security systems and cameras that send out e-mail notifications often have incorrect timezone or Daylight Saving Time settings.
If you are not able to correct the timestamps on the e-mails at their source, you can configure your Pushover e-mail alias to ignore these timestamps and always use the time that our gateways received them. This can be done by clicking on your e-mail alias from your dashboard, enabling the "Ignore Timestamps" option, and clicking "Save Settings".
[Top]
We require all users to confirm their e-mail addresses in order to register for API tokens so that we can ensure we have a way of contacting users if problems arise with their applications.
Unfortunately, Microsoft is blocking e-mails from us to Hotmail/Outlook.com/Live.com users with no explanation, despite our proper e-mail configuration and best practices (DKIM, SPF, DMARC, List-Unsubscribe headers, etc.) We have contacted Microsoft numerous times for assistance but they refuse to provide us with any information.
To make the problem worse, our e-mails do not bounce back or arrive in your Spam/Junk folder, they just disappear after being received by Microsoft's servers. In order for users of Hotmail/Outlook.com/Live.com to receive e-mails from Pushover, you will need to first add support@pushover.net as a "Safe Sender" on the Outlook.com site.
First, login to your Outlook.com e-mail account, then click the Settings icon in the upper right corner, then scroll down and click on Show Full Settings. Click on Junk Email, then down to Safe Senders. Add support@pushover.net and then Save.
Once you have added us as a Safe Sender, you can request a new confirmation e-mail which should hopefully arrive in your Inbox.
[Top]Note: If you have legitimately paid for the Pushover app on your device but still received a notice, see our followup answer.
Our Android and iOS apps are free to download in the App Store and Google Play and are free to use for 7 days. After 7 days, a license for that platform must be purchased in the app to continue receiving notifications.
Unlike many other iOS and Android apps and games, Pushover is not just an app, but also a service. This service is powered by servers that cost us money every month to keep running (not counting the development costs involved in further developing the apps and service, as well as the human resources required to provide great technical support). For us to be able to keep paying for and maintaining those servers, we rely on our users to pay us for the service by buying our Android, iOS, and Desktop client apps.
After the 7-day trial, if a license is not purchased in the app within 24 hours, we will stop queueing and delivering push notifications to your device until the problem is resolved.
Note: The Pushover app must be legitimately purchased for each platform you wish to use it on. However, once purchased, it may be installed on all of the personal devices on your same Google/Apple account without purchasing it again.
If you have legitimately purchased our Pushover app but have received a licensing notice, please see our next answer for more information.
[Top]On both Android and iOS, our in-app purchase for a license for that platform is "non-consumable" which means it can only ever be purchased once (per Google Play or App Store account). If you have gone through the in-app purchase process and the purchase was successful the first time, going through the in-app purchase process a second time will not charge your card twice, but will instead fetch your previous purchase information and validate it.
If you have previously gone through the in-app purchase process and your account is still showing as on a trial, open the settings menu of the Pushover app, then scroll down to "Device License Status" and tap on it. On Android, Google Play will show its in-app purchase dialog, and on iOS, you will be prompted whether you want to retrieve your previous purchase. If you choose Yes and it says no previous purchase was found, then your card has not been successfully charged, you can complete the in-app purchase process again, and you will only be charged once.
You may see a temporary hold on your credit card after an in-app purchase despite the charge not going through. This temporary hold will automatically be lifted by your bank within a few days if the charge was not successful.
If you are still having trouble making an in-app payment, you will need to contact Google or Apple for support. Unfortunately we are not able to provide support for any billing issues with payments made through Google Play or the App Store. If you are still unable to make a purchase through our apps, you can buy a license through our website.
[Top]You can use our Volume Licensing Tool to make a single purchase for your own account, which can be paid by credit card through our website or PayPal.
Note that is is only for making the one-time licensing purchase. Our Android app still requires continuous access to the Google Services Framework on your device in order to receive notifications, and Google Play is needed to receive timely updates to our app.
We are unable to provide support when using our apps that have not been installed through Google Play or Apple App Store.
[Top]Our Android and iOS apps are free to download and try for 7 days. Our Desktop client is free to register for and use for 7 days. After your trial, an in-app purchase must be made to license your account for that platform.
[Top]Yes, our iOS, Android, and Desktop apps are separate products that must be purchased separately. While you are free to install each application on as many devices as you personally own and operate without needing to purchase it multiple times, you must license each platform app separately.
[Top]For most companies, our new Pushover for Teams service is the best solution for managing a number of users under an administrative account.
If you need to purchase Pushover licenses on behalf of accounts that you don't need to manage, we have two tools available.
If you have a list of users that you wish to buy licenses for (either existing Pushover users, or just e-mail addresses for users that will download Pushover later) you can use our Volume Licensing Tool. This is a tool that will build an invoice for you based on the number of licenses you wish to purchase, which can then be paid by credit card or PayPal.
Licenses can be purchased for existing Pushover accounts by Pushover user key, or for future accounts registered by e-mail address. Once a previously-licensed e-mail address is used to signup for a new Pushover account (through our device clients or our website), the purchased license will be automatically activated for that account.
Alternatively, if you will need to assign licenses to users in the future and you do not yet know their e-mail address or Pushover user key (such as when building an application that will need to assign licenses to users on-demand programmatically), we have a Licensing API available. With this method, you purchase a number of licensing credits up front (with discounts available based on the number of credits purchased) which remain stored on your Pushover account/application. Whenever you need to assign a license, you can do so with a simple API call and pass the user's e-mail address or Pushover user key and a license will be assigned based on your available credits.
Whether purchasing licenses through our Volume Licensing Tool or purchasing credits for our Licensing API, the pricing is the same:
Please see our Logos and Usage page for copies of our logo in various sizes and the licensing terms for our logo and name.
[Top]Please see our API page for more information on the process of creating an application and the technical details of using our HTTP API.
[Top]
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 backspace 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.
When using curl in shell scripts, you may find it easiest to
just insert literal line breaks in your file:
curl -s \ --form-string "token=APP_TOKEN" \ --form-string "user=USER_KEY" \ --form-string "message=this is a message with a line break" \ https://api.pushover.net/1/messages.json[Top]
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.
To get your application listed, it must follow these guidelines:
If your application conforms to these guidelines, you are eligible to have it listed on our Featured Public Applications page. To get started:
Once we have verified your Pushover integration, we will add it to our apps page and contact you.
[Top]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.
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, it is usually better to have each user 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 affected by other users. For popular applications listed on our Featured Public Applications page, we can enable a special cloning URL that you can direct users to that will simplify this registration process for them.
For example, users setting up NzbDrone can be directed to https://pushover.net/apps/clone/nzbdrone 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 NzbDrone app. For developers looking to get this functionality with their apps, please register your own application and set a proper description and icon, and then contact us 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.
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), contact us to inquire about getting a free upgrade of your permitted monthly notifications.
[Top]As of February 1, 2018, the possible IP addresses for api.pushover.net are:
108.59.13.232 207.244.109.177 2604:9a00:2010:a01e:3::2 (IPv6) 2604:9a00:2010:a017:2::2 (IPv6)
Note that these are possible IP addresses for our service and are meant strictly as an access list to limit what your servers can send requests to. Any of these IP addresses may not be in service at any given time and so it is critical that your systems always use DNS (allowing for normal DNS caching, of course) to query the current IP address(es) of api.pushover.net before sending requests to it. Do not use this list to hard-code an IP address in your API-consuming software, or it may break in the future.
[Top]
Messages delivered to devices but not acknowledged will be automatically deleted from our servers after 21 days.
[Top]
The 3rd party cpushover library written by Christian Bjartli
is available. This library uses libcurl.
The built-in WebClient class can be used, replacing "APP_TOKEN" with the token of your app, and "USER_KEY" with your user's key (or your own if sending messages to your own devices).
var parameters = new NameValueCollection {
{ "token", "APP_TOKEN" },
{ "user", "USER_KEY" },
{ "message", "hello world" }
};
using (var client = new WebClient())
{
client.UploadValues("https://api.pushover.net/1/messages.json", parameters);
}
Alternatively, the 3rd party Pushover.NET package written by
Matthew Sawyer, and the NPushOver package written by Rob Janssen are
available.
The 3rd party gopush package written by
Kyle Isom is available, as well as the pushover package written by Grégoire
Delattre.
The 3rd party hPushover package written by
Wander Hillen is available.
The 3rd party pushover4j package written by Sean Scanlon is
available.
The 3rd party pushover-lua package written by Sven Andersson
is available.
The 3rd party node-pushover package written by
Sam Decrock, the pushover-notifications package written by Aaron
Bieber, and the chump package written by Michael Squires are
all available via npm.
The CPAN module LWP::UserAgent library can be used,
replacing "APP_TOKEN" with the token of your app, and
"USER_KEY" with your user's key (or your own if sending messages to your
own devices). To enable proper TLS certificate validation, you may need
the Mozilla::CA module installed for this to work.
use LWP::UserAgent; LWP::UserAgent->new()->post( "https://api.pushover.net/1/messages.json", [ "token" => "APP_TOKEN", "user" => "USER_KEY", "message" => "hello world", ]);
Alternatively, the 3rd party WebService::Pushover Perl module written by
Steve Huff is available in CPAN.
The cURL module can be used, if installed, replacing "APP_TOKEN" with the token of your app, and "USER_KEY" with your user's key (or your own if sending messages to your own devices).
<?php
curl_setopt_array($ch = curl_init(), array(
CURLOPT_URL => "https://api.pushover.net/1/messages.json",
CURLOPT_POSTFIELDS => array(
"token" => "APP_TOKEN",
"user" => "USER_KEY",
"message" => "hello world",
),
CURLOPT_SAFE_UPLOAD => true,
CURLOPT_RETURNTRANSFER => true,
));
curl_exec($ch);
curl_close($ch);
?>
Alternatively, the 3rd party
php-pushover PHP class written by Chris
Schalenborgh,
the Pushy PHP package written by Michael Squires,
and the Pushover for PHP package written by Leonardo C.
Teixeira are available.
The 3rd party Laravel-pushover package for the Laravel
framework written by Dyaa Eldin Moustafa is also available.
Another 3rd party laravel-pushover package for the Laravel
framework written by Edward Karlsson is also available.
The standard httplib and urllib libraries can
be used, replacing "APP_TOKEN" with the token of your app, and "USER_KEY" with your user's key (or your own if
sending messages to your own devices).
import httplib, urllib
conn = httplib.HTTPSConnection("api.pushover.net:443")
conn.request("POST", "/1/messages.json",
urllib.urlencode({
"token": "APP_TOKEN",
"user": "USER_KEY",
"message": "hello world",
}), { "Content-type": "application/x-www-form-urlencoded" })
conn.getresponse()
For Python 3, httplib has been replaced with
http.client and urlencode has moved to
urllib.parse.
import http.client, urllib
conn = http.client.HTTPSConnection("api.pushover.net:443")
conn.request("POST", "/1/messages.json",
urllib.parse.urlencode({
"token": "APP_TOKEN",
"user": "USER_KEY",
"message": "hello world",
}), { "Content-type": "application/x-www-form-urlencoded" })
conn.getresponse()
Alternatively, the 3rd party pushnotify Python package written by Jeffrey
Goettsch,
the pushover Python 3 package written by Wyatt
Johnson,
and the Chump Python
package written by Karan Lyons
are available.
To send an image attachment, the 3rd party
Requests library
can be used. For example, to send the file
"your_image.jpg":
import requests
r = requests.post("https://api.pushover.net/1/messages.json", data = {
"token": "APP_TOKEN",
"user": "USER_KEY",
"message": "hello world"
},
files = {
"attachment": ("image.jpg", open("your_image.jpg", "rb"), "image/jpeg")
})
print(r.text)
[Top]
The 3rd party pushoverr R module written by Brian Connelly
is available.
The standard Net::HTTPS library can be used,
replacing "APP_TOKEN" with the token of your app, and
"USER_KEY" with your user's key (or your own if sending messages to your
own devices).
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 => "APP_TOKEN",
:user => "USER_KEY",
:message => "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) }
Alternatively, the 3rd party rushover Ruby module written by Brendon Murphy
is available through Ruby Gems.
The 3rd party po Rust library written by Jordan Mulcahey
is available.
The 3rd party pushover-vba module written by Mauricio Arieira
is available.
The curl program may be
used from the command line or integrated into shell scripts,
replacing "APP_TOKEN" with the token of your app, and
"USER_KEY" with your user's key (or your own if sending messages to your
own devices).
curl -s \ --form-string "token=APP_TOKEN" \ --form-string "user=USER_KEY" \ --form-string "message=hello world" \ https://api.pushover.net/1/messages.json[Top]
Please see our API documentation for information about attachments such as file size limits.
curl can easily upload
files as parameters by specifying a parameter such as
"attachment=@filename.jpg" as the value, which will read
filename.jpg on your computer and send it as the
attachment parameter, complete with the necessary meta-data
such as its Content-Type and name.
Note: because curl does file uploading automatically with the
-F option, we strongly recommend using
--form-string 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.
curl -s \ --form-string "token=APP_TOKEN" \ --form-string "user=USER_KEY" \ --form-string "message=here is an image attachment" \ -F "attachment=@image.jpg" \ https://api.pushover.net/1/messages.json[Top]
The curl program may be used,
replacing "APP_TOKEN" with the token of your app, and
"USER_KEY" with your user's key (or your own if sending messages to your
own devices).
Download
a Win32 build with TLS support.
curl -s \ --cacert curl-ca-bundle.crt \ --form-string "token=APP_TOKEN" \ --form-string "user=USER_KEY" \ --form-string "message=hello world" \ https://api.pushover.net/1/messages.json
Alternatively, PowerShell can be used. For PowerShell v3, using the new Invoke-RestMethod cmdlet, courtesy of Hal Rottenberg:
$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
Or for older versions:
$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)
The 3rd party PowerShell modules PowerShellPushOver written by Kieran Jacobsen, and PushoverForPS written by Chris Carter are also available.
[Top]Pushover is a service of Superblock, LLC, a software development and network services company with an established track record of providing secure application development and hosting since 1999.
We have been developing and supporting Pushover since March 2012 when we first released our apps to the App Store and Google Play (then called Android Market). We introduced Pushover for Desktop in April 2014.
[Top]We use industry-standard TLS (HTTPS) encryption for all communication in Pushover, in every step of the process between applications and our servers, our servers and carrier push servers, push servers to device clients, and device clients back to our servers.
Our iOS and Android apps support optional message encryption with a random, per-device key automatically shared between our servers and your device. This encrypts your messages while in transit through carrier servers, which are then decrypted by our apps running on your device and shown as notifications. We still store your messages in plain-text on our servers, and on your devices.
We do not currently support full end-to-end encryption where your server delivers an encrypted message to our API, and is then decrypted by our app on your device using a pre-shared key that you enter into the client, which would hide the message contents from our servers. We hope to support this in the future.
[Top]For the full details of our privacy policy, see our privacy page.
[Top]We use modern servers running on physical hardware leased only to us (not virtualized/cloud servers). Our servers run the ultra-secure OpenBSD operating system, our website and API use Ruby on Rails behind nginx, and we use MySQL and MariaDB for data storage.
Our iOS and Android device clients are written in native Objective C and Java, respectively.
Our Desktop browser client is written in Javascript, HTML, and CSS and makes use of WebSocket and IndexedDB technologies.
[Top]As with most of our products and services, we use bcrypt for one-way password hashing. For device identifiers, we create a one-way hash of a stable device identifier available from the operating system together with a randomly generated identifier specific to each Pushover account. We do not use "UDIDs", advertising IDs, or other cross-app personal identifiers.
Access to our servers and databases is tightly controlled, logged, and monitored. Encrypted backups of our entire systems with separate database snapshots are done off-site every day. For increased security and privacy, we do not backup the contents of the temporary message queue database table (but we do backup all of the other tables, of course). We would much rather lose a few transient notifications that can be re-sent later than to accidentally lose control of a backup of those messages should one of them contain a password or other sensitive information.
Credit card information (for purchasing additional message capacity) is handled by our PCI-compliant payment processor and is never transmitted through or stored on our servers.
When logged in, visit your Settings page. Check the box for "Setup Two-Factor Auth", enter your current account password, and then click "Save Account Settings". You'll be walked through the setup of two-factor authentication for your account.
Pushover currently supports TOTP-based 2FA for accounts.
[Top]We are always happy to work with independent researchers or customers that find security vulnerabilities in our products and services. Please see Superblock's security page for vulnerability disclosure and other information.
[Top]