Frequently Asked Questions

  1. Overview
    1. What is Pushover and how do I use it?
    2. How much does Pushover cost?
    3. Can I integrate Pushover into my own iOS/Android app?
    4. Does Pushover use SMS/Text Messages?
    5. What platforms does Pushover support?
    6. Can I view my notifications from multiple devices?
    7. How many messages can I send and what are the limitations on message size?
    8. How can I purchase additional capacity to send more messages per month?

  2. Resolving Common Problems
    1. Why do I not receive notifications through 3rd party software configured with Pushover support?
    2. Why do I not receive instant notifications of alerts and only see them when I open the Pushover device client?
    3. Why did my device get disabled?
    4. Why do I not hear sound from the device clients when receiving notifications?
    5. Why does my device play a different sound than the one I have chosen in the Settings?
    6. Why do notifications not show up on my Pebble watch?

  3. Android
    1. How can I use Pushover message variables in Tasker?
    2. How can I delete all messages from a particular application at once, or all messages globally?

  4. iOS (iPhone, iPad, iPod Touch)
    1. Why do Notification Center notifications only show Pushover's icon and not my app's icon?
    2. How can I delete all messages from a particular application at once, or all messages globally?

  5. Desktop
    1. Where do I download Pushover for Desktop?
    2. Why do I not hear sounds with OS X notifications?
    3. I am not getting notifications on OS X after an update, how do I re-register my device?

  6. Licensing
    1. Why did I receive a notice that my Pushover app is not licensed?
    2. I purchased the app, but I still received a licensing notice or my device is disabled for licensing.
    3. I can't make an in-app purchase through the App Store or Google Play; can I buy it another way?
    4. Do you offer a trial version of Pushover?
    5. I purchased Pushover for one platform and want to install it on another platform. Do I need to purchase it twice?
    6. My company would like to purchase a large number of licences for our employees or customers. Is there an easy way to do this?
    7. Can I use the Pushover logo or name in my library, application, or service?

  7. Technical
    1. How do I get started sending Pushover notifications with the Pushover API?
    2. Can I e-mail notifications to my device?
    3. How are notifications stored and delivered?
    4. How do I send multi-line notifications through the API?
    5. How do I get my app/website/service listed on Pushover's Public Applications page?
    6. Should I include my application's API token in its source code?
    7. What are the IP addresses of Pushover's API so I can allow them in my firewall?

  8. API Libraries
    1. How do I send Pushover notifications in C?
    2. How do I send Pushover notifications in C#/.NET?
    3. How do I send Pushover notifications in Go?
    4. How do I send Pushover notifications in Haskell?
    5. How do I send Pushover notifications in Java?
    6. How do I send Pushover notifications in Lua?
    7. How do I send Pushover notifications in Node.js?
    8. How do I send Pushover notifications in Perl?
    9. How do I send Pushover notifications in PHP?
    10. How do I send Pushover notifications in Python?
    11. How do I send Pushover notifications in R?
    12. How do I send Pushover notifications in Ruby?
    13. How do I send Pushover notifications in Rust?
    14. How do I send Pushover notifications from a Unix command line?
    15. How do I send Pushover notifications from a Windows command line?

  9. Security
    1. Who runs Pushover?
    2. Are messages encrypted?
    3. What is Pushover built on?
    4. How are my account password and other private information stored?
    5. How do I report a security problem or vulnerability?

Overview


  1. What is Pushover and how do I use it?

    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:

    1. Install our client app on your iPhone/iPad/iPod Touch or Android device, or register your Desktop browser.
    2. Run the client and it will walk you through creating a Pushover account and registering your device with our servers.
    3. You'll get a new User Key e-mailed to you (which you can always find on your dashboard or through the Settings menu of the Pushover client app on your device). Your User Key is a randomly generated identifier which allows other apps to send notifications to your account.
    4. Copy and paste your User Key into any application that supports Pushover and it will instantly be able to start sending notifications to your devices.
    5. (Optional) Use your new Pushover e-mail address (found on your dashboard) in any application or website that does not support Pushover, and any e-mails sent to that address will get forwarded to you as Pushover notifications.

    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.

    [Top]

  2. How much does Pushover cost?

    Short answer: 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.

    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.

    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]

  3. Can I integrate Pushover into my own iOS/Android app?

    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.

    [Top]

  4. Does Pushover use SMS/Text Messages?

    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.

    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]

  5. What platforms does Pushover support?

    Currently we have device clients for iOS (iPhone, iPad, iPod Touch), Android, and Desktop (Chrome, Firefox, Safari, Mac OS X).

    [Top]

  6. Can I view my notifications from multiple devices?

    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]

  7. How many messages can I send and what are the limitations on message size?

    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.

    For per-message size limitations, please see the limitations section of our API page.

    [Top]

  8. How can I purchase additional capacity to send more messages per month?

    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 $225.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]

