Skip to main content
Emitted when an identification is finalized. Match data.identification_id to your browser result and deduplicate deliveries by event_id. The example uses schema_version: "2026-10-13". Use the received event_type and schema_version when parsing a delivery. See Webhook reference for the envelope, signature and retry behavior.

Example payload

The shortened example below shows VPN and Anti-Detect Browser: 30 + 60 = 90. Unshown flags and traffic fields are omitted for readability.

Identity and context fields

Local IP is an address exposed by the browser network check, not a promise to return a private LAN address.

Signals and flags

  • risk_score: authoritative 0–100 result, or 999 for Banned IP.
  • signals: named score contributions. Contributions can be consolidated or corrected; do not reconstruct the final score by summing them.
  • detection_flags: 20 boolean decisions in the 2026-10-13 schema, including zero-weight detections. The example omits most false keys for readability; a full delivery includes them. Risk signals lists every key and its nominal weight.
For this schema, os_mismatch covers either operating-system mismatch check.

Bot ownership

ShieldLabs identifies the provider of a recognized search bot, AI bot or AI browser. The provider name is returned in search_bot_owner, ai_bot_owner or ai_browser_owner when available. Optional client_identity contains additional client attribution.

HRE

data.hre contains three separate account evaluations: Multi-accounting uses its own group-change event. It is not a fourth result inside this object. Event confidence and the identification’s numeric Risk Score are separate measurements.

Result fields

Each account evaluation has the following fields:

Status and confidence

For example, reason: "no_history" or "skipped" accompanies an evaluation that was not completed. Anonymous checks use not_applicable with reason: "anonymous_user". These are result-context examples, not a closed list of reason values. A null cluster_id means no published cluster reference was supplied. It does not override a non-null detection level, and it is not an identifier to synthesize from the account or device.

Account-sharing counts

Account sharing can include these additional fields: An illustrative account_sharing result:
This example reports a detection and a lower-bound count. It does not make four devices a universal confidence threshold. A current account risk category is also separate from the event’s confidence and the score of this check. See High-Risk Events.