• fix: If your project uses TypeScript and has the TypeScript's isolatedModules option is enabled, JS agent causes an error: "TS2748: Cannot access ambient const enums"


  • Rename the token option of the load method of JS agent to apiKey. The token option keeps working for backward compatibility. Also rename some error constants (the old names work too):
  • fix: JavaScript agent triggers a console error message unless the page's Content Security Policy allows unsafe-inline for style-src


  • A new region: ap (Mumbai, India)


  • Improve incognito mode detection accuracy in Safari
  • Deprecate the ipResolution parameter because it affects nothing
  • The get() result's ipLocation field is marked is optional in the TypeScript declaration. The field could be undefined in fact, so this is a fix of the type declaration.
  • Actualize the list of supported browsers
  • A new error code for cases when the JS agent version is not supported: FingerprintJS.ERROR_UNSUPPORTED_VERSION
  • Decrease the JS agent code size by removing legacy parts
  • fix: An indefinite setTimeout loop in Firefox


  • Improve the tree-shaking capability
  • Confidence score calculations moved to server for increased accuracy (Pro version)


  • Improve the performance slightly


  • Improve identification time for visitors who use an ad blocker or an M1 Mac
  • Improve identification accuracy


  • Add a new result field: confidence score. The confidence score field tells how much the agent is sure about the visitor identifier. See the API reference for more details.
  • Fix an error that occurs in Firefox Add-ons


  • Makes get run much faster when some time passes between calling load() and get(). See the JavaScript agent preloading guide to learn how to leverage it.
  • Added an error constant for bad server response format: FingerprintJS.ERROR_BAD_RESPONSE_FORMAT. The error can be caused by wrong endpoint.
  • The disableTls option is moved from the get options to the load options. It still works when set within get options for compatibility, but doesn't actually disable the TLS request. So we recommend updating your code if you use disableTls.
  • fix: JS agent may never complete getting the visitor identifier when the page is in background.


  • Fix client timeouts in WeChat built-in browser on iOS 13
  • Increase the accuracy of agent when the page runs in background