Documentation on APNS Live Activity Broadcast API throttle limit

Hi Team

We are building a live activity feature for our app. While using the APNS broadcast API (https://api.push.apple.com:443/4/broadcasts/apps/), we are getting throttled. The updates are infrequent (sport games) and yet we are facing this issue. Our understanding was that the throughput is quite high but there is no documentation on the actual limitations. Furthermore, all of our updates are using a priority of 5. We have currently configured retry with exponential backoff and jitter but we would like to understand the APNS throttle limit for live activity broadcast.

  1. Is the limit per channel id or at API level?
  2. What is the hard limit for the API request per seconds?
  3. Can we request increase to the API rate limit?

Thanks for the interesting post. I actually have more questions than answers to find out if you are talking about push notifications rates and what limits are you getting. Do you have any logs to show the numbers you are hitting?

While those limit are not publish the exact broadcast limit, for standard Live Activities, the guideline is generally no more than one update per second per activity. If you exceed this for a single channel, APNs will drop or throttle requests for that specific channel I believe.

The limits are dynamic and calculated based on several factors. The system is designed to scale automatically, and developers are expected to handle limits programmatically by optimizing their connection architecture.

If you are broadcasting updates for multiple games at the exact same time, you might be bottlenecking a single connection.

Upon receiving a 429 response, parse the JSON response body. APNs typically includes a reason key, which in your case is, I believe, TooManyRequests. Maintain a log of these requests with a count to monitor your usage and ensure you do not exceed the limits. Additionally, keep logs for your push and update tokens, and utilize broadcast as much as possible. Optimize your processes and maintain logs of all relevant limits.

Hope this helps, but you can't request an increase of the API rate limit.

Albert
  Worldwide Developer Relations.

Yes, I have logs showing that we are indeed getting TooManyRequests. This is specifically for the live activity broadcast API and not for the push notification. We have concurrent games happening around the same time and i believe we do not send more than one update per channel per second.

Is there a recommendation on number of open connection and keep-alive settings for APNS broadcast?

I will get more details on the rate limit that we are seeing on our end.

Here is some more data regarding the throttling grouped by hour:

---
| day | hour | ThrottleCount |
| --- | --- | --- |
| 2026-05-27 00:00:00.000 | 2026-05-27 03:00:00.000 | 1 |
| 2026-05-27 00:00:00.000 | 2026-05-27 02:00:00.000 | 25 |
| 2026-05-27 00:00:00.000 | 2026-05-27 01:00:00.000 | 16 |
| 2026-05-25 00:00:00.000 | 2026-05-25 02:00:00.000 | 26 |
| 2026-05-25 00:00:00.000 | 2026-05-25 01:00:00.000 | 3 |
| 2026-05-25 00:00:00.000 | 2026-05-25 00:00:00.000 | 3 |
---

Thanks for the post. What do you mean on open connections? Open channels? Open Live Activities?

APNs expects you to maintain persistent connections rather than opening and closing them per request.

Using your words depending what is a connection, are you relying on a single connection? Because establishing a TLS connection to APNs is computationally expensive, you want to keep your pooled connections alive as long as possible. Are you creating multiple channels or reusing the channels?

Albert
  Worldwide Developer Relations.

I mean TLS connection with APNS. We have multiple connection with keep-alive set to 10 mins. Reg channels, we have one channel per game. We are doing max 8-9 updates per min per channel occasionally (game clock plus score updates).

Documentation on APNS Live Activity Broadcast API throttle limit
 
 
Q