• Fallback endpoint. You can set multiple endpoints; JavaScript agent will try to send the request with the first endpoint, and if the request fails, retry the request with the second endpoint and so on. Supported by all options: scriptUrlPattern, endpoint and tlsEndpoint.
  • Placeholder values for cases where you want to use the default endpoint as a fallback endpoint:


  • A new error is thrown when JS agent is blocked by Content Security Policy: FingerprintJS.ERROR_CSP_BLOCK. JS agent doesn't retry network requests blocked by CSP. In previous versions a common error was thrown in this case: FingerprintJS.ERROR_NETWORK_CONNECTION.


  • Bot Detection agent is embedded into FingerprintJS Pro agent
  • A new fp.get() option products to enable or disable Fingerprint products (Browser Identification, BotDetection)


  • Security improvements


  • Add the zeroTrust field to the TypeScript declaration of JS agent result object



  • fix: JS agent installed from jsDelivr makes a network request to fpnpmcdn.io that can be blocked by your Content Security Policy. This is a temporary fix, it will be reverted. Please switch to our CDN to avoid this problem in future.


  • A new CDN for the CDN installation methods. Follow this guide to update. The old CDN URLs pointing to jsDelivr continue working, but we recommend switching to our CDN to avoid excess network requests.
  • JS agent installed from NPM loads its code from our CDN in runtime. It guarantees that you always use the latest and the most accurate version of JS agent.
    • If you use a Content Security Policy, add the CDN domain to the CSP as described here (see the "NPM installation" tab).
    • If you do an HTML preconnect, consider preconnecting to the CDN too as described here (see the "NPM installation" tab).
  • Add firstSeenAt and lastSeenAt fields to JS agent responses. See more details in the useful timestamps guide.
  • New error types: ERROR_SCRIPT_LOAD_FAIL and ERROR_INSTALLATION_METHOD_RESTRICTED. See the error handling guide for more details.
  • A new load() option in the NPM package of JS agent: scriptUrlPattern. See more details in the JS agent guide.


  • 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"