Resolving Common Problems


  1. Why do I not receive notifications through 3rd party software configured with Pushover support?

    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]

  2. Why do I not receive instant notifications of alerts and only see them when I open the Pushover device client?

    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 are not receiving instant push notifications on your device, try each of these steps until your device is receiving instant push notifications:

    1. Verify the Device is Enabled
      Visit the dashboard and re-enable the device if it is disabled. Close the Pushover app on your device, then send a test message to it from the dashboard. If you receive a notification on the device, then your device is working and you can continue using Pushover as usual.

    2. Restart the Device
      Often times notifications stop working because of a problem on the device, unrelated to any specific app. Restarting the device can easily fix this. On mobile devices, hold down the power button until you see a prompt to power off the device, then select it and power it back on. Open the Pushover app, then close it, and try sending a test message from the dashboard.

    3. Verify Notifications are Working in Other Apps
      If your device is not receiving any push notifications from other apps installed on the device, then there may be a problem with the device or your network. Common apps to check are social media apps that send notifications, such as Facebook, Instagram, Google Hangouts, Snapchat, Vine, etc. (Note that some apps like e-mail clients and WhatsApp use their own notification mechanisms.)

    4. (Android Only) Verify Data Syncing
      If your Android device receives push notifications on WiFi but not while on on a mobile data network (3G/HSPA/4G/etc.), you may have "mobile data" disabled. Open the Settings app on the device, tap "Data usage", and verify that "Mobile data" is turned on.

      If you are not receiving push notifications on WiFi or mobile data, verify that "Background data" for your Google account (2.3+) is enabled, or that "Auto-sync data" (4.0+) is enabled.

    5. (iOS Only) Verify Notification Center Settings
      For iOS devices, open the main Settings app on your device, then tap on Notification Center. Ensure that Pushover is listed and is not in the "Do Not Include" section at the bottom. Tap on Pushover and make sure that Alert Style is not "None", and that "Show in Notification Center" is on, and most likely you will want "Show on Lock Screen".

    6. Verifiy WiFi Connectivity and Firewalling
      If your device is connected to a WiFi network, try disabling WiFi to force it onto the mobile data network. Then send your device a notification from the dashboard. If your device receives the new notification, then you may be on a WiFi network that is blocking access to Apple's or Google's servers. For iOS devices, outbound TCP port 5223 is required to be open to establish a persistent connection to Apple's servers. For Android devices, outbound TCP port 5228 is required. For Desktop devices, outbound TCP port 443 is required.

    7. Log out of the Pushover App
      If you are still not receiving push notifications in Pushover but are in other apps, try closing the Pushover app (not just switching to another app), then open it again and log out of the Pushover app through the Settings menu (at the bottom). Once logged out, log back into your Pushover account and register again with the same device name. This will force your device to re-register with the iOS/Android notification service and then send that new token to Pushover's servers. Close the Pushover app on your device, then send a message to it from the dashboard and verify that you receive it on your device.

    8. Reinstall the Pushover App
      If you are still not receiving notifications and have verified that all of the previous items are working, try uninstalling the Pushover app, then reboot the device and reinstall the Pushover app through the App Store or Google Play.

    9. (Android Only) Verify Google Services Framework
      If your Android device is still not receiving push notifications after reinstalling, there may be a problem with the Google Services Framework on your device. This is a common service that runs on the phone and provides communication between Google's servers and your device and is responsible for delivering push notifications to Google Talk, Google Play, and applications like Pushover.

      If there is a problem with your Google Services Framework, there is unfortunately nothing we can do to resolve it on our end. It is a problem with your device and will affect all applications that use push notifications. An easy test is to login to Google Talk on your phone, switch out of the application, then login to Gmail on your computer and send yourself an instant message. If you don't receive it on your device, your push notifications are not working.

      To try to resolve the problem with the Google Services Framework, you can try removing your Google account from the device (in Settings -> Accounts & sync -> your Google account -> Menu -> Remove account) and then re-adding it. Next, logout of the Pushover app by tapping the Settings button, then reboot the device. Re-add your Google account, and then login to the Pushover app again.

    10. Contact us
      Finally, if you are still not receiving push notifications, please contact us.

    [Top]

  3. Why did my iOS device get disabled?

    Apple's notification service requires that we poll it periodically for delivery reports. If a problem is reported with your device, we must stop sending messages to it, so we disable the device on our servers. Any applications attempting to send messages to it through our API will receive an error while your device is disabled. These error reports are usually caused by uninstalling the Pushover application or the device being offline for an extended amount of time.

    To re-enable a disabled device, try the steps in the answer above to get notifications working again.

    [Top]

  4. Why do I not hear sound from the device clients when receiving notifications?

    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.

    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.

    [Top]

  5. Why does my device play a different sound than the one I have chosen in the Settings?

    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.

    At this time there is no way to make your device override an application's chosen sound per-message. If you are not happy with the sound an application is specifying, please contact the application's author to request that they not specify message sounds, or give you the ability to select a different one.

    [Top]

  6. Why do notifications not show up on my Pebble watch?

    To receive Pushover notifications on your Pebble watch, you'll first need to setup the watch with your phone using Pebble's app (available for free in the App Store and Google Play). Once you have confirmed that you are able to receive Pebble notifications from standard apps like SMS and incoming phone calls, you can now get Pushover notifications displaying on your watch.

    On both iOS and Android, the Pushover device client does not actually perform the task of sending notifications to your Pebble watch. There is no Pushover app to run on the Pebble watch, but instead, the Pebble app running on your phone is responsible for communicating with your watch and forwarding notifications from other apps like Pushover.

    On Android, our Pushover device client is responsible for forwarding notifications to the Pebble app. If you are receiving notifications from Pushover on your phone but not on your Pebble watch (but you are receiving notifications from other apps like SMS), open the Pushover device client, go to Settings, and make sure "Display notifications on Pebble" is checked. Also make sure that your quiet hours are set properly, since notifications received during your quiet hours will not forward to your Pebble watch unless you enable the option in Settings.

    On iOS, our Pushover device client does not actually communicate with the Pebble app or your watch in any way. Notifications generated from Pushover are posted directly to your phone's Notification Center and the Pebble app is responsible for watching the Notification Center and forwarding new alerts to the watch. If you are receiving notifications on your Pebble watch from apps like SMS but not from Pushover, you may need to toggle Pushover in the Notification Center. If those steps do not work, unfortunately we are unable to provide any further assistance since our app does not actually communicate with the Pebble app or your watch. In this case, you will need to contact Pebble for support.

