OneSignal Help & Documentation

Welcome to the OneSignal New IA developer hub. You'll find comprehensive guides and documentation to help you start working with OneSignal New IA as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    Discussions

Rate Limits & Disabled Apps

Safety measures for end users

In extremely rare cases, OneSignal may automatically disable an app due to a rate limit. The rate limit is meant to trigger as a safety measure in case customers accidentally make an error when integrating with the OneSignal API that causes excessive notifications. Rate limiting is designed solely as a solution to prevent end users from getting spammed with notifications that the customer did not know they were sending, and is not intended to affect customers in other cases.

How do I know if my app is disabled?

When apps reach the rate limit, there are three ways that customers are informed.

First, any email accounts associated with the app will receive an email that says the app has been disabled.

Second, an alert will appear as follows within All Apps:

Third, an alert banner will appear above the interface anywhere in the app's OneSignal dashboard, which also includes a button to re-enable the app.

How does rate limiting work?

For an app to trigger the rate limit and become disabled, the total number of recipients for notifications sent in a 15-minute period must equal or exceed ten times the number of messagable users in the app. Further, the rate limit only applies to apps with at least 1,000 messagable users.

📘

Messagable users are users in an app that can receive push notifications. This excludes users that have a) unsubscribed from or otherwise disabled push notifications, b) uninstalled the app, or c) cleared their browser settings.

Scenarios where rate limiting triggers

The following are scenarios where rate limiting may or may not be triggered, based on an app with exactly 1000 messagable users:

Scenario

Rate limit reached?

Sending 1 notification to 1000 recipients?

No.

Up to 8 more notifications to 1,000 recipients each and 1 more notification to 999 recipients are allowed.

Sending 9,999 notifications to 1000 recipient each?

No.

However, sending to one more recipient would trigger the rate limit.

Sending 10,000 notifications to 1 recipient each in a 15-minute period?

Yes.

Ten times the number of messageable recipients have been delivered to.

Sending 10 notifications to 1,000 recipients each?

Yes.

Ten times the number of messageable recipients have been delivered to.

Sending 9 notifications to 1,000 recipients each in a 14-minute period, and then sending 1 notification to 1,000 recipients after 1 minute?

No.

The last notification is counted using a new 15-minute window.

Sending 9 notifications to 1,000 recipients each in a 14-minute period, and then sending another 9 notification to 1,000 recipients after 1 minute?

No.

The 15-minute window is static and does not roll over from minute to minute.

Will I be notified when my app is disabled?

Yes, an email is sent to all app administrators any time an app is disabled or re-enabled with the date and time each event occurred.

Where can I find my app's messageable user count?

The app index page on the dashboard shows the messageable user count.

When will my app be automatically re-enabled?

Apps are not automatically re-enabled.

Instead, you can manually re-enable them from our dashboard. Be sure to check your app for any errors that caused it to exceed our rate limit.

How can I manually re-enable my app?

First, please check your code to make sure there aren't any bugs that would cause a large increase in the number of sent notifications.

When you've finished reviewing your code for bugs, re-enable the app by logging into our dashboard, visiting any page inside the app, and click the link on the top red notice.

Updated 12 months ago


Rate Limits & Disabled Apps


Safety measures for end users

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.