Dark
Log inRequest a walkthrough

// DEVELOPER EVALUATION

Know what runs where before you integrate.

The browser collects available evidence. Your server performs the authenticated read. Your application owns the customer policy and every fallback.

// TRUST BOUNDARIES

A browser-to-server handoff with explicit ownership.

  1. Customer client

    Loads the public collector and passes a returned device identifier to the customer backend.

    Fallback: Blocked JavaScript, reduced browser capability, or collection failure yields no fresh evidence.

  2. Noxtica processing

    Processes evidence admitted by browser capability, tenant policy, and consent state.

    Fallback: A missing or unavailable result is not a low-risk result.

  3. Customer server

    Keeps the API credential secret and performs the authenticated device lookup.

    Fallback: Missing, invalid, rate-limited, and unavailable responses remain distinct.

  4. Customer policy

    Combines the lookup with customer-owned account, operation, and abuse context.

    Fallback: Noxtica does not make the final allow, step-up, review, or deny decision.

  5. Investigation and measurement

    Operators compare proposed actions with confirmed outcomes before enforcement.

    Fallback: Successful installation alone does not establish a production-ready policy.

// MAINTAINED PATH

The smallest current integration path.

These examples are rendered from fixtures checked by the developer snippet test. Replace every synthetic value with credentials and identifiers issued for your evaluation.

1. Collect in the browser

The public loader is the only currently verified browser release. It emits a device identifier or an error state; it never receives a server credential.

<script src="https://collect.noxtica.com/collector/noxtica-collector-core.js" data-site-key="pk_example_replace_me" data-extensions="auto" data-auto-init data-auto-check-once async></script>
<script>
  document.addEventListener('noxtica:collected', (event) => {
    const deviceId = event.detail?.fingerprintId;
    document.dispatchEvent(new CustomEvent('app:noxtica-evidence', {
      detail: deviceId ? { state: 'received', deviceId } : { state: 'invalid' },
    }));
  });

  document.addEventListener('noxtica:error', () => {
    document.dispatchEvent(new CustomEvent('app:noxtica-evidence', {
      detail: { state: 'unavailable' },
    }));
  });
</script>

2. Read on your server

Send the device identifier to your backend, then call the authenticated v1 route with a server-held key.

export async function lookupDevice({ deviceId, apiKey, fetchImpl = fetch }) {
  const response = await fetchImpl(
    `https://collect.noxtica.com/v1/device/${encodeURIComponent(deviceId)}`,
    { headers: { Authorization: `Bearer ${apiKey}` } },
  );

  if (response.status === 404) return { state: 'missing' };
  if (response.status === 429) return { state: 'rate_limited' };
  if (!response.ok) return { state: 'unavailable' };

  return { state: 'received', record: await response.json() };
}

3. Keep result states separate

Only a complete received record enters numeric policy. Missing, invalid, rate-limited, and unavailable states follow explicit customer fallbacks.

export function classifyLookup(result) {
  if (!result || result.state === 'unavailable') return { state: 'unavailable' };
  if (result.state === 'rate_limited') return { state: 'rate_limited' };
  if (result.state === 'missing') return { state: 'missing' };

  const record = result.record;
  if (!record || typeof record.score !== 'number' || typeof record.confidence !== 'number') {
    return { state: 'invalid' };
  }

  return {
    state: 'received',
    score: record.score,
    riskLevel: record.riskLevel,
    confidence: record.confidence,
  };
}

// VERIFIED 2026-09-20

Current public support matrix.

Only surfaces backed by a public release or reachable API boundary are listed. Private source inventory is not a support claim.

SurfaceAvailabilityCurrent releaseResponsibility and limitsGuidance
Browser collector loaderPublicly available3.2.0Verified 2026-09-20

Loads the browser collector from the Noxtica collector origin. Reports a collection result or an unavailable state to application code.

Evidence available to the current browser, tenant policy, and consent state. Requires JavaScript. Browser capability or policy can reduce available evidence.

View sampleRead guidance
Authenticated device lookup HTTP APIEvaluation access requiredv1Verified 2026-09-20

Receives a device identifier only from the customer server. Returns the tenant-scoped record when credentials and scope permit.

The authenticated record available to the provisioned tenant. Requires evaluation access and a server-held credential; an unauthenticated request is rejected.

View sampleRead guidance

// EVALUATION CHECKPOINTS

Prove the handoff before policy changes.

  1. Provision the exact origin and public Site Key for the evaluation.
  2. Observe both collection completion and unavailable behavior.
  3. Pass only the returned device identifier to the customer backend.
  4. Perform the authenticated read with a server-held credential.
  5. Exercise received, missing, invalid, rate-limited, and unavailable states.
  6. Evaluate proposed policy in observation mode before enforcement.