Rate Limits

Safety measures for end users

Our rate limits are extremely high and designed to trigger as a safety measure when using the OneSignal API to prevent the delivery of excessive messages. They should not affect the normal use of the OneSignal platform.

What are the Rate Limits?

When sending push through our API, it is always recommended to include as many devices as possible within each request.

Endpoint

Details

Create notification

Requests Per Second

6,000 requests/second for all paid plans.
150 requests/second for free plans.

Create notification

Targeting Subscribed Users

In 15 minutes you may not send more messages than 10x your total subscribed user count.

This is an extremely high limit meant to protect customers from accidentally messaging all of their users in a loop, and should not affect the normal usage of OneSignal.

Updating Tags/Devices

No more than 1000 requests per second and 100 tags per request.

View notifications

1 request per second with a 10/second burst.

RateLimit* headers will indicate how much quota is left at the time of the request. For example:

ratelimit-limit: 10
ratelimit-remaining: 9
ratelimit-reset: 1633654403

Notification History

Please keep number of parallel requests under 100 GB/file.

If you need help re-enabling your app, contact support directly or email [email protected] for assistance.

How do I know if I reached a limit?

If you hit the Requests Per Second limit, our API will return an HTTP 429 response. After about a minute, you will not get blocked on new API calls.

If you hit the Targeting Subscribed Users limit, we will inform you in 3 ways. In extremely rare cases, OneSignal may automatically disable an app due to a rate limit.

  • An email will be sent to all App Administrators associated with the app.
  • An error will be shown in the API response:
{
  errors: ['API rate limit exceeded. See the RateLimit response headers for more details.']
}
  • 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.
22262226

If you need help re-enabling your app, contact support directly or email [email protected] for assistance.

Scenarios where the Targeting Subscribed Users Limit Triggers

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

Scenario

Rate limit reached?

Sending 1 notification to 1,000 recipients?

No, rate limit not reached.

If your app has 1000 messageable users, you can send up to 9,999 notifications within a 15 minute period. However, sending to one more recipient would trigger the rate limit.

Sending 10 notifications to 1,000 recipient each ?

Yes, rate limit is reached.

The rate limit is 10 x messageable users within 15 minutes.

10 x 1,000 = 10,000 you should not be sending 10 notifications per user within 15 minute periods.

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

Yes, rate limit is reached.

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.

FAQ

Do apps get disabled if the Requests Per Second limit is reached?

No, they will be allowed to send again after some time passes.

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. If you need help re-enabling your app, contact support directly or email [email protected] for assistance.

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.

If you need help re-enabling your app, contact support directly or email [email protected] for assistance.

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.

If you need help re-enabling your app, contact support directly or email [email protected] for assistance.


Did this page help you?