Skip to main content
POST https://api.tracenow.io/identify The /identify endpoint is called by the tracenow browser snippet. It accepts raw browser fingerprint components, computes a stable visitor_id, and returns a short-lived signed device token (dt_...) that you pass to /trace or /validate. This endpoint uses a publishable key, not a secret key. It is safe to call from the browser.

Request

{
  "publishable_key": "pk_live_xxxxxxxxxxxxxxxxxxxx",
  "components": {
    "canvas": "...",
    "webgl": "...",
    "fonts": ["Arial", "Helvetica"],
    "screen": { "width": 1920, "height": 1080 },
    "timezone": "America/New_York",
    "languages": ["en-US"],
    "platform": "MacIntel"
  }
}
FieldTypeRequiredDescription
publishable_keystringYesPublishable key from your dashboard (pk_live_...).
componentsobjectYesFingerprint components collected by the browser snippet.

Response

{
  "device_token": "dt_eyJ...",
  "visitor_id": "vis_01J9ZQK2XVBP3N7M4FGHD8R5TW",
  "expires_in": 300
}
FieldTypeDescription
device_tokenstringSigned JWT (dt_...). Pass this to /trace or /validate. Valid for expires_in seconds.
visitor_idstringStable identifier for this browser/device combination. Consistent across sessions for the same device.
expires_inintegerToken lifetime in seconds (300 by default).

Browser snippet

The easiest way to call /identify is via the tracenow snippet hosted at cdn.tracenow.io/trace.min.js. It collects components automatically and handles token lifecycle.
<script src="https://cdn.tracenow.io/trace.min.js"></script>
<script>
  const tn = tracenow("pk_live_xxxxxxxxxxxxxxxxxxxx");
  const token = await tn.identify();
  // pass token to your server
</script>