Skip to main content

Overview

Device fingerprinting creates a unique identifier for each device accessing your application, allowing you to track the same device across multiple signups and detect multi-accounting.
Fingerprints are automatically collected by client SDKs. Server-side SDKs receive fingerprints from the client.

What We Track

Device fingerprints are built from browser and hardware signals:
  • Browser user agent, timezone, and language
  • Screen resolution and color depth
  • Canvas and WebGL rendering
  • CPU cores and device memory
  • Touch support and hardware capabilities

API Response

{
  "checks": {
    "device": {
      "pass": true,
      "latency": 12.5
    }
  },
  "metadata": {
    "fingerprintHash": "abc123def456",
    "previousSignups": 0
  }
}
When device reuse is detected:
{
  "checks": {
    "device": {
      "pass": false,
      "latency": 15.2
    }
  },
  "metadata": {
    "fingerprintHash": "abc123def456",
    "previousSignups": 3
  },
  "signals": ["device_reuse", "device_seen_3_times"]
}
pass
boolean
false if device has been used for 3+ signups, true otherwise
latency
number
Check execution time in milliseconds
metadata.fingerprintHash
string
Unique device fingerprint hash
metadata.previousSignups
number
Number of previous signups from this device

Configuration

FLAG

Recommended to FLAG device reuse since multiple accounts may be legitimate (family devices).

Next Steps