How Thumbmark Works

Enterprise-grade browser fingerprinting built on a powerful two-layer architecture

Flow: Browser to Client Library to Backend API to Visitor ID
How a visitor is identified in four steps

Open Source Client Library

ThumbmarkJS is our fully open source client library that runs in the browser. It collects and analyzes browser signals to generate a unique fingerprint for each visitor.

  • Zero dependencies — works everywhere

  • Fully transparent and auditable

  • Runs entirely client-side

  • Generates stable fingerprints across sessions

// Install via npm
npm install @thumbmarkjs/thumbmarkjs

// Optionally install the React 
npm install @thumbmarkjs/react
// or Vue integration package
npm install @thumbmarkjs/vue

Backend API Enhancement

Our backend API receives fingerprints from the client and enhances them with additional intelligence. This two-layer approach dramatically improves both uniqueness and stability.

  • Enriches fingerprints with server-side intelligence

  • Tracks fingerprint evolution over time

  • Identifies bot and datacenter traffic

  • Maintains visitor identity across fingerprint changes

Built for Enterprise Scale

Thumbmark is designed from the ground up to handle enterprise traffic volumes and security requirements.

  • Global infrastructure

  • GDPR and privacy-first design

  • 99.9% uptime SLA

  • Custom deployment options available

Open Core, Proprietary Enhancement

We believe in transparency where it matters. Our client library is fully open source so you can audit exactly what data is collected and how. The backend intelligence layer is proprietary, containing our accumulated learning and network effects.

  • Client library: MIT licensed, fully open source

  • Backend API: Proprietary algorithms and data

  • No vendor lock-in — client works standalone

  • Backend enhancement is optional but recommended

// Client library is MIT licensed
// Works standalone without the API
import { Thumbmark } from '@thumbmarkjs/thumbmarkjs';

const tm = new Thumbmark();
const result = await tm.get();

// Basic fingerprint (open source)
console.log(result.thumbmark);

// Enhanced with API key (proprietary backend)
const tmPro = new Thumbmark({ api_key: 'your-key' });
const enhanced = await tmPro.get();
console.log(enhanced.visitorId);

Ready to see the difference?

Try our live demo or talk to our team about enterprise deployment

View Live Demo