> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fingerprint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrating from FingerprintJS to Fingerprint

To migrate your implementation from FingerprintJS to Fingerprint Identification:

1. Determine your FingerprintJS version if you are not sure.
2. Follow the migration instructions below specific to your version.

## Determine your FingerprintJS version

### NPM installation

If you installed FingerprintJS using `npm`, then your application's `package.json` will include an entry for either `@fingerprintjs/fingerprintjs` or `@fingerprintjs/fingerprintjs2` along with the exact version that is being used.

<CodeGroup>
  ```json JSON theme={"theme":"github-dark-dimmed"}
  "dependencies": {
    "@fingerprintjs/fingerprintjs": "^x.y.z"
  }
  ```
</CodeGroup>

### CDN installation

If your application loads FingerprintJS using CDN, then the path specified in `script` or `import` will contain the version of FingerprintJS that is being used.

#### FingerprintJS v2.x

If the path in the script tag includes `/fingerprintjs2@2/`, then your application uses FingerprintJS v2.x.

<CodeGroup>
  ```html CDN theme={"theme":"github-dark-dimmed"}
  <script src="https://cdn.jsdelivr.net/npm/fingerprintjs2@2/dist/fingerprint2.min.js"></script>
  ```
</CodeGroup>

#### FingerprintJS v3.x and higher

The path segment `/vN/` in `script` or `import` statements indicates the version of FingerprintJS that is being used. In the below example, the version used is **v5**.

<CodeGroup>
  ```js CDN (v5) theme={"theme":"github-dark-dimmed"}
  const fpPromise = import('https://openfpcdn.io/fingerprintjs/v5');
  ```

  ```js CDN (v4) theme={"theme":"github-dark-dimmed"}
  const fpPromise = import('https://openfpcdn.io/fingerprintjs/v4');
  ```

  ```js CDN (v3 variant 1) theme={"theme":"github-dark-dimmed"}
  script.src = 'https://openfpcdn.io/fingerprintjs/v3/iife.min.js';
  ```

  ```html CDN (v3 variant 2) theme={"theme":"github-dark-dimmed"}
  <script src="https://openfpcdn.io/fingerprintjs/v3/iife.min.js"></script>
  ```
</CodeGroup>

## Migrating from FingerprintJS v5 and above (open-source) to Fingerprint Identification

