Hardware Privacy Scanner Active

Battery Leak Test
Free Battery Status API Privacy Check

Run our free battery leak test to find out if your browser exposes your battery level, charging state, and discharging time through the Battery Status API. This browser battery info leak creates a unique digital footprint that websites use for device tracking and cross-browser tracking — even behind VPNs and incognito mode. Our battery API privacy test shows exactly what data your browser reveals.

Quick Answer: What Is a Battery Leak Test?

A battery leak test checks if your browser exposes hardware information through the JavaScript navigator.getBattery() API. Websites can read your exact battery level, charging state, and discharging time — creating a unique fingerprint for battery status API fingerprinting. This device tracking method works without cookies, survives incognito mode, and bypasses VPNs because the data comes from your local hardware, not the network.

Battery Status API Privacy Test

Click the button below to check if your browser leaks battery information that can be used for device tracking and browser fingerprinting.

Jessica Wright, Cybersecurity Threat Researcher at TrustMyIP
Written & Verified By

Jessica Wright

Cybersecurity Threat Researcher

Jessica specializes in browser fingerprinting, hardware side-channel forensics, and data privacy research. She helps privacy-conscious users understand how HTML5 APIs expose device information and how to protect against cross-browser tracking techniques.

View All Articles by Jessica Wright

What Is a Battery Leak Test and Why Should You Care?

A battery leak test checks whether your browser exposes hardware battery information through the JavaScript Battery Status API. This API — accessed via navigator.getBattery() — gives websites four pieces of data: your exact battery level (as a decimal like 0.6789), your charging state (true or false), your discharging time (seconds until empty), and your charging time (seconds until full).

Individually, these data points seem harmless. But combined, they create a surprisingly unique digital footprint. In 2015, researchers proved that the precise battery level plus discharging time could identify a device across different websites — even when the user cleared cookies, used incognito mode, or connected through a VPN. This technique is called battery status API fingerprinting, and it remains one of the most effective cross-browser tracking methods available.

According to Wikipedia's article on device fingerprinting, hardware-based fingerprinting techniques like battery status tracking are particularly dangerous because they persist across browsing sessions and cannot be cleared by the user — unlike cookies or local storage.

Key Fact: The Battery Status API reports your battery level as a double-precision floating-point number (e.g., 0.6789123). Combined with discharging time in seconds (e.g., 14,567s), this creates approximately 14 million possible unique combinations — enough to identify your device among millions of visitors.

How the Battery Status API Works: Technical Breakdown

Understanding how battery status API fingerprinting works helps you appreciate the privacy risk. The API is a standard HTML5 API that any website can call through JavaScript without asking for your permission — no popup, no consent dialog, no notification.

The navigator.getBattery() Call

When a website runs navigator.getBattery(), the browser returns a BatteryManager object with four properties that update in real time:

// JavaScript: How websites read your battery data

navigator.getBattery().then(function(battery) {

console.log(battery.level); // 0.6789 (67.89%)

console.log(battery.charging); // false

console.log(battery.dischargingTime); // 14567 (seconds)

console.log(battery.chargingTime); // Infinity

});

// The battery object also fires events:

battery.addEventListener('levelchange', updateLevel);

battery.addEventListener('chargingchange', updateCharging);

Why This Is a Privacy Problem

The critical issue is precision. On vulnerable browsers, the battery level is reported with up to 14 decimal places — not as a rounded percentage. This means your battery at "67%" is actually reported as "0.67891234567890" which is essentially unique to your specific device at that specific moment. Combined with discharging time down to the second, trackers can create a temporary but highly accurate device identifier without any cookies.

For a complete picture of what your browser reveals, run our Browser Leak Test alongside this battery API privacy test.

How Battery Data Enables Cross-Browser Tracking

Cross-browser tracking using battery data is one of the most sophisticated device tracking techniques available. Here is exactly how advertisers and ad-tracking networks exploit the Battery Status API to follow you across the internet.

The Tracking Scenario

Imagine you visit Website A using Chrome, then switch to Firefox to visit Website B. You use different browsers, clear cookies, and even use a VPN. Traditional tracking fails completely. But both websites run a script that calls navigator.getBattery(). Both see that the visitor has a battery level of 0.6789 with a discharging time of 14,567 seconds. The probability that two different devices share these exact values at the same moment is astronomically low — so the tracker concludes you are the same person.

Why VPNs Cannot Stop This

