coderef

Push messagesBaseline · Widely available

The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Mar 27, 2023. Widely available since Sep 27, 2025.

Browser support

DesktopChrome
1–49Not supported
50+Supportedsince Apr 13, 2016
Current: 155
Edge
12–16Not supported
17+Supportedsince Apr 30, 2018
Current: 154
Firefox
1–43Not supported
44+Supportedsince Jan 26, 2016
Current: 157
Safari
1–15.6Not supported
16+Supportedsince Sep 12, 2022
Current: 27
MobileChrome Android
18–49Not supported
50+Supportedsince Apr 13, 2016
Current: 155
Firefox Android
4–47Not supported
48+Supportedsince Aug 2, 2016
Current: 157
Safari iOS
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: PushEvent.

Feature detection

JS · check before using
if ("PushEvent" in globalThis) {
  // PushEvent is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (33). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
Permissions.permission_push43794617434617
PushEvent42174416424816.4
PushEvent.PushEvent42174416424816.4
PushEvent.data50174416504816.4
PushManager42174416424816.4
PushManager.getSubscription42174416424816.4
PushManager.permissionState44174416444816.4
PushManager.subscribe42174416424816.4
PushManager.supportedContentEncodings_static6017134166013416.4
PushMessageData50174416504816.4
PushMessageData.arrayBuffer50174416504816.4
PushMessageData.blob50174416504816.4
PushMessageData.bytes1321321281813212818
PushMessageData.json50174416504816.4
PushMessageData.text50174416504816.4
PushSubscription42174416424816.4
PushSubscription.endpoint42174416424816.4
PushSubscription.expirationTime60179616609616.4
PushSubscription.getKey42174416424816.4
PushSubscription.options54174416544816.4
Show 13 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
PushSubscription.toJSON42174416504816.4
PushSubscription.unsubscribe42174416504816.4
PushSubscriptionChangeEvent138✕1371613813716.4
PushSubscriptionChangeEvent.PushSubscriptionChangeEvent138✕13716.113813716.4
PushSubscriptionChangeEvent.newSubscription138✕1371613813716.4
PushSubscriptionChangeEvent.oldSubscription138✕1371613813716.4
PushSubscriptionOptions54174416544816.4
PushSubscriptionOptions.applicationServerKey54174416544816.4
PushSubscriptionOptions.userVisibleOnly5417✕1654✕16.4
ServiceWorkerGlobalScope.push_event40174416404816.4
ServiceWorkerGlobalScope.pushsubscriptionchange_event138✕✕16138✕✕
ServiceWorkerRegistration40174411.1404411.3
ServiceWorkerRegistration.pushManager40174416404816.4