Install
Install shows the snippet for the selected domain, with its Public Key already in the import URL.- Pick your stack to get the snippet in the form your platform expects.
- Anonymous visitors: the snippet with
checkAnonymous(), for pages without sign-in. - Authenticated users: the snippet with
checkAuthenticatedUser(userHashedId). Pass a hashed User HID withcheckAuthenticatedUseron every signed-in page. Users, account-level risk and all four High-Risk Events are built on it. Use a hashed or pseudonymous ID, never a raw internal ID. - Snippet methods:
checkAnonymous,checkAuthenticatedUser,forceCheckAnonymousandforceCheckAuthenticatedUser.
checkAnonymous and checkAuthenticatedUser run at most one identification every five minutes for the same user in the same browser, shared across open tabs. A call inside that window posts nothing, counts nothing, and its onInitialized handler receives { status: "not_initialized" }. forceCheckAnonymous and forceCheckAuthenticatedUser run an identification every time, keep the current Session ID and restart the five-minute window.
The banner under the snippets shows whether the domain is reporting: it says identifications are arriving, with the time of the last one, once they do; Pending, with Recheck, until the first one arrives; Paused, with Open Domains, while you have paused the domain; and Frozen while the domain is at its rate limit. If your site sends a Content-Security-Policy header, allow the hosts listed on Content Security Policy. Full steps: Install the snippet.


Integration > Install in the analytics dashboard: pick your stack, open the snippet for anonymous visitors or authenticated users, and check that identifications are arriving.


Install with AI in the analytics dashboard.
Domains
Domains lists every domain on your account with its Status, its identifications in the period and its Subdomains setting.

Integration > Domains in the analytics dashboard: each domain's status and subdomain setting.
API keys
API keys shows one key type at a time: pick Public Key, Private API Key or Secret Key, and each domain in scope gets a row with its key, when it was last used and its usage in the period.

Integration > API keys in the analytics dashboard: one domain's Private API Key, masked, with tabs for Public Key, Private API Key and Secret Key.
Webhooks
Webhooks lists your endpoints with their signing secret, status and last delivery. Add endpoint registers an HTTPS URL for a domain. Each domain takes up to 10 endpoints, and each endpoint gets its ownwhsec_ signing secret.
- Verify sends a
webhook.pingdelivery. A 2xx answer verifies the endpoint. - Test sends a sample
identification.scoreddelivery and shows the HTTP status and how long it took. - Edit, Rotate secret, pause or resume deliveries, and Delete manage the endpoint.
X-Shield-Signature header, sha256= followed by the HMAC-SHA256 of the raw request body, in Node.js, Python, Go, PHP, Ruby and C#. Full steps: Webhooks.


Integration > Webhooks in the analytics dashboard: each endpoint has its own signing secret, Verify and Test.