Fingerprint SDK
The Fingerprint SDK is only available in Beta at this time. Please contact [email protected] for access.
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.
Do not embed your private key into your site. Use the public key for directly interacting with the SDK. The private key is only used for server-side verification of the fingerprint token.
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 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
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 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
ordesc
.
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
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
}
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. Ifnull
, the metadata property will be reset.
Request
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 Visitor Data
To stay compliant with privacy regulations such as GDPR you can delete all data associated with a visitor.
This action is irreversible. Visitor data once deleted - cannot be recovered.
Request
curl -X DELETE https://v3api.synthient.com/v3/lookup/:token \
-H "Authorization: $API_KEY"
Response
// No response content.