DigitalFingerprint Pro trial: 20,000 production identifies/mo for 14 days.View plans
Resources

Guides, API references, and playbooks

Integration docs live on this site and the docs subdomain. Start with quick start, then Events GET for every fraud decision.

Featured resources

Guide

How to Detect Bots Without CAPTCHA

Detect automation, headless browsers, and scrapers with server-side signals, then challenge only the traffic that actually looks risky.

Blog

Guide

Persistent Visitor ID vs. Session ID: The Complete Developer Guide

Session IDs track one visit. Persistent visitor IDs connect visits over time. Learn when to use each and why modern analytics and fraud stacks need both.

Blog

Benchmarks

State of Visitor Identification Benchmarks 2026

How DigitalFingerprint validates same-browser visitor identification in production: ≥99% control/test continuity, browser matrix, Device Farm testing, and what required-scenario false-negative gates mean for your stack.

Blog

Featured

Why Cookies Are Dead (And What Smart Websites Are Using Instead)

Cookies are becoming unreliable for analytics, attribution, and fraud prevention. Learn how persistent visitor identification helps modern websites recognize returning visitors.

Blog

Start here

Getting started with DigitalFingerprint

Install @digitalfingerprintjs/client (npm) or load the official CDN, init with a public pk_… browser key (platform-managed integrity — never put signingSecret in page JS), and wire eventId to your backend Events GET with a secret sk_… key.

Guide

Fraud

Confidence & rules

Single assignment path with confidence v2 fusion penalties. Gate fraud signup via Events GET and rules presets; SDK 1.0 auto-seeds clientToken.

Guide

API

Confidence model (v1 & v2)

Merge false-positive risk on a 0–100 scale (v2), linkConfidence, fusion penalties, and signup gate patterns.

Reference

API

Smart Signals field guide

bot, vpn, proxy, tampering, velocity, ipInfo, ipBlocklist, highActivityDevice, and mobile integrity fields on Events GET.

Reference

API

POST https://api.digitalfingerprintjs.com/api/identify

Authentication, request signing, slim vs full responses, Limiter enforcement, error codes, and rate limits on the api. host.

Reference

API

GET/PATCH /api/events/:eventId

Server-authoritative enrichment: confidence, smartSignals, suspectScore, ruleAction; PATCH for linkedId/tags after identify.

Reference

Rules

Limiter preset rulesets

Import Analytics & marketing, Signup & fraud protection, and Shared & corporate devices templates from the console Limiter page.

Reference

Hands-on

Cross-domain identification

Deploy a second origin with the same project API key, add each domain to allowed hostnames and verify matching in the live demo.

Tutorial

Operations

Go live on production

Public/secret API keys, allowed hostnames, slim responses, webhooks, and the production integration checklist.

Ops

Migration

Fingerprint-compatible responses

Side-by-side evaluation with ?format=fingerprint on identify and Events GET. Native confidence is 0–100; export uses 0–1.

Migration

Fraud

Fraud use-case playbooks

Account takeover prevention, credential stuffing detection, and visitor ban enforcement — identify in the browser, decide after Events GET with example (tunable) rules.

Playbook

Security

Production trust model

Slim browser payloads, 5-minute eventId window, server-authoritative fraud, webhook verification, and integration checklist.

Playbook

Integration concepts

Core patterns every production deployment should follow.

Why server-side VPN detection beats IP lists alone

Timezone mismatch, relay detection, and visit history corroborate client VPN hints, IP rotation alone is insufficient.

Confidence is merge risk, not uniqueness

Gate signup and payouts on identification.confidence plus linkedId from Events GET, originId alone is a browser handle, not a person.

Limiter: identify-time blocks vs Events evaluation

Enabled rulesets auto-block abusive identify traffic; pass ruleset_id on Events GET when your backend needs inline ruleAction after identify.

Slim SDK responses and the 5-minute event window

Production keys never expose fraud fields in-browser; each eventId is authoritative for one server-side decision.