Apple Push Notification service

Apple Push Notification service (APNs), previously known as Apple Push Service (APS), is a platform notification service created by Apple Inc. that enables third party application developers to send notification data to applications installed on Apple devices. The notification information sent can include badges, sounds, newsstand updates, or custom text alerts. It was first launched with iOS 3 on June 17, 2009. APNs support for local applications was later added to the Mac OS X API beginning with the release of Mac OS X 10.7 ("Lion"). Support for website notifications was later added with the release of Mac OS X 10.9 ("Mavericks").

History
Apple announced the service on June 9, 2008 with an original stated release for that September; however, as stated by Scott Forstall at the iOS 3.0 preview event on March 17, 2009, the rollout was delayed after a decision to restructure the APNs for scalability purposes due to the allegedly "overwhelming" response to the announcement of the APNs. At both events, Forstall stated that push notifications better conserve battery than background processes (which are used in pull technology) for receiving notifications.

APNs was first launched together with iOS 3.0 on June 17, 2009. The release of iOS 5.0 included a Notification Center, adding support for receiving and reading local notifications in a single place.

APNs was also added as an API to Mac OS X 10.7 ("Lion") so that developers could begin updating their third-party applications and start utilizing the service. Support was later improved in OS X 10.8 ("Mountain Lion") with the introduction of a Notification Center. As with iOS 5.0, the improvement allowed users to manage and read their received notifications in a single location. The release of OS X 10.9 ("Mavericks") included Safari 7.0, which added support for accepting and receiving APNs notifications from websites that the user granted permission to.

In December 2023, concerns arose regarding a potential privacy and surveillance loopholes involving push notifications delivered through APNs. US Senator Ron Wyden revealed, through a letter to the Department of Justice, that both the US government and foreign law enforcement could demand user data from Apple related to push notifications.

Technical details
In 2014, the maximum size allowed for a notification payload sent through the binary interface was increased from 256 bytes to 2 kilobytes. In December 2015, a new HTTP/2 provider API was released by Apple, effectively replacing the now-legacy binary interface. The maximum notification payload size allowed using the HTTP/2 API is 4 kilobytes. Apple shut down the legacy binary API at the end of March 2021.

The HTTP/2 provider for APNs uses TCP port 443 as the main port of communication, but developers are also allowed to use TCP port 2197 if outbound access to port 443 is blocked by firewalls.