Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The permissionState() method of the PushManager interface returns a Promise that resolves to a DOMString indicating the permission state of the push manager. Possible values are  'prompt', 'denied', or 'granted'.

Note: As of Firefox 44, the permissions for Notifications and Push have been merged. If permission is granted for notifications, push will also be enabled.


PushManager.permissionState(options).then(function(PushMessagingState) { /* ... */ });


options Optional

An object containing optional configuration parameters. It can have the following properties:

  • userVisibleOnly: A boolean indicating that the returned push subscription will only be used for messages whose effect is made visible to the user.
  • applicationServerKey: A public key your push server will use to send messages to client apps via a push server. This value is part of a signing key pair generated by your application server and usable with elliptic curve digital signature (ECDSA) over the P-256 curve.


Promise that resolves to a DOMString with a value of 'prompt', 'denied', or 'granted'.


Push API
# dom-pushmanager-permissionstate

Browser compatibility

BCD tables only load in the browser