IP Geolocation,
VPN & Proxy Detection API
Pinpoint IP location, detect VPNs and proxies, and validate data in real time with a simple, fast, and developer-friendly API.
Plans from €10/month • Cancel anytime
Everything you need from an IP API
One endpoint, comprehensive data — geolocation, threat detection, and network intelligence in a single JSON response.
IP Geolocation
Accurate country, city, region, ZIP code, latitude/longitude, and timezone for any IPv4 or IPv6 address.
VPN & Proxy Detection
Detect VPNs, proxies, Tor nodes, and datacenter traffic in real time to protect your platform from abuse.
Email Validation
Verify email syntax, check disposable providers, and run real-time SMTP reachability tests with one API call.
Fraud Detection
Aggregate threat signals — spam lists, crawlers, datacenters, and known bad actors — into a single risk flag.
ASN & ISP Data
Identify the autonomous system number, ISP name, and organisation behind any IP address.
Real-time Results
Sub-100ms median response time powered by a globally distributed infrastructure with 99.9% uptime SLA.
Simple REST API — start in minutes
One GET request returns everything: geolocation, threat signals, and network data. Predictable JSON structure, versioned endpoints, no XML, no SOAP.
GET /api/v1/ip/{ip}?api_key={key}
curl "https://ip-api.io/api/v1/ip/78.55.53.58?api_key=YOUR_API_KEY"
{
"ip": "78.55.53.58",
"isp": "Deutsche Telekom AG",
"asn": "AS3320",
"suspicious_factors": {
"is_proxy": false,
"is_tor_node": false,
"is_vpn": false,
"is_threat": false
},
"location": {
"country": "Germany",
"country_code": "DE",
"city": "Berlin",
"latitude": 52.5694,
"longitude": 13.3753,
"timezone": "Europe/Berlin"
}
}
GET /api/v1/ip/{ip}?api_key={key}
const res = await fetch(
"https://ip-api.io/api/v1/ip/78.55.53.58?api_key=YOUR_API_KEY"
);
const data = await res.json();
console.log(data.location.city); // "Berlin"
console.log(data.suspicious_factors.is_vpn); // false
{
"ip": "78.55.53.58",
"isp": "Deutsche Telekom AG",
"asn": "AS3320",
"suspicious_factors": {
"is_proxy": false,
"is_tor_node": false,
"is_vpn": false,
"is_threat": false
},
"location": {
"country": "Germany",
"country_code": "DE",
"city": "Berlin",
"latitude": 52.5694,
"longitude": 13.3753,
"timezone": "Europe/Berlin"
}
}
GET /api/v1/ip/{ip}?api_key={key}
import requests
res = requests.get(
"https://ip-api.io/api/v1/ip/78.55.53.58",
params={"api_key": "YOUR_API_KEY"}
)
data = res.json()
print(data["location"]["city"]) # "Berlin"
print(data["suspicious_factors"]["is_vpn"]) # False
{
"ip": "78.55.53.58",
"isp": "Deutsche Telekom AG",
"asn": "AS3320",
"suspicious_factors": {
"is_proxy": false,
"is_tor_node": false,
"is_vpn": false,
"is_threat": false
},
"location": {
"country": "Germany",
"country_code": "DE",
"city": "Berlin",
"latitude": 52.5694,
"longitude": 13.3753,
"timezone": "Europe/Berlin"
}
}
GET /api/v1/ip/{ip}?api_key={key}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://ip-api.io/api/v1/ip/78.55.53.58?api_key=YOUR_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch));
echo $data->location->city; // "Berlin"
echo $data->suspicious_factors->is_vpn; // false
{
"ip": "78.55.53.58",
"isp": "Deutsche Telekom AG",
"asn": "AS3320",
"suspicious_factors": {
"is_proxy": false,
"is_tor_node": false,
"is_vpn": false,
"is_threat": false
},
"location": {
"country": "Germany",
"country_code": "DE",
"city": "Berlin",
"latitude": 52.5694,
"longitude": 13.3753,
"timezone": "Europe/Berlin"
}
}
GET /api/v1/ip/{ip}?api_key={key}
require 'net/http'
require 'json'
uri = URI('https://ip-api.io/api/v1/ip/78.55.53.58')
uri.query = URI.encode_www_form(api_key: 'YOUR_API_KEY')
res = Net::HTTP.start(uri.hostname, use_ssl: true) { |h| h.get(uri) }
data = JSON.parse(res.body)
puts data['location']['city'] # "Berlin"
puts data['suspicious_factors']['is_vpn'] # false
{
"ip": "78.55.53.58",
"isp": "Deutsche Telekom AG",
"asn": "AS3320",
"suspicious_factors": {
"is_proxy": false,
"is_tor_node": false,
"is_vpn": false,
"is_threat": false
},
"location": {
"country": "Germany",
"country_code": "DE",
"city": "Berlin",
"latitude": 52.5694,
"longitude": 13.3753,
"timezone": "Europe/Berlin"
}
}
Built for real-world applications
From fraud prevention to geo-targeting — IP intelligence that fits your workflow.
Fraud Prevention
Block VPNs, proxies, and Tor exit nodes at login and checkout. Combine with risk scoring to stop fraudulent transactions before they happen.
Geo-targeting
Deliver localised content, pricing, and promotions based on country, city, and timezone. No cookies required — just the visitor's IP.
E-commerce Security
Detect suspicious orders from high-risk regions or anonymising services. Combine IP signals with email validation for layered fraud protection.
Simple integration, enterprise reliability
Get started in minutes and scale to millions of requests without changing a line of code.
Simple Integration
One GET request, one JSON response. No SDKs required — works with any language or framework in under 5 minutes.
Real-time Data
Live geolocation, threat databases updated continuously, and sub-100ms response times for latency-sensitive applications.
Enterprise Security
99.9% uptime SLA, HTTPS-only endpoints, and SOC-2 aligned data handling for production workloads at any scale.
Simple Pricing
Plans from €10/month with no hidden fees. Scale your usage as your needs grow and cancel anytime.
Rated 5 out of 5 stars by our customers!
Companies from across the globe have had fantastic experiences using the service. Here's what they have to say.
IP-API.io has been a game changer for our global e-commerce platform. We now offer localized pricing without any hassles.
The accuracy and reliability of IP-API.io have helped us enhance our security measures and prevent unauthorized access effectively.
Amazing! Thanks so much for the speedy response. I have really enjoyed using IP-API.io!
Hi guys, I really like your way to support customers. Fast and you keep your word. Keep moving guys! Cheers.
YOUR SERVICE IS AWESOME! NICE WORK! THANKS! I LOVE YOU GUYS.
Dear IP-API.io Team, Thanks for the awesome service!
I have tried many geolocalization API's and this is the best one both in stability and in accurate results.
Great project! Super API, the best I have used so far.
Simple, transparent pricing
Start small, scale as you grow. No hidden fees.
Ready to improve your email quality?
Start validating email addresses in minutes with a simple API and clear documentation.