🔋 Battery Status Detector
Test the Battery Status API in your browser. Historically used for fingerprinting, this API is now deprecated in most modern browsers for privacy reasons.
Privacy Implications
The Battery Status API was historically used for fingerprinting. Even though battery level is shown as a percentage, combined with charging status and time remaining, it could create a unique signature to track users across websites. Modern browsers now block or limit this API to protect user privacy.
The Battery Status API allows websites to access information about the device's battery:
- Battery level - Percentage from 0 to 1 (0% to 100%)
- Charging status - Whether the device is plugged in
- Charging time - Estimated time until fully charged (in seconds)
- Discharging time - Estimated time until battery depletes (in seconds)
Browser Support History
- Firefox - Supported until 2016, then removed for privacy
- Chrome - Supported until 2019, then deprecated
- Safari - Never supported
- Edge (Chromium) - Deprecated since 2019
- Opera - Deprecated since 2019
The Battery Status API became a significant privacy concern because it enabled precise user tracking:
How Battery Data Was Used for Fingerprinting
- Unique Combinations: Battery level (0-100%) + charging time creates thousands of possible combinations
- Cross-Site Tracking: Users could be tracked across websites without cookies
- Short-Term Tracking: Battery values change slowly enough to track users for 30-60 minutes
- Combined Fingerprinting: Battery data enhanced other fingerprinting techniques
Real-World Abuse Examples
In 2015, researchers demonstrated that two websites could correlate battery levels to identify the same user visiting both sites. A user with battery at 47% and charging time of 1832 seconds would have the same values on both sites for several minutes, enabling cross-site tracking.
Browser Vendor Response
- Firefox (2016) - First to remove the API entirely
- Chrome (2019) - Deprecated the API, returns hardcoded values
- Safari - Never implemented the API
You can detect if the Battery Status API is supported in your browser:
Default Values in Blocked Browsers
Modern Chrome/Edge return these hardcoded values:
level: 1.0(100%)charging: truechargingTime: InfinitydischargingTime: Infinity
These values ensure existing code doesn't break while preventing fingerprinting.
Here's how to safely check battery status in 2025: