Before you submit — these must be correct
If any of these are wrong, your token may be accepted by our solver but rejected or scored poorly by the target site.
- proxy is required for all ThreatMetrix solves — the IP reputation is part of the fingerprint, and it must match the IP on your follow-up request.
- Send both returned cookies (thx_guid + tmx_guid) on your follow-up request. A missing ThreatMetrix cookie can trigger a challenge or deny outcome even on a clean residential IP.
ThreatMetrix Device-Fingerprinting Solver, solved in 5.0s.
Automate ThreatMetrix (LexisNexis Risk Solutions) session profiling. Pass org_id, session_id, and custom_domain — we profile the device against your session and return the thx_guid + tmx_guid cookies.
ThreatMetrix (LexisNexis Risk Solutions) is a fraud-prevention SDK used by banks and e-commerce sites. It fingerprints the device and browser during login or checkout, producing a risk score the merchant checks server-side. Our solver profiles the device against your session_id so ThreatMetrix recognises it as a genuine, profiled device.
Quick Integration
import requests, time
API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"
# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "ThreatMetrixTaskProxyLess",
"task_type": "ThreatMetrixTaskProxyLess",
"target_url": "https://www.kleinanzeigen.de/m-einloggen.html",
"org_id": "181rzcrc",
"page_id": "94",
"session_id": "3029471b-4b25-41cd-8d78-46598448325e",
"custom_domain": "dfme.kleinanzeigen.de"
}
}).json()
task_id = task["taskId"]
print(f"Task created: {task_id}")
# Step 2: Poll for result
while True:
result = requests.post(f"{API}/getTaskResult", json={
"clientKey": KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print("Solved!", result["solution"])
break
elif result["status"] == "failed":
print("Failed:", result.get("errorDescription"))
break
time.sleep(1)
1. Send Payload
Dispatch your ThreatMetrixTaskProxyLess to our processing cluster via the secure API endpoint.
2. Solving Engine
We profile the device against your session_id over your proxy: ThreatMetrix issues the thx_guid and tmx_guid device-identity cookies and we bind the fingerprint to your session. We return the two cookies for you to send on your follow-up request. Typical solve is a couple of seconds.
3. Get Result
Poll getTaskResult for the validated token, then finalize your automated request.
Using your own proxy
Use ThreatMetrixTask instead of ThreatMetrixTaskProxyLess to route the solve through your own proxy — useful when the target site checks that the solving IP matches the submitting IP.
import requests, time
API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"
# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "ThreatMetrixTask",
"task_type": "ThreatMetrixTask",
"target_url": "https://www.kleinanzeigen.de/m-einloggen.html",
"org_id": "181rzcrc",
"page_id": "94",
"session_id": "3029471b-4b25-41cd-8d78-46598448325e",
"custom_domain": "dfme.kleinanzeigen.de",
"proxyType": "http",
"proxyAddress": "ip",
"proxyPort": "port",
"proxyLogin": "username",
"proxyPassword": "password"
}
}).json()
task_id = task["taskId"]
print(f"Task created: {task_id}")
# Step 2: Poll for result
while True:
result = requests.post(f"{API}/getTaskResult", json={
"clientKey": KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print("Solved!", result["solution"])
break
elif result["status"] == "failed":
print("Failed:", result.get("errorDescription"))
break
time.sleep(1)
Additional proxy parameters
proxyTypetypestringreqrequiredProxy protocol: http, https, socks4, or socks5proxyAddresstypestringreqrequiredProxy IP address or hostnameproxyPorttypenumberreqrequiredProxy port numberproxyLogintypestringreqoptionalProxy username (if auth required)proxyPasswordtypestringreqoptionalProxy password (if auth required)userAgenttypestringreqoptionalUser-Agent string to use. Must match the UA you use when submitting the tokenTask Parameters
API Spectarget_urltypestringreqrequiredFull URL of the page that loads ThreatMetrix (e.g. the login or checkout page).org_idtypestringreqrequiredThreatMetrix organisation ID configured on the target site (e.g. '181rzcrc').page_idtypestringreqrequiredThreatMetrix page identifier for this flow (e.g. '94'). Found in the tags.js URL query string.session_idtypestringreqrequiredThe session UUID you generated for this transaction. ThreatMetrix binds the fingerprint to this ID; you query their API with it later.custom_domaintypestringreqrequiredThreatMetrix custom domain for this site (e.g. dfme.kleinanzeigen.de). Found in the tags.js script src on the target page.userAgenttypestringreqoptionalUser-Agent to profile under. Defaults to iOS Safari. Echo the same value on your subsequent request for fingerprint coherence.Response Shape
session_idtypestringEcho of the session_id you submitted, confirmed as profiled. Use this in your ThreatMetrix server-side API query.cookiestypeobjectThe ThreatMetrix device-identity cookies { thx_guid, tmx_guid }. Send both on your follow-up request.userAgenttypestringThe User-Agent used during profiling. Set this on your subsequent request for fingerprint coherence.Features
Pricing & Stats
Start solving threatmetrix device-fingerprinting.
$0.10 in free credits — no card. ~250 free solves to test before you spend.