An IP fraud score API in Python returns fraud_score, risk_level, and anonymization flags. On ipXapi that is GET /api/fraud-score?ip=8.8.8.8 with Bearer auth. Official sample IP: 8.8.8.8.
Basic is $29.99/mo with a 7-day trial or 50 requests. This is not GET /api/ip. MCP: mcp.ipxapi.com.
Request: official 8.8.8.8
curl 'https://ipxapi.com/api/fraud-score?ip=8.8.8.8' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_KEY'
Python: same contract
import os, urllib.request
req = urllib.request.Request(
"https://ipxapi.com/api/fraud-score?ip=8.8.8.8",
headers={"Authorization": "Bearer " + os.environ["IPXAPI_KEY"], "Accept": "application/json"},
)
print(urllib.request.urlopen(req).read().decode())
Response: official 8.8.8.8 sample (2026-01-23)
{
"ip": "8.8.8.8",
"fraud_score": 0,
"risk_level": "low",
"is_high_risk": false,
"operator": {"isp": "Google LLC", "asn": "15169", "hostname": "dns.google"},
"datacenter": {"is_datacenter": true},
"anonymization": {"is_vpn": false, "is_tor": true, "is_proxy": false},
"checked_at": "2026-01-23T12:54:54Z"
}
Score 0 is not “residential.” The fixture sets is_tor and is_datacenter true.
Go live
1. Register — 7-day trial.
2. Copy the Bearer token.
3. GET /api/fraud-score with an IPv4.
4. Branch on is_high_risk and anonymization.
Score an IP in Python →