The requestPermission() method of the Notification interface requests permission from the user for the current origin to display notifications.

Note: This feature is not available in SharedWorker


The latest spec has updated this method to a promise-based syntax that works like this:

Notification.requestPermission().then(function(permission) { ... });

Previously, the syntax was based on a simple callback; this version is now deprecated:



callback Optional Deprecated since Gecko 46
An optional callback function that is called with the permission value. Deprecated in favor of the promise return value.


A Promise that resolves to a DOMString with the permission picked by the user. Possible values for this string are granted, denied, or default.


The following snippet requests permission from the user, then logs a different result to the console depending on the users' choice.

Notification.requestPermission().then(function(result) {
  if (result === 'denied') {
    console.log('Permission wasn\'t granted. Allow a retry.');
  if (result === 'default') {
    console.log('The permission request was dismissed.');
  // Do something with the granted permission.


Specification Status Comment
Notifications API Living Standard Living standard

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support46 ?47 No40 ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No46 ? Yes40 ? ?

See also

Document Tags and Contributors

Last updated by: fscholz,