You can migrate from [FingerprintJS v5 and above](https://github.com/fingerprintjs/fingerprintjs) to Fingerprint Identification in 30 seconds:

1. Sign up on [dashboard.fingerprint.com/signup](https://dashboard.fingerprint.com/signup), create an account, and get your [Public API key](https://dashboard.fingerprint.com/api-keys?type=browser).
2. In your `package.json` or `import` statement, change the `@fingerprintjs/fingerprintjs` package to `@fingerprint/agent`:

<CodeGroup>
  ```diff NPM theme={"theme":"github-dark-dimmed"}
  Run:
  npm uninstall @fingerprintjs/fingerprintjs
  npm install @fingerprint/agent

  And replace the package name in your JavaScript/TypeScript code:
  - import FingerprintJS from '@fingerprintjs/fingerprintjs'
  + import Fingerprint from '@fingerprint/agent'
  ```

  ```diff Yarn theme={"theme":"github-dark-dimmed"}
  Run:
  yarn remove @fingerprintjs/fingerprintjs
  yarn add @fingerprint/agent

  And replace the package name in your JavaScript/TypeScript code:
  - import FingerprintJS from '@fingerprintjs/fingerprintjs'
  + import Fingerprint from '@fingerprint/agent'
  ```

  ```ts CDN theme={"theme":"github-dark-dimmed"}
  <script>
    const fpPromise = import('https://openfpcdn.io/fingerprintjs/v5') // [!code --]
    const fpPromise = import('https://fpjscdn.net/v4/PUBLIC_API_KEY') // [!code ++]
      .then(Fingerprint => Fingerprint.start())
      // ...
  </script>
  ```

  ```ts CDN (legacy variant 1) theme={"theme":"github-dark-dimmed"}
  <script>
  // Initialize the agent at application startup.
  const fpPromise = new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.onload = resolve;
    script.onerror = reject;
    script.async = true;
    script.src = 'https://openfpcdn.io/fingerprintjs/v5/iife.min.js'; // [!code --]
    script.src = 'https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js'; // [!code ++]
    document.head.appendChild(script);
  })
    .then(() => Fingerprint.start());
  // ...
  </script>
  ```

  ```ts CDN (legacy variant 2) theme={"theme":"github-dark-dimmed"}
  <!-- Change the script URL: -->
  <script src="https://openfpcdn.io/fingerprintjs/v5/iife.min.js"></script> // [!code --]
  <script src="https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js"></script> // [!code ++]
  <script>
    // ...
  </script>
  ```
</CodeGroup>

3. Add the public API key to the `Fingerprint.start()` configuration:

<CodeGroup>
  ```javascript NPM/Yarn theme={"theme":"github-dark-dimmed"}
  FingerprintJS.load() // [!code --]
  Fingerprint.start({ apiKey: 'PUBLIC_API_KEY' }) // [!code ++]
  ```

  ```text CDN theme={"theme":"github-dark-dimmed"}
  Add your key to the agent script URL, for example:
  https://fpjscdn.net/v4/PUBLIC_API_KEY
  https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js
  ```
</CodeGroup>

That's it, you can now identify browsers with industry-leading accuracy.

## Migrating from FingerprintJS v4 (source-available) to Fingerprint Identification

You can migrate from [FingerprintJS v4](https://github.com/fingerprintjs/fingerprintjs/tree/v4) to Fingerprint Identification in 30 seconds:

1. Sign up on [dashboard.fingerprint.com/signup](https://dashboard.fingerprint.com/signup), create an account, and get your [Public API key](https://dashboard.fingerprint.com/api-keys?type=browser).
2. In your `package.json` or `import` statement, change the `@fingerprintjs/fingerprintjs` package to `@fingerprint/agent`:

<CodeGroup>
  ```diff NPM theme={"theme":"github-dark-dimmed"}
  Run:
  npm uninstall @fingerprintjs/fingerprintjs
  npm install @fingerprint/agent

  And replace the package name in your JavaScript/TypeScript code:
  - import FingerprintJS from '@fingerprintjs/fingerprintjs'
  + import Fingerprint from '@fingerprint/agent'
  ```

  ```diff Yarn theme={"theme":"github-dark-dimmed"}
  Run:
  yarn remove @fingerprintjs/fingerprintjs
  yarn add @fingerprint/agent

  And replace the package name in your JavaScript/TypeScript code:
  - import FingerprintJS from '@fingerprintjs/fingerprintjs'
  + import Fingerprint from '@fingerprint/agent'
  ```

  ```ts CDN theme={"theme":"github-dark-dimmed"}
  <script>
    const fpPromise = import('https://openfpcdn.io/fingerprintjs/v4') // [!code --]
    const fpPromise = import('https://fpjscdn.net/v4/PUBLIC_API_KEY') // [!code ++]
      .then(Fingerprint => Fingerprint.start())
      // ...
  </script>
  ```

  ```ts CDN (legacy variant 1) theme={"theme":"github-dark-dimmed"}
  <script>
  // Initialize the agent at application startup.
  const fpPromise = new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.onload = resolve;
    script.onerror = reject;
    script.async = true;
    script.src = 'https://openfpcdn.io/fingerprintjs/v4/iife.min.js'; // [!code --]
    script.src = 'https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js'; // [!code ++]
    document.head.appendChild(script);
  })
    .then(() => Fingerprint.start());
  // ...
  </script>
  ```

  ```ts CDN (legacy variant 2) theme={"theme":"github-dark-dimmed"}
  <!-- Change the script URL: -->
  <script src="https://openfpcdn.io/fingerprintjs/v4/iife.min.js"></script> // [!code --]
  <script src="https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js"></script> // [!code ++]
  <script>
    // ...
  </script>
  ```
</CodeGroup>

3. Add the public API key to the `Fingerprint.start()` configuration:

<CodeGroup>
  ```javascript NPM/Yarn theme={"theme":"github-dark-dimmed"}
  FingerprintJS.load() // [!code --]
  Fingerprint.start({ apiKey: 'PUBLIC_API_KEY' }) // [!code ++]
  ```

  ```text CDN theme={"theme":"github-dark-dimmed"}
  Add your key to the agent script URL, for example:
  https://fpjscdn.net/v4/PUBLIC_API_KEY
  https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js
  ```
</CodeGroup>

That's it, you can now identify browsers with industry-leading accuracy.

## Migrating from FingerprintJS v3 (open-source) to Fingerprint Identification

You can migrate from [FingerprintJS v3](https://github.com/fingerprintjs/fingerprintjs/tree/v3) to Fingerprint Identification in 30 seconds:

1. Sign up on [dashboard.fingerprint.com/signup](https://dashboard.fingerprint.com/signup), create an account, and get your [Public API key](https://dashboard.fingerprint.com/api-keys?type=browser).
2. In your `package.json` or `import` statement, change the `@fingerprintjs/fingerprintjs` package to `@fingerprint/agent`:

<CodeGroup>
  ```diff NPM theme={"theme":"github-dark-dimmed"}
  Run:
  npm uninstall @fingerprintjs/fingerprintjs
  npm install @fingerprint/agent

  And replace the package name in your JavaScript/TypeScript code:
  - import FingerprintJS from '@fingerprintjs/fingerprintjs'
  + import Fingerprint from '@fingerprint/agent'
  ```

  ```diff Yarn theme={"theme":"github-dark-dimmed"}
  Run:
  yarn remove @fingerprintjs/fingerprintjs
  yarn add @fingerprint/agent

  And replace the package name in your JavaScript/TypeScript code:
  - import FingerprintJS from '@fingerprintjs/fingerprintjs'
  + import Fingerprint from '@fingerprint/agent'
  ```

  ```ts CDN theme={"theme":"github-dark-dimmed"}
  <script>
    const fpPromise = import('https://openfpcdn.io/fingerprintjs/v3') // [!code --]
    const fpPromise = import('https://fpjscdn.net/v4/PUBLIC_API_KEY') // [!code ++]
      .then(Fingerprint => Fingerprint.start())
      // ...
  </script>
  ```

  ```ts CDN (legacy variant 1) theme={"theme":"github-dark-dimmed"}
  <script>
  // Initialize the agent at application startup.
  const fpPromise = new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.onload = resolve;
    script.onerror = reject;
    script.async = true;
    script.src = 'https://openfpcdn.io/fingerprintjs/v3/iife.min.js'; // [!code --]
    script.src = 'https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js'; // [!code ++]
    document.head.appendChild(script);
  })
    .then(() => Fingerprint.start());
  // ...
  </script>
  ```

  ```ts CDN (legacy variant 2) theme={"theme":"github-dark-dimmed"}
  <!-- Change the script URL: -->
  <script src="https://openfpcdn.io/fingerprintjs/v3/iife.min.js"></script> // [!code --]
  <script src="https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js"></script> // [!code ++]
  <script>
    // ...
  </script>
  ```
</CodeGroup>

3. Add the public API key to the `Fingerprint.start()` configuration:

<CodeGroup>
  ```javascript NPM/Yarn theme={"theme":"github-dark-dimmed"}
  FingerprintJS.load() // [!code --]
  Fingerprint.start({ apiKey: 'PUBLIC_API_KEY' }) // [!code ++]
  ```

  ```text CDN theme={"theme":"github-dark-dimmed"}
  Add your key to the agent script URL, for example:
  https://fpjscdn.net/v4/PUBLIC_API_KEY
  https://fpjscdn.net/v4/PUBLIC_API_KEY/iife.min.js
  ```
</CodeGroup>

That's it, you can now identify browsers with industry-leading accuracy.

## Migrating from FingerprintJS v2 to Fingerprint Identification

Please see Migrating from [FingerprintJS v2 to Fingerprint Identification](/docs/migrating-from-open-source-v2).

## What's next

As a Fingerprint Identification user, you now have access to various resources not available for FingerprintJS:

* Use the [Server API](/reference/server-api), [Webhooks](/docs/webhooks), or [Sealed results](/docs/sealed-client-results) to securely process Fingerprint results in a server environment.
* Explore Fingerprint [frontend libraries](/docs/frontend-libraries) and [backend libraries](/reference/server-sdks).
* Identify [iOS](/docs/ios) and [Android](/docs/native-android-integration) devices.
* Use [Smart Signals](/docs/smart-signals-reference) to detect bots, VPN users, browser tampering, incognito mode, and more.
