Privacy & data handling
ShieldLabs identifies visitors as entities, not named individuals. The snippet collects technical attributes of the browser, device, and network connection and posts them to the server, which derives the identifiers (VisitorID, DeviceID) and a Risk Score and delivers those to your backend. It never asks for, sees, or stores who the person actually is. This page describes what is and is not collected and how you stay in control of the data. For transport, key, and webhook-verification practices, see Security.This page describes data handling factually. It is not legal advice and makes no regulatory compliance claim. How you disclose ShieldLabs in your own privacy policy, and on what legal basis you process this data, is your decision to make with your own counsel.
What ShieldLabs collects
The snippet reads technical signals from the browser environment and the network connection. These are the raw inputs the server turns into identifiers and the Risk Score.| Category | Examples | Used for |
|---|---|---|
| Browser fingerprint | Canvas, WebGL, audio, fonts, screen, navigator (user agent, platform, languages, vendor) | Deriving the durable DeviceID |
| Device and OS | Browser name, operating system, device type, timezone | Identification and mismatch checks |
| Network | IP address (read server-side from the connection), connection type, VPN/proxy/Tor/datacenter indicators, WebRTC real-IP discovery | Anonymity detection and signals |
| Page context | The current page URL (with the #fragment stripped) and the referrer | Traffic source attribution |
| Client-side ids | A first-party cookieID and a sessionID, both minted by the snippet | Linking calls from the same browser and visit |
What ShieldLabs does NOT collect
ShieldLabs has no field for, and never asks for, any of the following:- Names, emails, or phone numbers.
- Passwords. No site-user credentials are read or stored.
- Payment data. No card numbers, no bank details.
- Form field contents. The snippet does not read what a visitor types.
- Full browsing history. Only the current page URL and the referrer are captured, for traffic attribution.
UserHID: you supply it, and it must be pseudonymous
UserHID is the one field that comes from you, not from the browser. It is your own account id, passed into the snippet so ShieldLabs can correlate a logged-in user’s activity across visits and devices.
forceCheckAuthenticatedUser. When you call checkAnonymous, no user id is sent at all (the UserHID defaults to anonymous). See the snippet reference for the full client API.
WebRtcHIP is a hash, not a raw IP
During identification the snippet runs a WebRTC real-IP check to spot a masked connection (see Anonymity detection). The result that reaches you isWebRtcHIP, a hash of the discovered IP, kept only for correlation. It is not the raw real IP, and it cannot be reversed to deanonymize the visitor.
WebRtcHIPlets you tell whether two requests came through the same hidden network without exposing the underlying address.- It appears in the History API snapshot and on the dashboard. The raw WebRTC IP is not sent in the webhook body.
- The connection’s public
IPis captured server-side from the request and used to derive location and reputation signals.
Client-side storage
To recognize a returning browser without a server round trip, the snippet keeps two values in the visitor’s own browser:| Value | Where it lives | Lifetime |
|---|---|---|
cookieID | A first-party cookie and localStorage (SameSite=Lax, Secure on HTTPS) | 2 years, lost when the visitor clears cookies or site storage |
sessionID | sessionStorage | The current visit (a 10-minute window) |
cookieID does not. See Identifiers for how the ids relate.
You control retention
Your data is yours to read, export, and remove.Export
Filter the Data table on the dashboard and export the matching records as CSV or JSON. Exports are free and do not consume requests.
Read programmatically
Pull snapshots for any identifier through the History API, keyed by IP, UserHID, VisitorID, RequestID, or DeviceID.
Data minimization in practice
The design choices above all point the same way: collect the technical signals needed to identify a browser and score anonymity, and nothing that identifies a person.- Identifiers are derived (DeviceID, VisitorID) or pseudonymous (UserHID, supplied hashed by you), never tied to a name or email by ShieldLabs.
- The real WebRTC IP reaches you only as a hash (
WebRtcHIP). - The snippet captures the current page URL and referrer for attribution, not a browsing trail.
- No passwords, payment data, or form contents are ever read.
Related
- Security: webhook signature verification, key management, and transport.
- Identifiers: how RequestID, DeviceID, VisitorID, and UserHID are built and how durable each one is.
- Signals: the full signal and scoring reference.
- Management API: export and query your stored snapshots.