Fingerprint SDK

Synthient provides a browser fingeprinting SDK with active session tracking. This page contains all information for integrating the SDK into your application.

What is Browser Fingerprinting?

Browser fingerprinting is a technique used to identify and track users based on their unique browser and device characteristics. Unlike cookies, which can be easily deleted or blocked, browser fingerprints are more persistent and harder to evade. This makes them a valuable tool for fraud detection, user authentication, and personalized experiences.

Website Integration

To fingerprint a visitor you can call the GetFingerprint function exported across all SDKs. On success this will return a visitor_token which contains all information attached with the device, browser, and user.

HTML

<script>
  const synPromise = import('https://cdn.synthient.com/v3/client.js').then(
    (Synthient) =>
      Synthient.init({
        publicKey: '00000000-0000-0000-0000-000000000000',
      }),
  )

  synPromise
    .then((syn) => syn.GetFingerprint())
    .then((result) => console.log(result.token))
  // Visitor Token
</script>

GET/v3/lookup/:token

Get Visitor Data

Once you've obtained a visitor token, you can query the token for all known attributes and the possible responses you may recieve.

Response Fields

  • Name
    token
    Type
    string
    Description

    Visitor token which was queried.

  • Name
    token_type
    Type
    string
    Description

    Type of the token issued (e.g. “metrics”).

  • Name
    timestamp
    Type
    integer
    Description

    Unix-ms timestamp when the response was generated.

  • Name
    fingerprint
    Type
    string
    Description

    Unique client fingerprint ID.

  • Name
    solved
    Type
    boolean
    Description

    Whether the challenge was successfully solved.

  • Name
    consumed
    Type
    boolean
    Description

    Whether the token has already been consumed.

  • Name
    metadata
    Type
    string | null
    Description

    A modifiable value for attaching additional metadata.

  • Name
    device.model
    Type
    string
    Description

    Device model (e.g. “iPhone 15 Pro Max”).

  • Name
    device.model_country
    Type
    string
    Description

    Country code for the device model.

  • Name
    device.brand
    Type
    string
    Description

    Device manufacturer (e.g. “Apple”).

  • Name
    device.os
    Type
    string
    Description

    Operating system name.

  • Name
    device.version
    Type
    string
    Description

    Operating system version.

  • Name
    device.is_charging
    Type
    boolean
    Description

    Whether the device is currently charging.

  • Name
    browser.name
    Type
    string
    Description

    Browser name (e.g. “Mobile Chrome”).

  • Name
    browser.version
    Type
    string
    Description

    Browser version number.

  • Name
    browser.incognito_mode
    Type
    boolean
    Description

    Whether the browser is in private/incognito mode.

  • Name
    browser.do_not_track
    Type
    boolean
    Description

    If the browser has enabled the “Do Not Track” setting.

  • Name
    signals
    Type
    array<string>
    Description

    Whether automated/bot signals were detected.

  • Name
    visitor_risk
    Type
    string
    Description

    Overall risk level of the visitor (e.g. “HIGH”).

  • Name
    ip
    Type
    string
    Description

    The visitor's IP address.

  • Name
    ip_data
    Type
    object
    Description

    Detailed IP intelligence, refer to the ip documentation for all sub-fields and their meanings.

Request

GET/v3/lookup/:token
curl -G https://v3api.synthient.com/v3/lookup/token/f7632969042612f2679e2ab65136a7dc \
  -H "Authorization: $API_KEY"

Response

