Support

We're here for you

Refer to the FAQ for a quick answer to your inquiry and contact us via e-mail or phone in case you still need assistance

E-mail Support

Contact us at sales@pushy.me for sales inquiries and support@pushy.me for technical support

Phone Support

Give us a call at +1 415 906 5305 for sales and technical support, available Monday to Friday from 9AM to 5PM EST

Documentation

Check out our developer-friendly documentation for detailed steps on how to integrate Pushy within your app

Frequently Asked Questions

  • What is Pushy?

    Pushy is a highly-reliable push notification gateway, perfect for time-sensitive, mission-critical applications.

  • Is there a free trial?

    Absolutely! Our free trial grants you full access to our dashboard, SDKs, and APIs, but limits your account to 100 devices.

    To lift the device limit, simply add a payment method to your account.

  • How does Pushy work?

    Our SDK assigns a unique device token to each user that installs your app and registers for push notifications. This token can be used to send push notifications to the device and should be stored in your backend database, along with other information about the user.

    To send push notifications to devices, your backend server simply needs to send a web request to our Send Notifications API with the device token(s) and push payload. Your app can then display a system notification or execute other app-specific logic to handle the notification.

  • Does Pushy work in China?

    Absolutely! Since Google Cloud Messaging and Firebase Cloud Messaging are blocked in China, and because most phones sold in China lack the Google Mobile Services framework, lots of apps utilize Pushy to deliver notifications reliably to devices in China.

  • What is MQTT and what are its benefits?

    MQTT is an extremely lightweight, battery-friendly messaging protocol we utilize at Pushy to deliver push notifications to Android devices. It allows us to preserve precious device resources such as network bandwidth and battery power as we maintain a background connection with every device that installs your application.

  • How is Pushy different from GCM / FCM?

    Pushy is a reliable Google Cloud Messaging / Firebase Cloud Messaging alternative since it is not plagued by the reliability issues developers face with production GCM / FCM deployments, such as registration failures (due to the infamous SERVICE_NOT_AVAILABLE exception), unexpected delays (due to unrealistic heartbeat intervals), message throttling, and overall unreliable service.

    Read more about GCM / FCM reliability issues here.

  • Are there any limits on push notification payload size?

    Yes, each push notification is limited to 4kb of stringified JSON payload data.

    Need to send more than 4 kilobytes? Contact us.

  • Do you persist notifications in case devices are offline?

    Absolutely, we persist notifications for offline devices which are delivered as soon as they reconnect, in the order in which they were sent.

    This behavior can be configured on a per-notification basis using the time_to_live parameter in the Send Notifications API.

  • How can I send notifications to devices in Doze mode?

    On devices running Android 6.0+, Doze mode terminates all background connections when the phone is idle and not being charged, including the background connection to our servers.

    As soon as the device is moved or awoken by the user, background connections are restored and any pending notifications will be delivered within seconds, providing they have not expired yet.

    To send notifications to devices in Doze mode, your app can declare the REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permission in its AndroidManifest.xml and display a system dialog that asks users to whitelist your app from battery optimizations without leaving the app.

    This will effectively keep the background connection to our servers active and devices will be able to receive notifications even in Doze mode.

  • How do you identify devices uniquely across reinstalls?

    On Android, our SDK persists device tokens in both your app's SharedPreferences (which are cleared when your app is uninstalled) and in the device's external storage (which is persisted between app reinstalls) depending on whether your app has requested the WRITE_EXTERNAL_STORAGE permission.

    Similarly on iOS, our SDK persists device tokens in both your app's UserDefaults (which are cleared when your app is uninstalled) and in the iOS Keychain (which is persisted between app reinstalls).

    The next time your app is reinstalled on the same device, our SDK will attempt to determine its previous device token, instead of generating a new one and charging you twice for the same physical device.

  • What permissions does the Pushy SDK for Android require?

    The following permissions are required by our SDK:

    android.permission.INTERNET
    android.permission.WAKE_LOCK
    android.permission.ACCESS_NETWORK_STATE
    android.permission.RECEIVE_BOOT_COMPLETED 
    android.permission.WRITE_EXTERNAL_STORAGE

    Note: The WRITE_EXTERNAL_STORAGE permission is optional but highly recommended. It is only necessary for persisting device tokens in the external storage so that our SDK can keep track of each device's unique token for when your app is reinstalled on that same device. If this permission is not requested by your app, our SDK will persist the device token only within the SharedPreferences which are cleared when your app is uninstalled.

  • Does Pushy depend on Google Mobile Services on Android?

    No, the Pushy SDK for Android works on any Android 2.1+ device with Internet connectivity.

    Lots of apps utilize Pushy to add push notification support for Amazon Kindle, CyanogenMod, and other AOSP devices that lack the Google Mobile Services framework.

  • If my app already uses GCM or FCM, how easy is it to migrate?

    We designed Pushy with Google Cloud Messaging / Firebase Cloud Messaging in mind to make migration as easy as possible.

    Please refer to our detailed migration guides to get started:

    Migrating from GCM
    Migrating from Firebase

  • What ports need to be open for Android devices to connect to Pushy?

    Currently, our SDK requires outgoing ports 443 and 1883 to be open for devices to register for and receive push notifications.

    We may change this in the future.

  • What is the minimum Android SDK version supported by the Pushy SDK?

    Currently, our SDK supports minSdkVersion 7 (Android 2.1+).

  • Are there any limits on the number of requests that can be sent to your API?

    Yes, we currently limit the number of requests to 800 per minute (about 13 per second).

    Need more? Contact us.

  • Do you store the push notification payload on your servers?

    Yes. Only after all devices acknowledge that they received a push notification do we delete it, unless its time_to_live expires before that.

    If you have data privacy concerns, you can avoid sending the sensitive data through us, and instead, either send a unique database identifier (so your app can fetch the sensitive data from your servers using this identifier) or simply send an empty push notification to wake your app so it can fetch updates from your own servers instead.

    You can also choose to encrypt the push notification payload on your servers and decrypt it within your app, using AES-256 for example.

  • Can I self-host Pushy on my own infrastructure?

    Absolutely! Contact us to discuss this type of deployment.

  • What is your technology stack?

    Node.js, MongoDB, MQTT, Koa.js, and React on Amazon Web Services. Curious to learn more? Get in touch with us.

  • How does billing work?

    Once you set up a payment method, we'll automatically charge your credit card on the first of every month. The amount charged will be based on the number of active devices in your account during the previous month. The invoice is automatically made available for download in the dashboard.

    Credit card information is stored and processed securely by Stripe.

  • Is Pushy scalable?

    Absolutely, we automatically scale our backend infrastructure to support your growing user base.

    If you anticipate a sudden burst of traffic to your app, please let us know in advance, so we can provision the necessary compute capacity ahead of time. This will enable us to support the sudden burst of traffic seamlessly.

Still haven't found what you're looking for?
(contact us)