Collect device signals in the browser with a public API key (kv_pk_…). Send the billable event_id / requestId to your backend and verify on the server.
CDN and browser SDKs use public keys only. Never put kv_sk_… or whsec_… in frontend code.
start() can also take an explicit key: start('kv_pk_…') or start({ apiKey: 'kv_pk_…', endpoint: 'https://api.keverd.com' }) if you are not loading from the keyed CDN path.
const result = await Keverd.getVisitorData();console.log(result.event_id); // send to your serverconsole.log(result.requestId); // same billable id (CDN-friendly alias)console.log(result.fingerprint); // persistent device idconsole.log(result.visitorId); // alias of fingerprintconsole.log(result.action); // allow | soft_challenge | hard_challenge | blockconsole.log(result.risk_score);