See Thumbmark in action

This page demonstrates ThumbmarkJS running live in your browser. Your fingerprint and visitor ID are generated in real time.

Identifying your browser...

Calculating thumbmark...

Try running this in your browser

import('https://cdn.jsdelivr.net/npm/@thumbmarkjs/thumbmarkjs/dist/thumbmark.umd.js')
.then(() => {
  const tm = new ThumbmarkJS.Thumbmark(
    // { api_key: 'your-api-key' } // optional, but changes the response
  );
  tm.get().then((res) => {
    console.log(res)
  })
})

You should see something like this:

1// Loading ThumbmarkJS data...

So what is this?

ThumbmarkJS is a browser fingerprinting library that calculates a unique identifier based on carefully selected browser, device and HTTP request characteristics. This digital fingerprint, called a thumbmark, is designed to be stable across sessions and resistant to simple anti-fingerprinting techniques.

Your visitorId is an even more stable identifier stored both in the browser and server side, glued together by the thumbmark and some logic. The visitorId is generated by the server side, and is therefore not available in the open source version.

In the open source version, the thumbmark is generated from browser characteristics only. When the API is used, the thumbmark becomes more unique due to the added server-side components.

A persistent digital fingerprint for the browser

Refreshing the page or opening it in a new tab or a private tab should not change the thumbmark. If it does change, please open an issue.

Ready to get started?

Add ThumbmarkJS to your project in under a minute.

View documentation