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

The PermissionStatus interface of the Permissions API provides the state of an object and an event handler for monitoring changes to said state.

Properties Read only

Returns the name of a requested permission, identical to the name passed to Permissions.query.

PermissionStatus.state Read only

Returns the state of a requested permission; one of 'granted', 'denied', or 'prompt'.

PermissionStatus.statusRead only

Returns the state of a requested permission; one of 'granted', 'denied', or 'prompt'. Later versions of the specification replace this with PermissionStatus.state.

Event Handler


An event called whenever PermissionStatus.status changes.


navigator.permissions.query({name:'geolocation'}).then(function(permissionStatus) {
  console.log('geolocation permission status is ', permissionStatus.state);
  permissionStatus.onchange = function() {
    console.log('geolocation permission status has changed to ', this.state);


# permissionstatus-interface

Browser compatibility

BCD tables only load in the browser