Read four inputs
Use the SDK quick starts to retrieve the result. The browser sends an Identification ID; the backend obtains the score independently.
Example actions by risk band
These are example application policies, not additional detection thresholds:Read the risk signals
Readdetection_flags for detections and signals for the score breakdown. A VPN or Private Relay contributes 30; Anti-Detect Browser contributes 60; Browser Automation contributes 90. Use the full signal catalog and the actual returned weights rather than copying an old weight table into application code.
For webhooks, read detection_flags and signals. For History, read score and the exposed is_* columns. History does not return every webhook flag.
Add account context
Read previous checks byuser_hid or review the account card. When checking whether a device is new, exclude the current Identification ID and use observations that precede this action. A bounded History page may be incomplete; store the history needed by your own policy.
The analytics dashboard’s current identity category summarizes its identification history. Computing the maximum score of the last 100 rows produces a different summary. Read High-Risk Events separately.
Acting on High-Risk Events
Read Medium or High confidence and the available evidence. Multi-account changes arrive through the separately enabled
hre.multi_account.changed event; the scored webhook’s hre object covers sharing, travel and takeover. See Webhooks.
Implementation notes: getting it right
- Authenticate and bind the action. Check the result’s domain, Identification ID, age and expected User HID. An Identification ID is not an authorization token.
- Verify webhook signatures over raw bytes. Parse the payload only after verifying
X-Shield-Signature. - Separate delivery from action idempotency. Deduplicate webhook deliveries by
event_id. Atomically consume an accepted identification for its protected business action in shared durable storage. - Persist before acknowledging. Store the event before returning a successful webhook response. Bounded retries can deliver duplicates and do not provide indefinite replay.
- Handle asynchronous results. Use bounded retrieval and a defined pending or unverified state. Receipt of a browser ID does not prove that a scored result is available.
- Test legitimate shared use. Include shared devices, corporate networks and recovery flows when validating enforcement.