Every signal, in one index

32 signals in 6 categories. 5 of them ask your permission first. The other 27 are read the moment a page opens, with no prompt and nothing to decline, which is the part most people are surprised by.

Browser (5)

What your browser announces about itself on every request.

Browser signals
SignalJavaScript callAsks permission
User agentnavigator.userAgentNo
Browsernavigator.userAgentData?.brands ?? navigator.userAgentNo
Operating systemnavigator.userAgentData?.platform ?? navigator.userAgentNo
Languagenavigator.languagesNo
Cookies enablednavigator.cookieEnabledNo

Network (8)

What your connection reveals, from your public IP to your headers.

Network signals
SignalJavaScript callAsks permission
IP addressfetch('/api/ip')No
IPv4 addressfetch('/api/ip') then check for ':' in the addressNo
Public IPfetch('/api/ip')No
Private IPnot readable by a websiteNo
IP locationfetch('/api/ip') returning the platform's geo headersNo
Connection typenavigator.connectionNo
Request headersreconstructed from navigator, not read directlyNo
Referrerdocument.referrerNo

Location (6)

What the Geolocation API can pin down, only with your permission.

Location signals
SignalJavaScript callAsks permission
Locationnavigator.geolocation.getCurrentPosition(success, error)Yes
Zip codenavigator.geolocation.getCurrentPosition then a reverse geocodeYes
Postal codenavigator.geolocation.getCurrentPosition then a reverse geocodeYes
Addressnavigator.geolocation.getCurrentPosition then a reverse geocodeYes
TimezoneIntl.DateTimeFormat().resolvedOptions().timeZoneNo
Elevationposition.coords.altitude from getCurrentPositionYes

Display (6)

The size, density and graphics of the screen you are reading on.

Display signals
SignalJavaScript callAsks permission
Screen resolutionscreen.width and screen.heightNo
Viewport sizewindow.innerWidth and window.innerHeightNo
Color depthscreen.colorDepthNo
Device pixel ratiowindow.devicePixelRatioNo
WebGL renderergl.getParameter(gl.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL)No
GPUgl.getParameter(gl.getExtension('WEBGL_debug_renderer_info').UNMASKED_VENDOR_WEBGL)No

Device (5)

Hardware hints your browser exposes to any page you open.

Device signals
SignalJavaScript callAsks permission
Device typenavigator.maxTouchPoints with navigator.userAgentNo
Device memorynavigator.deviceMemoryNo
CPU coresnavigator.hardwareConcurrencyNo
Batterynavigator.getBattery()No
Touch supportnavigator.maxTouchPointsNo

Privacy (2)

Signals about tracking, and how identifiable you are overall.

Privacy signals
SignalJavaScript callAsks permission
Do Not Tracknavigator.doNotTrackNo
Browser fingerprintthe combination of every signal above, hashed locallyNo