Products
IP Geolocation Anonymity Detection Blocklists IP Reputation Scores ASN & Company Network Classification Mobile Carriers Extended ASN API ipdata.free
Resources
Documentation API Reference SDKs & Libraries Research Tool ISP directory ASN directory Datacenter networks Mobile carriers
Pricing Log in
Sign up

Understanding IP Reputation Scores

JK
Jonathan Kosgei
8 min read Engineering

What is IP Reputation?

Every IP address on the internet carries a history. Just as a credit score summarizes a person's financial behavior, an IP reputation score summarizes an IP address's observed behavior across the internet.

IP reputation systems aggregate data from thousands of sources — spam traps, honeypots, abuse reports, botnet trackers, and real-time traffic analysis — to produce a single score that answers: how trustworthy is this IP?

Trust Score vs Threat Score

Most reputation APIs return two distinct scores. It's important to understand the difference:

Trust Score (0–100, higher = safer): A holistic measure of trustworthiness. An IP with a trust score of 95 has a clean history, isn't associated with VPNs or proxies, and belongs to a legitimate ISP.

Threat Score (0–100, higher = more dangerous): Measures active threat signals. An IP with a high threat score has been observed scanning ports, sending spam, participating in DDoS attacks, or appearing on blocklists.

Key insight: An IP can have a low trust score without having a high threat score. A VPN exit node, for example, isn't actively malicious — but it's not fully trustworthy either, because it masks the real user's identity.

The Data Sources

Reputation scores are only as good as their inputs. Here's what goes into a typical calculation:

Practical Thresholds

When implementing IP reputation checks, you'll need to decide on thresholds. Here are starting points that work well for most applications:

Score Range Action Use Case
0–30 Block Known threats, active attackers
31–60 Challenge VPNs, suspicious patterns, require CAPTCHA
61–85 Monitor Log for review, apply soft limits
86–100 Allow Clean residential and business IPs

These thresholds should be tuned based on your risk tolerance. A banking app might challenge anything below 80, while a content site might only block below 20.

Implementation Example

Here's a minimal implementation using the ipdata API:

const IPDATA_KEY = 'your-api-key';

async function checkReputation(ip) {
  const res = await fetch(
    `https://api.ipdata.co/${ip}?api-key=${IPDATA_KEY}&fields=threat`
  );
  const data = await res.json();

  return {
    trustScore: data.threat.scores.trust_score,
    threatScore: data.threat.scores.threat_score,
    isVpn: data.threat.is_vpn,
    isTor: data.threat.is_tor,
    isProxy: data.threat.is_proxy,
    blocklists: data.threat.blocklists
  };
}

The key is to check reputation early in your request pipeline — ideally at the edge or load balancer level — so you can reject or challenge bad traffic before it hits your application servers.

Rate of Change

IP reputations are not static. A clean IP can become compromised, and a previously malicious IP can be reassigned to a legitimate user. Good reputation systems account for this by:

  1. Decaying old signals — a blocklist entry from 6 months ago carries less weight
  2. Weighting recent behavior — current traffic patterns matter more than historical data
  3. Considering context — a hosting provider IP behaves differently from a residential IP

This is why real-time API lookups are preferable to static blocklist downloads. The data is always fresh.

Conclusion

IP reputation scoring is a powerful tool in any security stack, but it's not a silver bullet. Use it as one signal among many — combine it with device fingerprinting, behavioral analysis, and user authentication for a layered defense.

The best approach is to start with conservative thresholds, monitor the results, and adjust based on your false positive and false negative rates.