The getBattery() method provides information about the system's battery. It returns a battery promise, which is resolved in a BatteryManager object providing also some new events you can handle to monitor the battery status. This implements the Battery Status API; see that documentation for additional details, a guide to using the API, and sample code.

Note: In some browsers access to this feature is controlled by the Feature-Policy directive battery.





Return value

A Promise which, when resolved, calls its fulfillment handler with a single parameter: a BatteryManager object which you can use to get information about the battery's state.


This method doesn't throw true exceptions; instead, it rejects the returned promise, passing into it a DOMException whose name is one of the following:


The User Agent does not expose battery information to insecure contexts and this method was called from insecure context.

Note: Old versions of some User Agents might allow use of this feature in insecure contexts.


No User Agent currently throws this exception, but the specification describes the following behaviors:

This document is not allowed to use this feature. For example, it might not be explicitly allowed or restricted via Feature-Policy battery feature.


This example fetches the current charging state of the battery and establishes a handler for the chargingchange event, so that the charging state is recorded whenever it changes.

let batteryIsCharging = false;

navigator.getBattery().then((battery) => {
  batteryIsCharging = battery.charging;

  battery.addEventListener('chargingchange', () => {
    batteryIsCharging = battery.charging;

For more examples and details, see Battery Status API.


Battery Status API
# dom-navigator-getbattery

Browser compatibility

BCD tables only load in the browser

See also