Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The getKey() method of the PushSubscription interface returns an ArrayBuffer representing a client public key, which can then be sent to a server and used in encrypting push message data.
getKey(name)
nameA string representing the encryption method used to generate a client key. The value can be:
p256dhAn Elliptic curve Diffie–Hellman public key on the P-256 curve (that is, the NIST secp256r1 elliptic curve). The resulting key is an uncompressed point in ANSI X9.62 format.
authAn authentication secret, as described in Message Encryption for Web Push.
An ArrayBuffer or null if no public key can be found.
reg.pushManager.getSubscription().then((subscription) => {
// Enable any UI which subscribes / unsubscribes from
// push messages.
subBtn.disabled = false;
if (!subscription) {
console.log("Not yet subscribed to Push");
// We aren't subscribed to push, so set UI
// to allow the user to enable push
return;
}
// Set your UI to show they have subscribed for
// push messages
subBtn.textContent = "Unsubscribe from Push Messaging";
isPushEnabled = true;
// initialize status, which includes setting UI elements for subscribed status
// and updating Subscribers list via push
const endpoint = subscription.endpoint;
const key = subscription.getKey("p256dh");
const auth = subscription.getKey("auth");
// …
});
| Specification |
|---|
| Push API> # dom-pushsubscription-getkey> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
getKey |
42 | 17 | 44 | 29 | 16Notifications are supported on macOS Ventura and later. |
42 | 48 | 29 | 16.4Notifications are supported in web apps saved to the home screen. |
4.0 | No | NoNotifications are supported in web apps saved to the home screen. |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PushSubscription/getKey