fingerprintby Scraping Central
Menu

Hardware fingerprint

What Your Browser Says About Your Hardware

CPU cores, memory bucket, GPU tier, touch points, battery state, and the Web Bluetooth / USB / Serial / HID surfaces.

Hardware profile

Reading signal in your browser...

The hardware signals anti-bot vendors watch

  • Cores = 0. Headless Chrome on some cloud shapes reports zero; instant bot.
  • Cores = 1. Extremely rare on real devices in 2026; heavy scrutiny.
  • Memory bucket = 0.25 GB on a desktop UA. Impossible; misconfigured container.
  • maxTouchPoints = 0 on a mobile UA. Contradiction; something is spoofed.
  • Battery reported on a Firefox UA. Impossible; you're not really Firefox.

Consistent hardware profiles for scrapers

Pick a profile that matches your target audience. A modern Windows laptop is: 8 cores, 8 GB memory (bucketed), 0 touch points, discrete or integrated GPU. A modern iPhone is: 6 cores, no deviceMemory (Safari), 5 touch points, Apple GPU. Mixing signals across those profiles is what gets you caught.

Frequently asked questions

What is navigator.hardwareConcurrency?

The number of logical CPU cores available to the browser. Real machines report values like 4, 8, 12, or 16. Zero is a classic headless leak. Extremely high values (64+) usually mean a cloud VM with an oversized instance, unusual on the general web.

Why does deviceMemory only show a few values?

It's bucketed to 0.25, 0.5, 1, 2, 4, or 8 GB by spec, to reduce entropy. A real 32 GB machine reports 8. But it's still a useful signal, and Firefox / Safari don't expose it at all, so its presence identifies you as Chromium-family.

Is the Battery API still available?

In Chromium and its derivatives, yes. Firefox removed it in 2016 and Safari never shipped it, both citing fingerprinting concerns. If a Firefox UA reports a Battery API present, you're looking at a spoofed / instrumented browser.

What can Web Bluetooth / USB / HID reveal?

Their availability alone hints at the browser + platform. Web Bluetooth ships on desktop Chromium (with the OS-level toggle enabled) and is absent on Firefox. Web Serial and WebHID are Chromium-only. These are cheap, coarse platform signals.

How do I spoof hardware for scraping?

hardwareConcurrency and deviceMemory are read-only. You can override them at page load via Object.defineProperty, and stealth plugins do exactly that. Match them to a plausible profile: e.g. 8 cores + 8 GB for a modern laptop, don't set 128 cores.

← Run the full fingerprint report

AI Summary

Summarize this page in your favorite LLM