Calculate comprehensive risk scores for IP addresses and email addresses in real-time. Detect proxies, VPNs, Tor nodes, disposable emails, and fraud indicators with our advanced machine learning algorithms. Perfect for fraud prevention and user verification.
Enter an IP address, email address, or both to get a comprehensive risk score and risk assessment.
Our Risk Score API combines advanced threat intelligence with machine learning to provide comprehensive risk assessment for both IP addresses and email addresses.
Machine learning algorithms analyze multiple risk factors to provide accurate risk scores from 0 to 1, with comprehensive risk level classification.
Detect proxies, VPNs, Tor nodes, datacenter IPs, spam sources, and suspicious activity patterns in real-time with high accuracy.
Validate email syntax, detect disposable email services, and assess email reputation to prevent fraud and improve user quality.
Get instant risk scores with sub-second response times. Our optimized infrastructure ensures fast processing for high-volume applications.
Understand the reasoning behind each risk score with detailed breakdowns of IP and email risk factors and their contributions.
Prevent account abuse, payment fraud, and malicious activities with comprehensive risk assessment and threat intelligence.
Protect your business and users with industry-leading risk assessment technology that delivers accurate results while maintaining excellent user experience.
Proactively identify and block fraudulent activities with advanced risk scoring algorithms that analyze multiple threat vectors.
Streamline legitimate user onboarding while maintaining security, reducing false positives and user friction.
Make instant risk-based decisions during user registration, transactions, and content interactions with sub-second response times.
Analyze both IP addresses and email addresses in a single API call for complete user risk assessment.
Simple REST API with comprehensive documentation, SDKs, and example code for quick implementation in any tech stack.
Prevent costly fraud losses and chargebacks while reducing manual review overhead and operational costs.
Handle millions of requests per day with our globally distributed infrastructure and 99.9% uptime guarantee.
Meet regulatory requirements with detailed audit trails, risk factor explanations, and transparent scoring methodology.
Get started quickly with our comprehensive API documentation and ready-to-use code examples.
Use these code examples to integrate the Risk Score API into your application for IP and email risk assessment.
# Test with IP address
curl "https://ip-api.io/api/v1/risk-score/192.168.1.1"
# Test with email address
curl "https://ip-api.io/api/v1/risk-score/email/user@example.com"
# Test with both IP and email
curl "https://ip-api.io/api/v1/risk-score/192.168.1.1?email=user@example.com"
# Test with user's IP from request
curl "https://ip-api.io/api/v1/risk-score?email=user@example.com"// Using fetch API
async function getRiskScore(ip, email) {
  try {
    let url = '/api/v1/risk-score';
    if (ip && email) {
      url = `/api/v1/risk-score/${ip}?email=${email}`;
    } else if (ip) {
      url = `/api/v1/risk-score/${ip}`;
    } else if (email) {
      url = `/api/v1/risk-score/email/${email}`;
    } else {
      // Use request IP
      url = `/api/v1/risk-score?email=${email}`;
    }
    const response = await fetch(url);
    const data = await response.json();
    console.log('Risk Score:', data.score);
    console.log('Risk Level:', data.risk_level);
    console.log('Factors:', data.factors);
    return data;
  } catch (error) {
    console.error('Error:', error);
  }
}
// Example usage
getRiskScore('192.168.1.1', 'user@example.com');import requests
def get_trust_score(ip=None, email=None):
    """Calculate risk score for IP and/or email"""
    base_url = "https://ip-api.io/api/v1/risk-score"
    if ip and email:
        url = f"{base_url}/{ip}?email={email}"
    elif ip:
        url = f"{base_url}/{ip}"
    elif email:
        url = f"{base_url}/email/{email}"
    else:
        # Use request IP
        url = f"{base_url}?email={email}" if email else base_url
    try:
        response = requests.get(url)
        response.raise_for_status()
        data = response.json()
        print(f"Risk Score: {data['score']}")
        print(f"Risk Level: {data['risk_level']}")
        if 'factors' in data:
            if 'ip_factors' in data['factors']:
                ip_factors = data['factors']['ip_factors']
                print(f"IP Risk Factors: {ip_factors}")
            if 'email_factors' in data['factors']:
                email_factors = data['factors']['email_factors']
                print(f"Email Risk Factors: {email_factors}")
        return data
    except requests.exceptions.RequestException as e:
        print(f"Error: {e}")
        return None
# Example usage
result = get_trust_score(ip="192.168.1.1", email="user@example.com")<?php
function getRiskScore($ip = null, $email = null) {
    $baseUrl = 'https://ip-api.io/api/v1/risk-score';
    if ($ip && $email) {
        $url = "$baseUrl/$ip?email=" . urlencode($email);
    } elseif ($ip) {
        $url = "$baseUrl/$ip";
    } elseif ($email) {
        $url = "$baseUrl/email/" . urlencode($email);
    } else {
        $url = $baseUrl . ($email ? "?email=" . urlencode($email) : '');
    }
    $response = file_get_contents($url);
    $data = json_decode($response, true);
    echo "Risk Score: " . $data['score'] . "\n";
    echo "Risk Level: " . $data['risk_level'] . "\n";
    return $data;
}
// Example usage
$result = getRiskScore('192.168.1.1', 'user@example.com');
?>require 'net/http'
require 'json'
def get_risk_score(ip: nil, email: nil)
  base_url = 'https://ip-api.io/api/v1/risk-score'
  if ip && email
    url = "#{base_url}/#{ip}?email=#{URI.encode_www_form_component(email)}"
  elsif ip
    url = "#{base_url}/#{ip}"
  elsif email
    url = "#{base_url}/email/#{URI.encode_www_form_component(email)}"
  else
    url = base_url + (email ? "?email=#{URI.encode_www_form_component(email)}" : '')
  end
  uri = URI(url)
  response = Net::HTTP.get(uri)
  data = JSON.parse(response)
  puts "Risk Score: #{data['score']}"
  puts "Risk Level: #{data['risk_level']}"
  data
rescue StandardError => e
  puts "Error: #{e.message}"
  nil
end
# Example usage
result = get_risk_score(ip: '192.168.1.1', email: 'user@example.com')Calculate risk score using the request IP address (optional email parameter)
Calculate risk score for a specific IP address (optional email parameter)
Calculate risk score for a specific email address
Start using IP-API.io to make your website safer and more user-friendly. Keep out unwanted bots, show visitors content that's relevant to where they are, and spot risky IP addresses quickly. It's perfect for making online shopping more personal and keeping your site secure. Get started today with one of the plans!
Explore how IP-API can enhance your security, provide robust bot protection, and improve IP geolocation accuracy for your applications.
Contact SupportCustomize your experience with tailored plans that fit your IP security and geolocation needs.
Email Us