[Top]

Android


  1. How can I use Pushover message variables in Tasker?

    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:

    • %pushovertitle - The message title (may be blank)
    • %pushovermessage - The message body
    • %pushoverapplication - The name of the application that sent the notification
    • %pushoverurl - The supplementary URL (may be blank)
    • %pushoverurltitle - The supplementary URL title (may be blank)
    • %pushoverpriority - The message priority (-1, 0, 1, 2)

    For an example of using Pushover with Tasker, check out our demo.

    [Top]

  2. How can I delete all messages from a particular application at once, or all messages globally?

    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 (iPhone, iPad, iPod Touch)


  1. Why do Notification Center notifications only show Pushover's icon and not my app's icon?

    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]

  2. How can I delete all messages from a particular application at once, or all messages globally?

    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]

Desktop


  1. Where do I download Pushover for Desktop?

    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]

  2. Why do I not hear sounds with OS X notifications?

    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]

  3. I am not getting notifications on OS X after an update, how do I re-register my device?

    On OS X, 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 OS X 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 OS X 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 OS X 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 OS X device from the dashboard:

    $ sudo tail -f /Library/Logs/apsd.log
    

    [Top]

Licensing


  1. Why did I receive a notice that my Pushover app is not licensed?

    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]

  2. I purchased the app, but I still received a licensing notice or my device is disabled for licensing.

    If you have legitimately purchased the Pushover app for the platform you are using it on, but have received a licensing notice or your device was disabled for a licensing problem, this means your license was not able to be verified.

    On Android, please make sure the Google account setup on your device (not the e-mail address your Pushover account is registered to) is the same Google account used to purchase the app.

    On both iOS and Android, if you have previously installed a pirated/cracked version of Pushover, you must uninstall it completely and then install the app directly from the App Store/Google Play. Failure to uninstall the previous verison first will cause problems with the license verification and you may not receive automatic updates.

    If you have taken these steps and you are still receiving a licensing notice or your device is showing disabled for licensing on your dashboard, please contact us with the details of your problem and when you purchased the app.

    [Top]

  3. I can't make an in-app purchase through the App Store or Google Play; can I buy it another way?

    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]

  4. Do you offer a trial version of Pushover?

    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]

  5. I purchased Pushover for one platform and want to install it on another platform. Do I need to purchase it twice?

    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]

  6. My company would like to purchase a large number of licences for our employees or customers. Is there an easy way to do this?

    Depending on how you need to assign your licenses, 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.

    [Top]

  7. Can I use the Pushover logo or name in my library, application, or service?

    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]