A VPN encrypts your network traffic at the transport layer. But the Battery Status API runs locally inside your browser through JavaScript. The battery data never leaves your device over the network — it is read directly from your operating system's hardware interface. A VPN has zero visibility into this process, making it powerless against battery status API fingerprinting.

This is why we recommend combining multiple privacy tests. Check your JA3 TLS Fingerprint (which also survives VPN use), your WebRTC Leak status, and your Canvas Fingerprint for a complete privacy audit.

Privacy Alert: If our battery leak test shows your exact battery level with decimal precision plus a specific discharging time in seconds, your device can be uniquely identified across any website that runs the same tracking script — regardless of VPNs, incognito mode, or cookie clearing.

The History of Battery Fingerprinting: From W3C Feature to Privacy Disaster

The Battery Status API has one of the most controversial histories in web standards. It was designed with good intentions but became a textbook example of how HTML5 API security can fail when privacy implications are not considered.

2012: W3C Introduces the API

The World Wide Web Consortium (W3C) published the Battery Status API specification as a way for web applications to be "energy aware." The intended use case was simple: if a user's battery is low, a website should reduce power-hungry features like animations, video autoplay, and background synchronization.

2015: "The Leaking Battery" Research Paper

Researchers Lukasz Olejnik, Gunes Acar, Claude Castelluccia, and Claudia Diaz published a groundbreaking paper demonstrating that the API could be used for device tracking. They proved that the high-precision battery level combined with discharging time created a fingerprint capable of cross-browser tracking — identifying the same device across different browsing sessions.

2016-2017: Browsers Start Blocking the API

After widespread media coverage, Firefox removed the Battery Status API entirely in version 52 (March 2017). WebKit (Safari) restricted it on iOS. However, Chrome and other Chromium-based browsers kept the API active, though some reduced the precision of reported values.

2026: Current Status

Today, Firefox and Safari block the API. Brave and Tor Browser spoof it. Chrome and Edge still expose it by default. Our battery leak test detects which category your browser falls into and calculates your privacy risk level accordingly.

Which Browsers Block the Battery Status API?

Not all browsers handle the Battery Status API the same way. Some expose full battery data, some reduce precision, and some block it entirely. Here is the current status as of 2026.

BrowserAPI StatusPrivacy RiskNotes
Chrome / EdgeExposedHighFull API access, reduced precision since v86
FirefoxBlockedNoneRemoved entirely since v52 (March 2017)
Safari (iOS/macOS)BlockedNoneRestricted since iOS 11, returns undefined
BraveBlockedNoneShields block API by default
Tor BrowserSpoofedNoneReturns fake 100% + charging for all users
OperaExposedHighChromium-based, same exposure as Chrome

If our battery leak test shows your battery data is exposed, consider switching to a privacy-focused browser or using an anti-detect browser that spoofs hardware APIs. For checking what else your current browser reveals, use our Font Fingerprint Audit.

Why Do Websites Track Your Battery Status? Ad-Tracking and Price Manipulation

The Battery Status API is not just a fingerprinting tool — it enables behavioral manipulation. Here are the real-world ways that battery status tracking affects you.

1. Cross-Site User Identification

Ad-tracking networks embed scripts on thousands of websites. By reading your battery level and discharging time, they can link your visits across different sites to build a comprehensive browsing profile — all without a single cookie. This profile feeds targeted advertising.

2. Dynamic Pricing (Surge Pricing Theory)

There have been persistent reports about ride-sharing and travel booking apps using battery data to influence pricing. The theory: if your phone is at 3% battery, you are "desperate" and more likely to accept a higher price. While companies deny this, the technical capability exists through this exact API.

3. Bot vs Human Verification

Anti-fraud systems use battery data as one signal in bot detection. Real users have varying battery levels and charging states. Automated bots running in virtual machines or headless browsers often report unusual battery patterns (like always 100% or no battery at all). Our IP Fraud Score Checker uses similar behavioral signals.

Privacy Tip: If you use Chrome and cannot switch browsers, install a privacy extension that intercepts navigator.getBattery() calls and returns spoofed data. This breaks the battery status API fingerprinting chain while maintaining normal browsing functionality.

How to Prevent Battery Status API Fingerprinting in 2026

Protecting yourself from battery status API fingerprinting requires browser-level changes since the API runs locally and cannot be blocked by network tools. Here are proven methods for user privacy protection.

Method 1: Switch to a Privacy-Focused Browser

The most effective solution is using a browser that blocks the API entirely. Firefox has blocked the Battery Status API since 2017. Brave blocks it through its Shields feature. Tor Browser returns spoofed data (100% + charging) making all users look identical. Check your Tor status with our Tor Detection Tool.

