Skip to main content
GET
/
events
/
search
Node SDK
// Install: npm install @fingerprintjs/fingerprintjs-pro-server-api
import {
  FingerprintJsServerApiClient,
  Region,
} from '@fingerprintjs/fingerprintjs-pro-server-api'

const client = new FingerprintJsServerApiClient({
  apiKey: 'SERVER_API_KEY', // Replace with your key
  region: Region.Global, // Replace with your region
})

// Search for identification events
client.searchEvents({
  limit: 10,
  suspect: true,
}).then((events) => {
  console.log(events)
})
{
  "events": [
    {
      "products": {
        "identification": {
          "data": {
            "visitorId": "Ibk1527CUFmcnjLwIs4A9",
            "requestId": "1708102555327.NLOjmg",
            "incognito": true,
            "linkedId": "somelinkedId",
            "tag": {},
            "time": "2019-05-21T16:40:13Z",
            "timestamp": 1582299576512,
            "url": "https://www.example.com/login?hope{this{works[!",
            "ip": "61.127.217.15",
            "ipLocation": {
              "accuracyRadius": 10,
              "latitude": 49.982,
              "longitude": 36.2566,
              "postalCode": "61202",
              "timezone": "Europe/Dusseldorf",
              "city": {
                "name": "Dusseldorf"
              },
              "country": {
                "code": "DE",
                "name": "Germany"
              },
              "continent": {
                "code": "EU",
                "name": "Europe"
              },
              "subdivisions": [
                {
                  "isoCode": "63",
                  "name": "North Rhine-Westphalia"
                }
              ]
            },
            "browserDetails": {
              "browserName": "Chrome",
              "browserMajorVersion": "74",
              "browserFullVersion": "74.0.3729",
              "os": "Windows",
              "osVersion": "7",
              "device": "Other",
              "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...."
            },
            "confidence": {
              "score": 0.97
            },
            "visitorFound": false,
            "firstSeenAt": {
              "global": "2022-03-16T11:26:45.362Z",
              "subscription": "2022-03-16T11:31:01.101Z"
            },
            "lastSeenAt": {
              "global": null,
              "subscription": null
            },
            "replayed": false
          }
        },
        "botd": {
          "data": {
            "bot": {
              "result": "notDetected"
            },
            "url": "https://www.example.com/login?hope{this{works}[!",
            "ip": "61.127.217.15",
            "time": "2019-05-21T16:40:13Z",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36",
            "requestId": "1708102555327.NLOjmg"
          }
        },
        "rootApps": {
          "data": {
            "result": false
          }
        },
        "emulator": {
          "data": {
            "result": false
          }
        },
        "ipInfo": {
          "data": {
            "v4": {
              "address": "94.142.239.124",
              "geolocation": {
                "accuracyRadius": 20,
                "latitude": 50.05,
                "longitude": 14.4,
                "postalCode": "150 00",
                "timezone": "Europe/Prague",
                "city": {
                  "name": "Prague"
                },
                "country": {
                  "code": "CZ",
                  "name": "Czechia"
                },
                "continent": {
                  "code": "EU",
                  "name": "Europe"
                },
                "subdivisions": [
                  {
                    "isoCode": "10",
                    "name": "Hlavni mesto Praha"
                  }
                ]
              },
              "asn": {
                "asn": "7922",
                "name": "COMCAST-7922",
                "network": "73.136.0.0/13"
              },
              "datacenter": {
                "result": true,
                "name": "DediPath"
              }
            },
            "v6": {
              "address": "2001:db8:3333:4444:5555:6666:7777:8888",
              "geolocation": {
                "accuracyRadius": 5,
                "latitude": 49.982,
                "longitude": 36.2566,
                "postalCode": "10112",
                "timezone": "Europe/Berlin",
                "city": {
                  "name": "Berlin"
                },
                "country": {
                  "code": "DE",
                  "name": "Germany"
                },
                "continent": {
                  "code": "EU",
                  "name": "Europe"
                },
                "subdivisions": [
                  {
                    "isoCode": "BE",
                    "name": "Land Berlin"
                  }
                ]
              },
              "asn": {
                "asn": "6805",
                "name": "Telefonica Germany",
                "network": "2a02:3100::/24"
              },
              "datacenter": {
                "result": false,
                "name": ""
              }
            }
          }
        },
        "ipBlocklist": {
          "data": {
            "result": false,
            "details": {
              "emailSpam": false,
              "attackSource": false
            }
          }
        },
        "tor": {
          "data": {
            "result": false
          }
        },
        "vpn": {
          "data": {
            "result": false,
            "confidence": "high",
            "originTimezone": "Europe/Berlin",
            "originCountry": "unknown",
            "methods": {
              "timezoneMismatch": false,
              "publicVPN": false,
              "auxiliaryMobile": false,
              "osMismatch": false,
              "relay": false
            }
          }
        },
        "proxy": {
          "data": {
            "result": false,
            "confidence": "high",
            "details": {
              "proxyType": "residential",
              "lastSeenAt": "2025-08-12T13:00:00Z"
            }
          }
        },
        "incognito": {
          "data": {
            "result": false
          }
        },
        "tampering": {
          "data": {
            "result": false,
            "anomalyScore": 0.1955,
            "antiDetectBrowser": false
          }
        },
        "clonedApp": {
          "data": {
            "result": false
          }
        },
        "factoryReset": {
          "data": {
            "time": "1970-01-01T00:00:00Z",
            "timestamp": 0
          }
        },
        "jailbroken": {
          "data": {
            "result": false
          }
        },
        "frida": {
          "data": {
            "result": false
          }
        },
        "privacySettings": {
          "data": {
            "result": false
          }
        },
        "virtualMachine": {
          "data": {
            "result": false
          }
        },
        "rawDeviceAttributes": {
          "data": {
            "architecture": {
              "value": 127
            },
            "audio": {
              "value": 35.73832903057337
            },
            "canvas": {
              "value": {
                "Winding": true,
                "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c",
                "Text": "dd2474a56ff78c1de3e7a07070ba3b7d"
              }
            },
            "colorDepth": {
              "value": 30
            },
            "colorGamut": {
              "value": "p3"
            },
            "contrast": {
              "value": 0
            },
            "cookiesEnabled": {
              "value": true
            },
            "cpuClass": {},
            "fonts": {
              "value": [
                "Arial Unicode MS",
                "Gill Sans",
                "Helvetica Neue",
                "Menlo"
              ]
            }
          }
        },
        "highActivity": {
          "data": {
            "result": false
          }
        },
        "locationSpoofing": {
          "data": {
            "result": false
          }
        },
        "velocity": {
          "data": {
            "distinctIp": {
              "intervals": {
                "5m": 1,
                "1h": 1,
                "24h": 1
              }
            },
            "distinctLinkedId": {},
            "distinctCountry": {
              "intervals": {
                "5m": 1,
                "1h": 2,
                "24h": 2
              }
            },
            "events": {
              "intervals": {
                "5m": 1,
                "1h": 5,
                "24h": 5
              }
            },
            "ipEvents": {
              "intervals": {
                "5m": 1,
                "1h": 5,
                "24h": 5
              }
            },
            "distinctIpByLinkedId": {
              "intervals": {
                "5m": 1,
                "1h": 5,
                "24h": 5
              }
            },
            "distinctVisitorIdByLinkedId": {
              "intervals": {
                "5m": 1,
                "1h": 5,
                "24h": 5
              }
            }
          }
        },
        "developerTools": {
          "data": {
            "result": false
          }
        },
        "mitmAttack": {
          "data": {
            "result": false
          }
        },
        "proximity": {
          "data": {
            "id": "w1aTfd4MCvl",
            "precisionRadius": 10,
            "confidence": 0.95
          }
        }
      }
    }
  ],
  "paginationKey": "1655373953086"
}
Deprecation NoticeThis version of Server API is marked as deprecated starting on Oct 31st 2025 and will be fully removed on Oct 31st 2026 according to our API Deprecation Policy. If you still use this version, please follow our migration guide to migrate from this deprecated version to the new one.
Search for identification events, including Smart Signals, using multiple filtering criteria. If you don’t provide start or end parameters, the default search range is the last 7 days. Please note that events include mobile signals (e.g. rootApps) even if the request originated from a non-mobile platform. We recommend you ignore mobile signals for such requests.

