As your user base expands, so does the volume and variety of push notifications you need to send. Whether it’s transactional alerts, updates, or personalized messages, publishing notifications for thousands - or even millions - of users can quickly become a bottleneck. The more you grow, the more important it becomes to have a scalable, efficient push strategy.
Now, we’re excited to introduce the batch push API: a new, more scalable way to publish distinct push notifications to thousands of devices or browsers in a single API request.
The challenge: direct publishing at scale
Ably offers two core approaches for publishing push notifications:
- Publishing via channels, where you can broadcast a push notification to all devices subscribed to a channel; and
- Direct publishing, where you can target specific devices, client IDs, or user groups individually via REST API calls.
However, when sending a large number of direct push notifications - each potentially with its own unique payload - the process involved issuing many separate API calls. At scale, this fragmented sending model became a bottleneck, affecting both publish throughput and overall system latency.
We needed a better way for developers to deliver a high volume of distinct notifications efficiently, without compromising on performance.
The solution: the new batch push API
The batch push API allows you to publish up to 10,000 targeted push notifications in a single request.
Instead of sending individual requests for each device or user, you can now aggregate all your notification payloads and recipient details into one call. The result: faster delivery, higher throughput and lower network overhead.
The batch push API is available via REST at:
POST rest.ably.io/push/batch/publish
The request body is an array of objects, each specifying a recipient (or list of recipients) and a payload for that notification.
Example payload
[
{
"recipient": {
"deviceId": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
},
"payload": {
"notification": {
"title": "Message 1",
"body": "Example push notification from Ably."
}
}
},
{
"recipient": [
{ "clientId": "client-1" },
{ "clientId": "client-2" }
],
"payload": {
"notification": {
"title": "Message 2",
"body": "Example push notification from Ably."
}
}
}
]
Each recipient and payload follows the same structure you already use for single push notifications, making it simple to adopt the batch flow with minimal changes to your existing code.
Why use batch push?
By consolidating multiple push notifications into a single API request, you can:
- Reduce latency and network overhead: Fewer requests mean faster end-to-end delivery times.
- Improve throughput: Push larger notification volumes without worrying about request limits.
- Simplify application logic: Aggregate notification sends into a more predictable, maintainable flow.
- Scale reliably: Support growing user bases without operational bottlenecks or infrastructure tweaks.
If you're building high-scale realtime applications — whether it’s a use case like group messaging, sports alerts, live updates, or fan engagement experiences — batch push helps you move faster and deliver a better user experience.
Get started with batch push
The batch push API is now available in Ably Pub/Sub. Check out our docs for full API details and example payloads. Sign up for Ably to try it today.