Method 2: Disable Battery API in Chrome/Firefox

# Firefox (already blocked by default since v52)

# To verify, open about:config and search:

dom.battery.enabled = false

# Chrome: No built-in flag available

# Use a privacy extension like:

# - Battery Status API Override

# - CanvasBlocker (blocks multiple hardware APIs)

# - uBlock Origin with custom filter rules

# Advanced: Override via DevTools Console

navigator.getBattery = undefined;

# Note: Only works per-session, resets on reload

Method 3: Use Anti-Detect Browser Profiles

Anti-detect browsers like Multilogin, GoLogin, and AdsPower create isolated browser profiles with spoofed hardware data including battery status, canvas fingerprint, WebGL renderer, and font lists. Each profile appears as a completely different device. These are primarily used by marketers and researchers who need multiple distinct browser identities.

Method 4: Browser Extensions

Privacy extensions can intercept navigator.getBattery() calls and return randomized or standardized values. This breaks the fingerprint without disabling other browser features. Combined with a VPN for IP privacy, you achieve comprehensive data privacy coverage.

Battery Fingerprinting vs Other Browser Fingerprinting Methods

The Battery Status API is just one of many browser fingerprinting techniques used for device tracking. Understanding how it compares to other methods helps you prioritize your privacy defenses.

MethodData SourceSurvives VPNSurvives Incognito
Battery Status APIHardware (local)YesYes
Canvas FingerprintGPU renderingYesYes
WebRTC LeakNetwork interfaceYesYes
JA3 TLS FingerprintTLS handshakeYesYes
Font FingerprintInstalled fontsYesYes
CookiesBrowser storageYesNo

Notice that every hardware-based fingerprinting method survives both VPN connections and incognito mode. Only cookies — the oldest tracking method — are blocked by private browsing. This is why comprehensive user privacy protection requires auditing all these channels. Use our Browser Leak Test for a complete assessment.

Can Websites Track Me If I Am Charging My Phone?

Yes — charging state is itself a trackable data point. The Battery Status API reports whether your device is plugged in, how long until it reaches full charge, and your current battery level. Even while charging, these values create a unique combination.

Mobile vs Desktop Fingerprinting Differences

The fingerprinting risk varies significantly between device types:

  • Laptops: Highest risk. Battery levels change constantly and are reported with high precision. Discharging times are unique per device based on battery age, capacity, and current workload.
  • Smartphones (Android): High risk on Chrome for Android. The API is accessible and reports real battery data. iOS Safari blocks the API entirely.
  • Desktop PCs: Low risk. Desktops without batteries report "100% + charging" or return API errors. However, this "no battery" state is itself a fingerprint — it tells the tracker you are on a desktop, not a laptop or phone.
  • Tablets: Similar to laptops. iPads are protected (Safari blocks the API). Android tablets on Chrome are vulnerable.

Key Insight: Even the absence of battery data is a fingerprint. If the API returns an error or "not supported," the tracker knows you are using Firefox, Safari, Brave, or a desktop PC — narrowing down your device category. This is why Tor Browser returns spoofed data (100% + charging) rather than blocking the API entirely.

The Quantization Defense: How Modern Browsers Reduce Battery Fingerprinting

Even browsers that still expose the Battery Status API have implemented defenses to reduce the fingerprinting risk. The primary technique is called quantization — rounding battery values to reduce their uniqueness.

How Quantization Works

Instead of reporting your battery level as 0.6789123 (unique to your device), a quantized browser rounds it to 0.68 or even 0.70. This makes your battery reading match thousands of other users with similar charge levels. Chrome implemented basic quantization starting in version 86, reducing the precision of reported values.

# Vulnerable browser (no quantization):

battery.level → 0.678912345678901 (unique identifier)

# Chrome 86+ (basic quantization):

battery.level → 0.68 (shared by thousands of users)

# Tor Browser (full spoofing):

battery.level → 1.0 (identical for ALL Tor users)

battery.charging → true

battery.dischargingTime → Infinity

Is Quantization Enough?

Quantization reduces the risk but does not eliminate it. Even rounded battery values combined with other fingerprinting signals (canvas hash, font list, screen resolution, timezone) can still contribute to a unique digital footprint. For maximum data privacy, blocking the API entirely or using spoofed values remains the gold standard. Check your complete fingerprint surface with our Browser Leak Test.

Free Tool to Check Browser Battery Privacy Leak: Developer Integration

