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.

API Rate Limits

Some API endpoints are rate limited per request. When the endpoint allows batching multiple pushes/updates in a single request, it is always recommended to include as many items as possible within each request to reduce the total number of requests sent.

EndpointDetails
Create notificationNo more than 6,000 requests per second per app.
Updating Tags/DevicesNo more than 1000 requests per second per app.
No more than 1 request per second per device.
Up to 100 modifications per request.
View notificationsNo more than 1 request per second per app.
Notification HistoryPlease keep number of parallel requests under 100 GB/file.

If you exceed an API rate limit, you will receive a HTTP 429response with an error message:

{
  errors: ['API rate limit exceeded.']
}

Included in the response will be a RetryAfter header, containing an integer value indicating how many seconds you should wait before retrying the request.

Application Rate Limits

Some limits apply per application regardless of the source of the request (API or Dashboard).

Create notification

Targeting Subscribed Users
In 15 minutes you may not send more messages than 10x your total subscribed user count. For example, if you have 1,000 subscribers, you cannot send 10,000 messages in 15 minutes. This means you cannot send 10 notifications to ALL your users in 15 minutes but you can send 10+ notifications to specific and targeted users in a deliberate way within 15 minutes.

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.

If you exceed an application rate limit, your app may be disabled. In this case an email will be sent to all App Administrators associated with the app, and a banner will be displayed in the Dashboard:

In most cases you can re-enable the app yourself by clicking the button in the dashboard banner.

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:

ScenarioRate 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 recipients 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 API limits are 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.