Choose: Simple Style

Fingerprinting Battery Status API



  • $ fingerprint@info:~ echo $BATTERY-STATUS-API
  • Name:

    Battery Status API

    Original feature purpose:

    The Battery Status API provides information about the system's battery charge level and notifies you about events which are sent when the battery level or charging status changes. This can be used to adjust your app's resource usage to reduce battery drain when the battery is low, or to save changes before the battery runs out in order to prevent data loss. For more details see, e.g., MDN web docs


    The original W3C Battery Status API specification says in Section 4:

    'The information disclosed has minimal impact on privacy or fingerprinting, and therefore is exposed without permission grants.'

    Battery readouts provide the following information:

    • the current level of battery (format: 0.00-1.0, for empty and full, respectively)
    • time to a full discharge of battery (in seconds)
    • time to a full charge of battery, if connected to a charger (in seconds)

    (updated whenever a new value is supplied by the operating system)

    The frequency of battery status changes could lead to behavioral analysis, and battery readouts can serve as a short-lived identifier, which could recreate other identifiers.
    Any web page is allowed to retrieve this information without user knowledge or consent.




    js, js-attrib, html5, hardware-dependent, software-dependent, short-living, fixed


    • Access to Battery Status API needs user permission
      Description: No web page should be able to read battery status without the consent of the user.
    • From Firefox 52: Battery API is removed
      Info: Due to privacy concerns, support for the Battery Status API has been dropped.


  • $ fingerprint@info:~ run battery-status-api-demo
  • Demo:

    >> Jump to Battery Status API Demo <<

Battery Status API is still supported on your platform

Charging: ---
Time to charge: ---
Time to discharge: ---
Battery Level: ---
Tracking status changes: ---