Migration Switching is a rename,
Switching is a rename,
not a rewrite
Prynt is API-shaped to match. Most apps migrate in under an hour.
01 Browser SDK
Before
import FingerprintJS from '@fingerprintjs/fingerprintjs-pro';
const fp = await FingerprintJS.load({ apiKey: 'FPJS_PUBLIC_KEY' });
const { visitorId, requestId } = await fp.get();Prynt
import Prynt from '@prynt/js';
const prynt = await Prynt.load({ apiKey: 'pk_live_…', endpoint: 'https://your-prynt-server' });
const { visitorId, requestId } = await prynt.identify();.get() becomes .identify(); you point endpoint at your own server. The return shape matches.
02 React
Before
import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react';
const { data } = useVisitorData();Prynt
import { useVisitorData } from '@prynt/react';
const { data } = useVisitorData();Same useVisitorData() hook name and data shape. Swap the provider import.
03 Server verification
Before
// Server-side (commercial Server API)
const res = await fetch(
`https://api.fpjs.io/events/${requestId}`,
{ headers: { 'Auth-API-Key': 'SECRET_KEY' } });Prynt
// Server-side (@prynt/node)
import { PryntServer } from '@prynt/node';
const prynt = new PryntServer({ secretKey: 'sk_live_…' });
const event = await prynt.getEvent(requestId);Field mapping
| Before | Prynt | Notes |
|---|---|---|
visitorId | visitorId | Stable device identity. Same concept, same field name. |
requestId | requestId | Per-call id you verify server-side. Same name. |
confidence.score | confidence.score | Both 0–1. Prynt also gives confidence.level. |
products.botd | smartSignals.bot | Bot detection result. |
products.incognito | smartSignals.incognito | Private-mode detection. |
products.vpn | smartSignals.vpn | VPN / proxy — plus tor, datacenter, residentialProxy. |
products.tampering | smartSignals.tampering | Includes anomalyScore. |
linkedId | linkedId | Your own user id to associate. Same name. |
tag | tag | Arbitrary metadata per event. Same name. |
Prynt adds what higher tiers gate or never offer: test/live environments, self-hosting, an append-only signal history, deep network intelligence, and a machine-readable OpenAPI spec.