Authorizations

Auth-API-Key
string
header
required

Query Parameters

limit
integer<int32>
required

Limit the number of events returned.

Required range: x >= 1
Example:

10

pagination_key
string

Use pagination_key to get the next page of results.

When more results are available (e.g., you requested up to 200 results for your search using limit, but there are more than 200 events total matching your request), the paginationKey top-level attribute is added to the response. The key corresponds to the timestamp of the last returned event. In the following request, use that value in the pagination_key parameter to get the next page of results:

  1. First request, returning most recent 200 events: GET api-base-url/events/search?limit=200
  2. Use response.paginationKey to get the next page of results: GET api-base-url/events/search?limit=200&pagination_key=1740815825085
visitor_id
string

Unique visitor identifier issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this visitor_id.

bot
enum<string>

Filter events by the Bot Detection result, specifically: all - events where any kind of bot was detected. good - events where a good bot was detected. bad - events where a bad bot was detected. none - events where no bot was detected.

Note: When using this parameter, only events with the products.botd.data.bot.result property set to a valid value are returned. Events without a products.botd Smart Signal result are left out of the response.

Available options:
all,
good,
bad,
none
ip_address
string

Filter events by IP address range. The range can be as specific as a single IP (/32 for IPv4 or /128 for IPv6) All ip_address filters must use CIDR notation, for example, 10.0.0.0/24, 192.168.0.1/32

