Skip to main content

Install Fingerprint

1

Create an account

Sign up for a free trial to get your API key, no credit card is required.
Please make sure the following domains are allowed in your firewall:
  • https://fingerprint.com
  • https://*.fingerprint.com
  • https://api.fpjs.pro
2

Get your API Key

In the Dashboard, go to API keys > Public from the sidebar and copy your public API key to run the examples below.
3

Add the client-side agent

You can add the JavaScript agent to your website or add a native SDK to your iOS or Android app. The agent collects browser or device attributes, sends them to the Fingerprint backend, and receives a visitor_id for that browser or mobile device.Let’s start with JavaScript. You can install the agent using a package manager or our CDN.
npm install @fingerprint/agent
Note: Each workspace exists in a specific region. If you have chosen Europe or Asia as your data region, you must specify the region option as eu or ap in your agent configuration to match your workspace.
Working with ad blockers and privacy-focused browsersRequests to Fingerprint APIs are often blocked by ad-blockers or privacy-focused browsers like Brave. Make sure to disable your ad blocker when trying out the examples above.To identify 100% of visitors with maximum possible accuracy, use one of our cloud proxy integrations. See protecting the JavaScript agent from ad blockers for more details.
4

Send request

Open the page or app where you installed Fingerprint and wait a second. The script automatically runs on page load.
5

View events

Now ensure the script is working as expected by visiting the Events page. You should see a new event with the event_id field.
A screenshot of the Events page in the Fingerprint Dashboard. It shows the events table with a single identification event, including event_id, date, visitor_id, and browser columns.

If you cannot set up Fingerprint right now, you can view the code and response in our browser sandbox environment.Open Stackblitz

Access detailed insights about a visitor

Smart Signals are actionable device intelligence insights about your visitors. These include Bot detection, VPN detection, Browser tampering detection, and many more. For security reasons, Smart Signals are unavailable in the response returned to the client agent. You can securely access them in a server-side environment using Server API, Webhooks, or Sealed Client Results. For example, to use the Server API:
1

Send your first event

You may skip this step if you already generated an identification event using the steps above.Ensure your site or app has sent its first identification event, and then copy its event_id. You can find this field in the Events page table.
2

Generate your secret API key

Go to API keys > Server API from the sidebar and click New secret key to generate your key.
3

Get an event by event ID

