Skip to main content

Integration checklist

  1. Start Free and register the domain you want to protect.
  2. Copy the keys. The Public Key goes in the browser. Private credentials stay on the backend.
  3. Install a browser SDK or the CDN snippet. Use a stable pseudonymous User HID on signed-in checks.
  4. Allow required connections in your Content Security Policy.
  5. Retrieve the result by Identification ID, or receive signed webhooks.
  6. Protect the action. Verify domain, account association, freshness and reuse before acting.
The Quickstart walks through a complete browser-to-backend setup. Where to integrate helps choose the first action.

Plain JavaScript snippet

Use checkAuthenticatedUser('PSEUDONYMOUS_USER_ID') on signed-in pages. Importing the module alone does not start a check. See snippet methods for initialization callbacks and cooldown behavior.

What you receive

The scored webhook includes the check’s identifiers, Risk Score, signal contributions, detection flags and available account-event evaluations. This is an abbreviated example:
Verify X-Shield-Signature over the original raw body. Persist and deduplicate by event_id before acknowledging; delivery can retry. The reference contains the full versioned model and the separately enabled multi-account group event. History uses its own response projection, including score rather than risk_score. Read it with the matching domain’s Private API Key. Processing is asynchronous, so handle pending and unavailable results explicitly.

Before production

Test a normal check, a signed-in check, a missing result, an invalid signature and duplicate delivery. Confirm the application does not accept a browser-supplied score or reuse an Identification ID to repeat a protected benefit. Keep staging credentials separate and monitor usage.