linked_id
string

Filter events by your custom identifier.

You can use linked IDs to associate identification requests with your own identifier, for example, session ID, purchase ID, or transaction ID. You can then use this linked_id parameter to retrieve all events associated with your custom identifier.

start
integer<int64>

Filter events with a timestamp greater than the start time, in Unix time (milliseconds).

end
integer<int64>

Filter events with a timestamp smaller than the end time, in Unix time (milliseconds).

reverse
boolean

Sort events in reverse timestamp order.

suspect
boolean

Filter events previously tagged as suspicious via the Update API.

Note: When using this parameter, only events with the suspect property explicitly set to true or false are returned. Events with undefined suspect property are left out of the response.

vpn
boolean

Filter events by VPN Detection result.

Note: When using this parameter, only events with the products.vpn.data.result property set to true or false are returned. Events without a products.vpn Smart Signal result are left out of the response.

virtual_machine
boolean

Filter events by Virtual Machine Detection result.

Note: When using this parameter, only events with the products.virtualMachine.data.result property set to true or false are returned. Events without a products.virtualMachine Smart Signal result are left out of the response.

tampering
boolean

Filter events by Tampering Detection result.

Note: When using this parameter, only events with the products.tampering.data.result property set to true or false are returned. Events without a products.tampering Smart Signal result are left out of the response.

anti_detect_browser
boolean

Filter events by Anti-detect Browser Detection result.

Note: When using this parameter, only events with the products.tampering.data.antiDetectBrowser property set to true or false are returned. Events without a products.tampering Smart Signal result are left out of the response.

incognito
boolean

Filter events by Browser Incognito Detection result.

Note: When using this parameter, only events with the products.incognito.data.result property set to true or false are returned. Events without a products.incognito Smart Signal result are left out of the response.

privacy_settings
boolean

Filter events by Privacy Settings Detection result.

Note: When using this parameter, only events with the products.privacySettings.data.result property set to true or false are returned. Events without a products.privacySettings Smart Signal result are left out of the response.

jailbroken
boolean

Filter events by Jailbroken Device Detection result.

Note: When using this parameter, only events with the products.jailbroken.data.result property set to true or false are returned. Events without a products.jailbroken Smart Signal result are left out of the response.

frida
boolean

Filter events by Frida Detection result.

Note: When using this parameter, only events with the products.frida.data.result property set to true or false are returned. Events without a products.frida Smart Signal result are left out of the response.