Technical


  1. How do I get started sending Pushover notifications with the Pushover API?

    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]

  2. Can I e-mail notifications to my device?

    Yes, our e-mail gateway allows you to send e-mails to Your-Pushover-User-Key@api.pushover.net and have them be converted into Pushover notifications. You can find your user key and e-mail gateway address on your dashboard.

    You can set various options on your notification by changing the e-mail address that you send to. Each part will have its option (one letter), followed by an equal sign (=), and then the value. All parts are then appended to your user key and separated by plus signs (+). Currently available options:

    • a=app-token - A specific API Application Token, to have your message sent from that application. If not specified, e-mails will appear as from our E-mail Gateway. Messages sent through your specific application will count towards its monthly quota just like our HTTP API.
    • d=device-name - A specific device name to limit sending notifications to only that device, rather than all devices on your account.
    • p=priority - A message priority of -2, -1, or 1. Priority 2 (emergency-priority) messages are not supported through our e-mail gateway. Priority defaults to 0.
    • s=sound - A message sound to play rather than your device's default.
    • t=timestamp - A specific timestamp to show on the message, rather than the time parsed from the e-mail "Date" header. To always use the current time and ignore the e-mail header's timestamp, use t=0.

    For example, if your Pushover user key was u12345abcdef6789ghijklmnop0123 and you wanted to send a message only to your iphone device, with the sound gamelan, and a priority of -1, you would send an e-mail to:

    u12345abcdef6789ghijklmnop0123+d=iphone+s=gamelan+p=-1@api.pushover.net
    

    Options can be combined in any order, as long as the user key is first.

    Messages will be truncated to fit into our current message API limits to fit in a Pushover notification. HTML e-mails will attempt to be converted into plain text.

    Note: Due to delays in e-mail routing and spam filtering on mail relays between your system and Pushover's servers, as well as the lack of receipt confirmation, we do not recommend using our e-mail gateway for time-critical or sensitive Pushover notifications, such as those from network monitoring systems. Directly accessing our REST API over HTTPS is the most reliable and secure way of sending Pushover notifications.

    [Top]

  3. How are notifications stored and delivered?

    1. A server, application, or plugin sends a notification to our API over HTTPS (SSL), including its application key, a user or group key, and the message details.
    2. Our server queues the notification in a local database for reliability.
    3. Our server communicates with the appropriate push server (Google's, Apple's, or ours) over SSL and hands off the queued message. If successful, the message is marked as delivered in our database.
    4. Google's or Apple's push servers deliver the message to the end-user device over its proprietary, persistent SSL connection. Our Desktop push server delivers notifications to web browsers over our WebSocket connection.
      • On Android phones, the notification is received by the Pushover application, stored in its local database, and an alert is generated.
      • On iOS, if the Pushover application is running, the Pushover application stores the notification in its local database and an alert is generated. If Pushover is not running, iOS handles the notification and generates the alert. The message will not be received by the Pushover application until it is opened and can synchronize with the Pushover servers.
      • On Desktop browser devices, the notification is received by the Pushover web application, stored in its local database, and an alert is generated in the browser.
      • On Mac OS X desktops, the notification is received by Mac OS X and a notification is generated.
    5. When the Pushover device client is opened and has not synchronized recently (or a manual sync is requested), the device client communicates with the Pushover servers over SSL and downloads any new messages that were not received by push notification, usually due to transient network issues.
    6. Finally, the Pushover device client notifies the Pushover servers of the highest message ID that it has in its database that has been reliably received. The Pushover servers delete all messages up to that ID for storage and security reasons. At this point, the message is only existing on the user's device.

    Messages delivered to devices but not acknowledged will be automatically deleted from our servers after 21 days.

    [Top]

  4. How do I send multi-line notifications through the API?

    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]

  5. How do I get my app/website/service listed on Pushover's Public Applications page?

    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:

    • 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.
    • For externally hosted services, you must use one API token per application and you are responsible for purchasing additional capacity as needed. You may not register multiple API token to get around our message limits. For more information on this, see the next FAQ question.
    • Your Pushover integration must conform to our Pushover Logos and Usage guidelines.
    • 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.

    If your application conforms to these guidelines, you are eligible to have it listed on our Featured Public Applications page. To get started:

    1. 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.
    2. Send us a message and include:
      1. The application's API token
      2. The name of the author we should list on our apps page and an optional URL for the author (if separate from the URL to the application), and
      3. The URL to the webpage or application documentation that describes how the application integrates with Pushover.

    Once we have verified your Pushover integration, we will add it to our apps page and contact you.

    [Top]

  6. Should I include my application's API token in its source code?

    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]

  7. What are the IP addresses of Pushover's API so I can allow them in my firewall?

    As of November 17, 2014, the possible IP addresses for api.pushover.net are:

    108.59.13.232
    162.216.6.175
    2604:4500::1e0b (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]

