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 or website?
    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 and/or is showing as "Offline" on the dashboard?
    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 am I receiving the same notification multiple times?

  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?
    3. Why do notifications show on Apple Watch with a full-screen icon?
    4. Why can't Pushover play custom notification sounds?

  5. Desktop
    1. Where do I download Pushover for Desktop?
    2. Why do I not hear sounds with macOS notifications?
    3. I am not getting notifications on macOS after an update, how do I re-register my device?
    4. I am unable to open the client site in my browser, how can I clear the local database of messages?

  6. E-Mail
    1. How can I e-mail notifications to my device?
    2. Why are the times shown on notifications from the E-Mail Gateway incorrect?
    3. Why don't I receive the confirmation e-mail to my Hotmail/Outlook.com/Live.com address?

  7. Licensing
    1. Why did I receive a notice that my Pushover app is not licensed?
    2. I purchased the app, but my device still shows I am in a trial period or my device was 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 licenses 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?

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

  9. 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 in Visual Basic for Applications (VBA)?
    15. How do I send Pushover notifications from a Unix command line?
    16. How do I send Pushover notifications with an attachment from a Unix command line?
    17. How do I send Pushover notifications from a Windows command line?

  10. Security
    1. Who runs Pushover?
    2. Are messages encrypted?
    3. What is Pushover's privacy policy?
    4. What is Pushover built on?
    5. How are my account password and other private information stored?
    6. How can I enable two-factor authentication (2FA) on my account?
    7. 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. Launch 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 Pushover notifications to your devices.
    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) Some applications require you register for your own API token and paste it into the application. That can be done here, or by following the link in the application to easily clone it.
    6. (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 delivered 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 using our API. Examples in various programming languages can be found here in our FAQ.

    [Top]

  2. How much does Pushover cost?

    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]

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

    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]

  4. Does Pushover use SMS/Text Messages?

    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]

  5. What platforms does Pushover support?

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

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

    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]

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

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 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:

    1. Verify the Device Is Enabled
      Visit your dashboard and re-enable the device if it is listed as disabled under Your Devices. On the device, switch away from the Pushover app to your home screen, 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. Verify That Notifications Are Not Muted
      Open the notification settings on your device and make sure that its Do Not Disturb mode is not enabled, and that notifications are enabled for the Pushover app.

    3. Disable Notifications, Restart the Device, then Re-enable Notifications
      Often times notifications stop working because of a problem on the device, unrelated to any specific app. Restarting the device can easily fix this. In your device's main settings app, disable notifications for the Pushover app, then hold down the power button until you see a prompt to power off the device, then select it and power it back on. Finally, re-enable notifications in the system settings for the Pushover app, then open the Pushover app again. With the screen off/locked, try sending a test message from your dashboard.

    4. 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, WhatsApp, and SMS/Messaging use their own notification delivery mechanisms.) On Android, you can use a 3rd party test app like Push Notification Tester to verify that push notifications work on your device.

    5. Verify Device Settings
      • iOS (iPhone, iPad, iPod Touch)
        1. Verify Notification Settings
          Open the main Settings app on your device, then tap on Notifications. Ensure that Pushover is listed and is not set to Off. Tap on Pushover and make sure that Allow Notifications is enabled. You will most likely want Show on Lock Screen to be enabled as well.

      • Android
        1. Disable Wi-Fi Sleep Optimization
          Android has a feature that can put the Wi-Fi radio into a very low power mode to conserve battery power. Unfortunately this feature does not work very well in all environments, which can cause your device to go completely offline while its screen is off instead of waking up when it has new notifications pending. To disable this feature, open the system Settings app, then Wi-Fi, then press the Menu button, then Advanced, and set "Keep Wi-Fi on during sleep" to "always".

        2. Disable Battery Optimizations
          Some phone vendors that ship with customized versions of Android have aggressive battery optimization mechanisms that kill or prevent the startup of background services which can affect Pushover's ability to receive push notifications. You will need to disable these battery optimizations for the Pushover app:
          • Huawei
            Mark Pushover as a Protected App by opening the System Settings, then Advanced Settings, then Battery Manager, then Protected Apps, and enable Pushover to run when the screen is off.
          • Lenovo
            Enable auto-start for Pushover by opening the Settings app, then Power Manager, then Background App Management, and make sure Pushover is enabled.
          • OnePlus
            Enable auto-launch for Pushover by opening the Settings app, then Apps, then the gear icon, then Apps Auto-launch, and make sure Pushover is enabled. Also disable battery optimization by opening the Settings app, then Battery, then Battery Optimization, find the Pushover app, and make sure it is not "optimized".
          • Oppo
            Add Pushover to the list of allowed start-up apps by opening Security Center, then Privacy Permissions, then Startup Manager, and allow Pushover.
          • Samsung
            Disable battery optimization for Pushover by opening the Settings app, then Apps, then the menu button in the corner, then Special Access, then Optimize Battery Usage. Tap on "Apps not optimized", then switch it to all apps and then switch off battery optimization for Pushover.
          • Xiaomi
            Enable autostart for Pushover by opening the Security app, then tap on Permissions, then Autostart, and make sure Pushover is enabled.

          If your vendor is not listed here or the instructions did not work, you may need to look around in the system settings or the vendor's proprietary manager applications to determine how to flag the Pushover application as "protected" or exempt from these battery optimizations. Additional information may be available on your phone vendor's support website.

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

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


    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. Further Steps
      If you are still not receiving push notifications in Pushover but are in other apps, please proceed to the next question for instructions on reinstalling the app.

    [Top]

  3. Why did my device get disabled and/or is showing as "Offline" on the dashboard?

    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:
    1. Uninstall the Pushover app again, then turn off the device completely (not just reboot) and turn it back on.
    2. Open the Settings app, then under General, Date & Time, uncheck "Set Automatically" and set the date ahead two days.
    3. Turn the device off completely again and turn it back on.
    4. Install the Pushover app from the App Store, and upon first launch you should again see the prompt to allow push notifications. Allow it, then log into your account and re-register your device.
    5. Now you can go back into the Date & Time settings and re-enable 'Set Automatically'.

    [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. 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]

  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.

    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]

  6. Why am I receiving the same notification multiple times?

    This situation often occurs from misconfigured 3rd party software that sends messages through our API.

    • Emergency-priority Messages

      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.

    • Duplicate Instances

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

    • Multiple E-mails

      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.

    [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]

    3. Why do notifications show on Apple Watch with a full-screen icon?

      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]

    4. Why can't Pushover play custom notification sounds?

      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]

    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 macOS after an update, how do I re-register my device?

      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]

    4. I am unable to open the client site in my browser, how can I clear the local database of messages?

      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.

      [Top]

    E-Mail


    1. How can I e-mail notifications to my device?

      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]

    2. Why are the times shown on notifications from the E-Mail Gateway incorrect?

      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]

    3. Why don't I receive the confirmation e-mail to my Hotmail/Outlook.com/Live.com address?

      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]

    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 my device still shows I am in a trial period or my device was disabled for licensing.

      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]

    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 licenses for our employees or customers. Is there an easy way to do this?

      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:

      • 1 to 19 licenses - $4.99 USD each
      • 20 to 99 licenses - $4.50 USD each
      • 100 to 499 licenses - $4.25 USD each
      • 500 and up licenses - $4.00 USD each

      [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. 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]

    3. 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]

    4. 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]

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

      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]

    6. How are notifications stored and delivered?

      1. A server, application, or plugin sends a notification to our API over HTTPS (TLS), 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 TLS 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 TLS 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 macOS desktops, the notification is received by macOS 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 TLS 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 concerns. At this point, the message exists only on the user's device.

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

      [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, and the NPushOver package written by Rob Janssen are 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, the pushover-notifications package written by Aaron Bieber, and the chump package written by Michael Squires are all 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 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.

      [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,
        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.

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

      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]

    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 in Visual Basic for Applications (VBA)?

      The 3rd party pushover-vba module written by Mauricio Arieira is available.

      [Top]

    15. 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]

    16. How do I send Pushover notifications with an attachment from a Unix command line?

      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]

    17. 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 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]

    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 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]

    3. What is Pushover's privacy policy?

      For the full details of our privacy policy, see our privacy page.

      [Top]

    4. 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]

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

      [Top]

    6. How can I enable two-factor authentication (2FA) on my account?

      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]

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