Visit the API reference and paste your secret key as the Authorization header and event_id into the API explorer. This will return all information for that identification event, including Smart Signals.You should see a response similar to the following:
{
  "event_id": "1708102555327.NLOjmg",
  "linked_id": "somelinkedId",
  "tags": {},
  "timestamp": 1708102555327,
  "url": "https://www.example.com/login",
  "ip_address": "61.127.217.15",
  "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....",
  "client_referrer": "https://example.com/blog/my-article",
  "browser_details": {
    "browser_name": "Chrome",
    "browser_major_version": "74",
    "browser_full_version": "74.0.3729",
    "os": "Windows",
    "os_version": "7",
    "device": "Other"
  },
  "identification": {
    "visitor_id": "Ibk1527CUFmcnjLwIs4A9",
    "confidence": {
      "score": 0.97,
      "version": "1.1"
    },
    "visitor_found": false,
    "first_seen_at": 1708102555327,
    "last_seen_at": 1708102555327
  },
  "supplementary_id_high_recall": {
    "visitor_id": "3HNey93AkBW6CRbxV6xP",
    "visitor_found": true,
    "confidence": {
      "score": 0.97,
      "version": "1.1"
    },
    "first_seen_at": 1708102555327,
    "last_seen_at": 1708102555327
  },     
  "proximity": {
    "id": "w1aTfd4MCvl",
    "precision_radius": 10,
    "confidence": 0.95
  },
  "bot": "not_detected",
  "root_apps": false,
  "emulator": false,
  "ip_info": {
    "v4": {
      "address": "94.142.239.124",
      "geolocation": {
        "accuracy_radius": 20,
        "latitude": 50.05,
        "longitude": 14.4,
        "postal_code": "150 00",
        "timezone": "Europe/Prague",
        "city_name": "Prague",
        "country_code": "CZ",
        "country_name": "Czechia",
        "continent_code": "EU",
        "continent_name": "Europe",
        "subdivisions": [
          {
            "iso_code": "10",
            "name": "Hlavni mesto Praha"
          }
        ]
      },
      "asn": "7922",
      "asn_name": "COMCAST-7922",
      "asn_network": "73.136.0.0/13",
      "asn_type": "isp",
      "datacenter_result": true,
      "datacenter_name": "DediPath"
    },
    "v6": {
      "address": "2001:db8:3333:4444:5555:6666:7777:8888",
      "geolocation": {
        "accuracy_radius": 5,
        "latitude": 49.982,
        "longitude": 36.2566,
        "postal_code": "10112",
        "timezone": "Europe/Berlin",
        "city_name": "Berlin",
        "country_code": "DE",
        "country_name": "Germany",
        "continent_code": "EU",
        "continent_name": "Europe",
        "subdivisions": [
          {
            "iso_code": "BE",
            "name": "Land Berlin"
          }
        ]
      },
      "asn": "6805",
      "asn_name": "Telefonica Germany",
      "asn_network": "2a02:3100::/24",
      "asn_type": "isp",
      "datacenter_result": false,
      "datacenter_name": ""
    }
  },
  "ip_blocklist": {
    "email_spam": false,
    "attack_source": false,
    "tor_node": false
  },
  "proxy": true,
  "proxy_confidence": "low",
  "proxy_details": {
    "proxy_type": "residential",
    "last_seen_at": 1708102555327
  },
  "vpn": false,
  "vpn_confidence": "high",
  "vpn_origin_timezone": "Europe/Berlin",
  "vpn_origin_country": "unknown",
  "vpn_methods": {
      "timezone_mismatch": false,
      "public_vpn": false,
      "auxiliary_mobile": false,
      "os_mismatch": false,
      "relay": false
  },
  "incognito": false,
  "tampering": false,
  "tampering_details" : {
    "anomaly_score": 0.1955,
    "anti_detect_browser": false
  },
  "cloned_app": false,
  "factory_reset_timestamp": 0,
  "jailbroken": false,
  "frida": false,
  "privacy_settings": false,
  "virtual_machine": false,
  "location_spoofing": false,
  "velocity": {
    "distinct_ip": {
      "5_minutes": 1,
      "1_hour": 1,
      "24_hours": 1
    },
    "distinct_country": {
      "5_minutes": 1,
      "1_hour": 2,
      "24_hours": 2
    },
    "events": {
      "5_minutes": 1,
      "1_hour": 5,
      "24_hours": 5
    },
    "ip_events": {
      "5_minutes": 1,
      "1_hour": 5,
      "24_hours": 5
    },
    "distinct_ip_by_linked_id": {
      "5_minutes": 1,
      "1_hour": 5,
      "24_hours": 5
    },
    "distinct_visitor_id_by_linked_id": {
      "5_minutes": 1,
      "1_hour": 5,
      "24_hours": 5
    }
  },
  "developer_tools": false,
  "mitm_attack": false,
  "sdk": {
    "platform": "js",
    "version": "3.11.10",
    "integrations": [
      {
        "name": "fingerprint-pro-react",
        "version": "3.11.10",
        "subintegration": {
          "name": "preact",
          "version": "10.21.0"
        }
      }
    ]
  },
  "replayed": false,
  "high_activity_device": false
}
If you have chosen Europe or Asia as your data region, use eu.api.fpjs.io or ap.api.fpjs.io respectively.
4

Use Server API in your backend

We support several backend libraries to make it easier to work with the Fingerprint Server API and other resources. You can view available libraries from the Integrations page in the Dashboard or below.

Next steps