API Libraries


  1. How do I send Pushover notifications in C?

    The 3rd party cpushover library written by Christian Bjartli is available. This library uses libcurl.

    [Top]

  2. How do I send Pushover notifications in C#/.NET?

    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 is available.

    [Top]

  3. How do I send Pushover notifications in Go?

    The 3rd party gopush package written by Kyle Isom is available, as well as the pushover package written by Grégoire Delattre.

    [Top]

  4. How do I send Pushover notifications in Haskell?

    The 3rd party hPushover package written by Wander Hillen is available.

    [Top]

  5. How do I send Pushover notifications in Java?

    The 3rd party pushover4j package written by Sean Scanlon is available.

    [Top]

  6. How do I send Pushover notifications in Lua?

    The 3rd party pushover-lua package written by Sven Andersson is available.

    [Top]

  7. How do I send Pushover notifications in Node.js?

    The 3rd party node-pushover package written by Sam Decrock and the 3rd party pushover-notifications package written by Aaron Bieber are both available via npm.

    [Top]

  8. How do I send Pushover notifications in Perl?

    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 SSL 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.

    [Top]

  9. How do I send Pushover notifications in PHP?

    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,
    ));
    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.

    [Top]

  10. How do I send Pushover notifications in Python?

    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.

    [Top]

  11. How do I send Pushover notifications in R?

    The 3rd party pushoverr R module written by Brian Connelly is available.

    [Top]

  12. How do I send Pushover notifications in Ruby?

    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.

    [Top]

  13. How do I send Pushover notifications in Rust?

    The 3rd party po Rust library written by Jordan Mulcahey is available.

    [Top]

  14. How do I send Pushover notifications from a Unix command line?

    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]

  15. How do I send Pushover notifications from a Windows command line?

    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 SSL support and run the "mk-ca-bundle" script to generate the CA bundle.

    curl -s \
      --cacert 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)
    

    [Top]

Security


  1. Who runs Pushover?

    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]

  2. Are messages encrypted?

    We use industry-standard SSL 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.

    Unfortunately due to limitations of the iOS push notification system, we are not able to implement actual message encryption, where messages are sent to our API encrypted by your server and then decrypted only by the device client configured with the encryption key. This may be an Android-only feature available at a later time.

    [Top]

  3. What is Pushover built on?

    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]

  4. How are my account password and other private information stored?

    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" 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.

    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.

    For security reasons, 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.

    [Top]

  5. How do I report a security problem or vulnerability?

    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]