factory_reset
boolean

Filter events by Factory Reset Detection result.

Note: When using this parameter, only events with the products.factoryReset.data.result property set to true or false are returned. Events without a products.factoryReset Smart Signal result are left out of the response.

cloned_app
boolean

Filter events by Cloned App Detection result.

Note: When using this parameter, only events with the products.clonedApp.data.result property set to true or false are returned. Events without a products.clonedApp Smart Signal result are left out of the response.

emulator
boolean

Filter events by Android Emulator Detection result.

Note: When using this parameter, only events with the products.emulator.data.result property set to true or false are returned. Events without a products.emulator Smart Signal result are left out of the response.

root_apps
boolean

Filter events by Rooted Device Detection result.

Note: When using this parameter, only events with the products.rootApps.data.result property set to true or false are returned. Events without a products.rootApps Smart Signal result are left out of the response.

vpn_confidence
enum<string>

Filter events by VPN Detection result confidence level. high - events with high VPN Detection confidence. medium - events with medium VPN Detection confidence. low - events with low VPN Detection confidence.

Note: When using this parameter, only events with the products.vpn.data.confidence property set to a valid value are returned. Events without a products.vpn Smart Signal result are left out of the response.

Available options:
high,
medium,
low
min_suspect_score
number<float>

Filter events with Suspect Score result above a provided minimum threshold.

Note: When using this parameter, only events where the products.suspectScore.data.result property set to a value exceeding your threshold are returned. Events without a products.suspectScore Smart Signal result are left out of the response.

ip_blocklist
boolean

Filter events by IP Blocklist Detection result.

Note: When using this parameter, only events with the products.ipBlocklist.data.result property set to true or false are returned. Events without a products.ipBlocklist Smart Signal result are left out of the response.

datacenter
boolean

Filter events by Datacenter Detection result.

Note: When using this parameter, only events with the products.ipInfo.data.v4.datacenter.result or products.ipInfo.data.v6.datacenter.result property set to true or false are returned. Events without a products.ipInfo Smart Signal result are left out of the response.

developer_tools
boolean

Filter events by Developer Tools detection result.

Note: When using this parameter, only events with the products.developerTools.data.result property set to true or false are returned. Events without a products.developerTools Smart Signal result are left out of the response.

location_spoofing
boolean

Filter events by Location Spoofing detection result.

Note: When using this parameter, only events with the products.locationSpoofing.data.result property set to true or false are returned. Events without a products.locationSpoofing Smart Signal result are left out of the response.

mitm_attack
boolean

Filter events by MITM (Man-in-the-Middle) Attack detection result.

Note: When using this parameter, only events with the products.mitmAttack.data.result property set to true or false are returned. Events without a products.mitmAttack Smart Signal result are left out of the response.

proxy
boolean

Filter events by Proxy detection result.

Note: When using this parameter, only events with the products.proxy.data.result property set to true or false are returned. Events without a products.proxy Smart Signal result are left out of the response.

sdk_version
string

Filter events by a specific SDK version associated with the identification event. Example: 3.11.14

sdk_platform
enum<string>

Filter events by the SDK Platform associated with the identification event. js - JavaScript agent (Web). ios - Apple iOS based devices. android - Android based devices.

Available options:
js,
android,
ios
environment
string[]

Filter for events by providing one or more environment IDs.

proximity_id
string

Filter events by the most precise Proximity ID provided by default.

Note: When using this parameter, only events with the products.proximity.id property matching the provided ID are returned. Events without a products.proximity result are left out of the response.

proximity_precision_radius
enum<integer>

Filter events by Proximity Radius.

Note: When using this parameter, only events with the products.proximity.precisionRadius property set to a valid value are returned. Events without a products.proximity result are left out of the response.

Available options:
10,
25,
65,
175,
450,
1200,
3300,
8500,
22500

Response

Events matching the filter(s).

Contains a list of all identification events matching the specified search criteria.

events
object[]
paginationKey
string

Use this value in the pagination_key parameter to request the next page of search results.