{
  "token": "f7632969042612f2679e2ab65136a7dc",
  "token_type": "fingerprint",
  "timestamp": 1723882034971,
  "fingerprint": "01cef124dead83e3f7c4fa56569f22cf",
  "solved": true,
  "consumed": true,
  "metadata": null,
  "device": {
      "model": "iPhone 15 Pro Max",
      "model_country": "US",
      "brand": "Apple",
      "os": "iOS",
      "version": "17.5",
      "is_charging": true
  },
  "browser": {
      "name": "Mobile Chrome",
      "version": "125.0.6422.51",
      "incognito_mode": false,
      "do_not_track": false,
      "country_codes":["SY"]
  },
  "signals": [
    "HEADLESS_CHROME",
    "EMULATOR",
    "ANTIDETECT_GENERIC"
  ],
  "visitor_risk": "HIGH",
  "ip": "197.210.84.182",
  "network": {
    "asn": 29465,
    "isp": "MTN NIGERIA Communication limited",
    "type": "RESIDENTIAL",
    "org": "MTN Nigeria",
    "abuse_email": "[email protected]",
    "abuse_phone": "+08031230141",
    "domain": "mtnnigeria.net"
  },
  "location": {
    "country": "NG",
    "state": "EB",
    "city": "Abakaliki",
    "timezone": "Africa/Lagos",
    "longitude": 8.11368,
    "latitude": 6.32485,
    "geo_hash": "s1j"
  },
  "ip_data": {
      "device_count": 1,
      "devices": [
          {
              "os": "ANDROID",
              "version": "13"
          }
      ],
      "behavior": [
        "TOR_USER",
        "ACTIVE_CRAWLER",
        "CREDENTIAL_STUFFING"
      ],
      "categories": [
          "RESIDENTIAL_PROXY"
      ],
      "enriched": [
          {
            "provider": "LUNAPROXY",
            "type": "RESIDENTIAL_PROXY",
            "last_seen": "2025-04-21"
          },
          {
            "provider": "MARSPROXY",
            "type": "RESIDENTIAL_PROXY",
            "last_seen": "2025-04-21"
          },
          {
            "provider": "SMARTPROXY",
            "type": "RESIDENTIAL_PROXY",
            "last_seen": "2025-06-27"
          }
      ],
      "ip_risk": "HIGH"
    }
  }

GET/v3/visitor/:fingerprint/activity

Get Visitor Activity

This endpoint allows you to retrieve a paginated list of all your conversations. By default, a maximum of ten conversations are shown per page.

Parameters

  • Name
    fingerprint
    Type
    string
    Description

    The visitor fingerprint. This will query all activity associated with the unique fingerprint.

  • Name
    cursor
    Type
    integer
    Description

    The cursor parameter from the previous response. This will be used to paginate through the results.

  • Name
    limit
    Type
    integer
    Description

    Limit the number of conversations returned.

  • Name
    sort
    Type
    integer
    Description

    Sort by timestampe in order of asc or desc.

Response Fields

  • Name
    activiy
    Type
    array<object>
    Description

    The visitor activity. Returns an array of fingerprint activity objects.

  • Name
    cursor
    Type
    integer | null
    Description

    The cursor parameter for the next page of results. This will be used to paginate through the results. If there are no more results, this will be null.

  • Name
    count
    Type
    integer
    Description

    The number of results returned. Defaults to 50.

Request

GET/v3/visitor/:fingerprint/activity
curl -G https://v3api.synthient.com/v3/visitor/01cef124dead83e3f7c4fa56569f22cf/activity \
  -H "Authorization: $API_KEY"

Response

{

  "activity": [
    {
      "token": "f7632969042612f2679e2ab65136a7dc",
      "token_type": "fingerprint",
      "timestamp": 1723882034971,
      "fingerprint": "01cef124dead83e3f7c4fa56569f22cf",
      "solved": true,
      "consumed": false,
      "device": {
          "model": "iPhone 15 Pro Max",
          "model_country": "US",
          "brand": "Apple",
          "os": "iOS",
          "version": "17.5",
          "identifier": "RMLH-PCFL-GHDO",
          "is_charging": true
      },
      "browser": {
          "name": "Mobile Chrome",
          "version": "125.0.6422.51",
          "incognito_mode": false,
          "do_not_track": false
      },
      "signals": {
          "is_bot": false,
          "is_vm": false,
          "is_emulator": true,
          "is_jailbroken": false
      },
      "visitor_risk": "HIGH",
      "ip": "197.210.84.182",
      // Rest of Fingerprint Data
    },
    // ...
  ],
  "cursor": "Zjc2MzI5NjkwNDI2MTJmMjY3OWUyYWI2NTEzNmE3ZGM=",
  "count": 50
}

PUT/v3/lookup/:token

Attaching Metadata

Some clients may find it useful to attach additional information for a visitor. This can include attaching

  • Name
    metadata
    Type
    string | null
    Description

    Sets the metadata property for the specified token. If null, the metadata property will be reset.

Request

PUT/v3/lookup/:token
curl -X PUT https://v3api.synthient.com/v3/lookup/:token \
  -H "Authorization: $API_KEY" \
  -H "content-type: application/json" \
  --data-raw '{"metadata":"User is high risk."}'

Response

// No response content.

DELETE/v3/lookup/:token

Delete Visitor Data

To stay compliant with privacy regulations such as GDPR you can delete all data associated with a visitor.

Request

DELETE/v3/lookup/:token
curl -X DELETE https://v3api.synthient.com/v3/lookup/:token \
  -H "Authorization: $API_KEY"

Response

// No response content.

Detections