Live browser telemetry

What a normal website can learn.

This page makes invisible metadata visible: the values your browser sends to the server, plus local attributes JavaScript can read without asking for a login or a permission prompt.

No third-party requests Local fingerprint demo No permissions requested
Checking origin Starting WebGL fluid Local clock
...client IP visible to origin
...browser identity signal
...screen and pixel ratio
...local demo fingerprint prefix

Server request

Values observed at the Cloudflare edge when this page calls the telemetry endpoint /api/whoami.

LIVE
Loading
Waiting for /api/whoami...
These are server-side values. They can be logged before a user clicks anything.

Browser runtime

Local JavaScript-readable browser, locale, and runtime identity fields.

Loading
Reading local browser attributes...
This page displays them locally. A site could also choose to transmit them.

Hardware & display hints

Approximate device capabilities exposed by browser APIs and media queries.

Loading
Reading screen and hardware hints...

Proxy, TLS & privacy headers

Cloudflare edge, TLS and network context, privacy preferences, and cookie presence.

Loading
Waiting for Cloudflare edge data...

Client Hints headers

Optional browser-supplied hardware/software hints requested by the origin.

Loading
Negotiating Client Hints...
Some hints only appear after the first response advertises Accept-CH, and many browsers intentionally omit them.

Graphics, audio & fonts

Rendering surfaces often used in fingerprinting tests.

Loading
Testing local rendering surfaces...
Hashes are computed locally from tiny off-screen renders. They illustrate stability, not uniqueness.

Privacy & storage state

Browser preferences, permissions states, and local storage availability.

Loading
Reading privacy-related browser state...

Capability surface

Modern APIs that reveal what the browser and device can do.

Loading
Checking exposed API surface...

Local fingerprint demo

A digest of selected local attributes. The digest inputs are shown below and are not posted back.

Demo hash
Computing...
Input count
...
Collecting local inputs...

What this demonstrates

The surprise is usually not one field. It is the combination.

Request headers identify context.

User-Agent, Accept-Language, Client Hints, Fetch Metadata, referrer, and proxy headers can describe your browser, language, navigation path, and network route.

JavaScript adds local detail.

Screen geometry, timezone, hardware hints, storage estimates, connection type, permissions states, and rendering quirks can be read without a login.

Privacy tools reduce precision.

Modern browsers may freeze, round, omit, or randomize values. That helps, but correlated low-entropy signals can still be useful to trackers.