Developers building privacy-focused applications or anti-detect browsers need to detect and handle the Battery Status API programmatically. Here is how to check for the API and implement defenses in your own projects.

Detect Battery API Availability

// Check if Battery Status API is available

if ('getBattery' in navigator) {

console.log('WARNING: Battery API is exposed');

navigator.getBattery().then(bat => {

console.log('Level:', bat.level);

console.log('Charging:', bat.charging);

console.log('Discharge:', bat.dischargingTime);

});

} else {

console.log('SAFE: Battery API is blocked');

}

Spoof Battery Data (Extension Development)

// Override getBattery to return spoofed data

// Use in browser extension content scripts:

const spoofedBattery = {

level: 1.0,

charging: true,

chargingTime: 0,

dischargingTime: Infinity,

addEventListener: () => {},

removeEventListener: () => {}

};

navigator.getBattery = () => Promise.resolve(spoofedBattery);

For testing your application's security posture, combine this with our Port Scanner and DNS Lookup Tool.

Battery Leak Test for Privacy-Conscious Users: Complete Audit Checklist

If you are serious about data privacy and user privacy protection, the Battery Status API is just one of many channels you need to audit. Here is a complete privacy hardening checklist.

  • Step 1: Run our battery leak test above. If your battery data is exposed, switch to Firefox, Brave, or Tor Browser.
  • Step 2: Check your Browser Leak Test for WebGL, audio context, and screen resolution leaks.
  • Step 3: Run the Canvas Fingerprint Test to see if your GPU rendering creates a unique hash.
  • Step 4: Test your WebRTC Leak status — WebRTC can reveal your real IP even behind a VPN.
  • Step 5: Check your JA3 TLS Fingerprint — your encrypted connection signature persists across VPNs.
  • Step 6: Audit your Font Fingerprint — installed fonts create another unique identifier.
  • Step 7: Verify your Tor Detection status if using Tor for anonymity.
  • Step 8: Check your IP Fraud Score to see how anti-fraud systems classify your connection.

Best Practice: Run this entire audit checklist monthly, after browser updates, and whenever you change your privacy setup. Browser fingerprinting techniques evolve constantly — a configuration that was private last month may have new leaks after a browser update.

Frequently Asked Questions About Battery Status Privacy

What is a battery leak test and why does it matter?

A battery leak test checks if your browser exposes battery data through the Battery Status API. It matters because this data creates a unique digital footprint that enables cross-browser tracking without cookies — surviving VPNs and incognito mode.

Can websites really track me using my battery level?

Yes. Research proved that the exact battery level (reported as a floating-point number) combined with discharging time in seconds creates a nearly unique identifier. Two websites reading this data can confirm you are the same person across sessions.

How do I prevent battery status API fingerprinting?

Use Firefox, Brave, or Tor Browser — all block or spoof the Battery Status API. In Chrome, install privacy extensions that intercept navigator.getBattery() calls. On iOS, Safari already restricts the API entirely.

Does a VPN protect against battery fingerprinting?

No. A VPN encrypts network traffic but the Battery Status API runs locally in your browser via JavaScript. The data never travels over the network, so VPNs cannot intercept or modify it. Battery API fingerprinting requires browser-level protection.

How to disable Battery API in Chrome and Firefox?

Firefox has the API disabled by default since version 52. In Chrome, there is no built-in setting — use privacy extensions or switch to Brave. For developers, you can override navigator.getBattery in extension content scripts.

Can websites track me if I am charging my phone?

Yes. The API reports charging state, charging time, and battery level simultaneously. Even while charging, the combination of current level plus time-to-full is unique per device based on battery capacity and charging speed.

Is battery fingerprinting worse than cookie tracking?

In key ways, yes. Cookies can be deleted, blocked, or expired. Battery status is a hardware property that persists as long as your device is on. It is a stateless device tracking method that works across incognito sessions, after clearing cookies, and across browser profiles.

Which browsers block the Battery Status API?

Firefox (since v52), Safari (iOS 11+), Brave (default shields), and Tor Browser (spoofed data) all block or neutralize the API. Chrome, Edge, and Opera still expose it by default.

Related Privacy & Fingerprinting Tools

Complete your privacy audit with our free toolkit.

Is Your Battery Leaking Your Identity?
Free Battery Status API Privacy Test

Your battery level, charging state, and discharging time can uniquely identify your device across websites — even behind VPNs. Run our free battery leak test to find out if your browser is vulnerable to battery status API fingerprinting.