Free, unlimited IP Intelligence API
for geolocation, proxy, VPN & threat detection
Precise geolocation plus proxy, VPN, Tor and malicious IP detection — with IP reputation and risk scoring for every IPv4 and IPv6 address. Built for developers who move fast. No paywalls. No rate limits. Ever.
Proxy, VPN, Tor & malicious IP detection in one API
From proxy detection and IP geolocation to malware C2 and IP reputation scoring — a comprehensive library of IP threat categories covering both IPv4 and IPv6, updated continuously.
Proxy
proxy
Our proxy detection API flags every proxy type at the network layer — HTTP, SOCKS4, SOCKS5 and residential proxy traffic — in real time.
HTTP proxy SOCKS4 proxy SOCKS5 proxy Residential proxy Learn moreVPN
vpn
A VPN detection API covering commercial and self-hosted VPN infrastructure — identify both entry and exit traffic.
VPN entry VPN exit Learn moreTor
tor
Tor detection API that flags Tor exit nodes and relays, distinguishing exit traffic from non-exit relays.
Tor exit Tor relay Learn moreRelay
relay
Identify privacy relay infrastructure — such as Apple iCloud Private Relay and DNS relays — distinct from traditional VPN or Tor paths.
Privacy relay DNS relayMalicious
malicious
Malicious IP detection with IP reputation and risk scoring, drawing on abuse, brute-force, botnet, malware C2, phishing, DDoS and credential-stuffing feeds.
Brute force Spam source Botnet Malware C2 Phishing DDoS Credential stuffing Web attack Learn moreHosting
hosting
Datacenter and hosting provider detection — separate co-location and bulk hosting from residential connections.
Datacenter Hosting provider Learn moreNetwork Services
network_services
Detect public DNS resolvers, DoH endpoints and infrastructure scanners — classify benign network tooling and reduce false positives.
Public DNS Public DoH Scanner Learn moreGeolocation
location · network · traits
Our IP geolocation API returns precise location and network attributes for any IPv4 or IPv6 address — from country down to city level, with ISP and connection metadata.
Country & ISO code City & subdivision Continent Latitude & longitude Time zone EU membership Weather code ISP Connection type IPv4 & IPv6 Learn moreUp and running in 3 steps
Start using the API completely free in just a few minutes.
Sign up free
Create your account with just an email address. No credit card. No commitments.
Get your API key
Your personal unlimited API key is instantly available on your dashboard after signup.
Start querying
Append the IP and your token to our base URL and you're live:
Integrate geolocation and risk intelligence
One REST endpoint returns location, network traits, and privacy/security intelligence in a single JSON response.
Country, city, coordinates, time zone, postal data, subdivisions, ISP, organization, and ASN.
A top-level intelligence object with verdict, risk score, VPN/proxy/Tor flags, hosting signals, and evidence.
Pass your token as ?token=.... Use returnIp=true when you want the looked-up IP echoed in the payload.
import requests
ip = '8.8.8.8' # Replace with the IP address to look up
token = 'YOUR_API_KEY' # Replace with your actual API key
response = requests.get(f'https://api.findip.net/{ip}/?token={token}')
data = response.json()
print('City: ', data['city']['names']['en'])
print('Country: ', data['country']['names']['en'])
print('Continent: ', data['continent']['code'])
print('Latitude: ', data['location']['latitude'])
print('Longitude: ', data['location']['longitude'])
print('Time Zone: ', data['location']['time_zone'])
print('ISP: ', data['traits']['isp'])
print('Connection: ', data['traits']['connection_type'])
print('ASN: ', data['traits']['autonomous_system_number'])
print('Verdict: ', data['intelligence']['summary']['verdict'])
print('Risk: ', data['intelligence']['risk']['score'], data['intelligence']['risk']['level'])
print('VPN: ', data['intelligence']['flags']['is_vpn'])
print('Proxy: ', data['intelligence']['flags']['is_proxy'])
print('Tor: ', data['intelligence']['flags']['is_tor'])
// Node.js — npm install node-fetch
const fetch = require('node-fetch');
const ip = '8.8.8.8'; // Replace with the IP address to look up
const token = 'YOUR_API_KEY'; // Replace with your actual API key
fetch(`https://api.findip.net/${ip}/?token=${token}`)
.then(res => res.json())
.then(data => {
console.log('City: ', data.city.names.en);
console.log('Country: ', data.country.names.en);
console.log('Continent: ', data.continent.code);
console.log('Latitude: ', data.location.latitude);
console.log('Longitude: ', data.location.longitude);
console.log('Time Zone: ', data.location.time_zone);
console.log('ISP: ', data.traits.isp);
console.log('ASN: ', data.traits.autonomous_system_number);
console.log('Verdict: ', data.intelligence.summary.verdict);
console.log('Risk: ', data.intelligence.risk.score, data.intelligence.risk.level);
console.log('VPN: ', data.intelligence.flags.is_vpn);
console.log('Proxy: ', data.intelligence.flags.is_proxy);
console.log('Tor: ', data.intelligence.flags.is_tor);
})
.catch(console.error);
using System.Net.Http;
using System.Text.Json;
var ip = "8.8.8.8"; // Replace with the IP address to look up
var token = "YOUR_API_KEY"; // Replace with your actual API key
using var client = new HttpClient();
var json = await client.GetStringAsync(
$"https://api.findip.net/{ip}/?token={token}");
using var doc = JsonDocument.Parse(json);
var root = doc.RootElement;
Console.WriteLine($"City: {root.GetProperty("city").GetProperty("names").GetProperty("en").GetString()}");
Console.WriteLine($"Country: {root.GetProperty("country").GetProperty("names").GetProperty("en").GetString()}");
Console.WriteLine($"Continent: {root.GetProperty("continent").GetProperty("code").GetString()}");
Console.WriteLine($"Latitude: {root.GetProperty("location").GetProperty("latitude").GetDouble()}");
Console.WriteLine($"Longitude: {root.GetProperty("location").GetProperty("longitude").GetDouble()}");
Console.WriteLine($"Time Zone: {root.GetProperty("location").GetProperty("time_zone").GetString()}");
Console.WriteLine($"ISP: {root.GetProperty("traits").GetProperty("isp").GetString()}");
Console.WriteLine($"ASN: {root.GetProperty("traits").GetProperty("autonomous_system_number").GetInt32()}");
var intelligence = root.GetProperty("intelligence");
Console.WriteLine($"Verdict: {intelligence.GetProperty("summary").GetProperty("verdict").GetString()}");
Console.WriteLine($"Risk: {intelligence.GetProperty("risk").GetProperty("score").GetInt32()} {intelligence.GetProperty("risk").GetProperty("level").GetString()}");
Console.WriteLine($"VPN: {intelligence.GetProperty("flags").GetProperty("is_vpn").GetBoolean()}");
Console.WriteLine($"Proxy: {intelligence.GetProperty("flags").GetProperty("is_proxy").GetBoolean()}");
Console.WriteLine($"Tor: {intelligence.GetProperty("flags").GetProperty("is_tor").GetBoolean()}");
<?php
$ip = '8.8.8.8'; // Replace with the IP address to look up
$token = 'YOUR_API_KEY'; // Replace with your actual API key
$url = "https://api.findip.net/{$ip}/?token={$token}";
$response = file_get_contents($url);
$data = json_decode($response, true);
echo 'City: ' . $data['city']['names']['en'] . PHP_EOL;
echo 'Country: ' . $data['country']['names']['en'] . PHP_EOL;
echo 'Continent: ' . $data['continent']['code'] . PHP_EOL;
echo 'Latitude: ' . $data['location']['latitude'] . PHP_EOL;
echo 'Longitude: ' . $data['location']['longitude'] . PHP_EOL;
echo 'Time Zone: ' . $data['location']['time_zone'] . PHP_EOL;
echo 'ISP: ' . $data['traits']['isp'] . PHP_EOL;
echo 'ASN: ' . $data['traits']['autonomous_system_number'] . PHP_EOL;
echo 'Verdict: ' . $data['intelligence']['summary']['verdict'] . PHP_EOL;
echo 'Risk: ' . $data['intelligence']['risk']['score'] . ' ' .
$data['intelligence']['risk']['level'] . PHP_EOL;
echo 'VPN: ' . ($data['intelligence']['flags']['is_vpn'] ? 'true' : 'false') . PHP_EOL;
echo 'Proxy: ' . ($data['intelligence']['flags']['is_proxy'] ? 'true' : 'false') . PHP_EOL;
echo 'Tor: ' . ($data['intelligence']['flags']['is_tor'] ? 'true' : 'false') . PHP_EOL;
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
ip := "8.8.8.8" // Replace with the IP address to look up
token := "YOUR_API_KEY" // Replace with your actual API key
resp, _ := http.Get(fmt.Sprintf("https://api.findip.net/%s/?token=%s", ip, token))
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(body, &data)
city := data["city"].(map[string]interface{})["names"].(map[string]interface{})["en"]
country := data["country"].(map[string]interface{})["names"].(map[string]interface{})["en"]
location := data["location"].(map[string]interface{})
traits := data["traits"].(map[string]interface{})
intel := data["intelligence"].(map[string]interface{})
summary := intel["summary"].(map[string]interface{})
risk := intel["risk"].(map[string]interface{})
flags := intel["flags"].(map[string]interface{})
fmt.Println("City: ", city)
fmt.Println("Country: ", country)
fmt.Println("Continent: ", data["continent"].(map[string]interface{})["code"])
fmt.Println("Latitude: ", location["latitude"])
fmt.Println("Longitude: ", location["longitude"])
fmt.Println("Time Zone: ", location["time_zone"])
fmt.Println("ISP: ", traits["isp"])
fmt.Println("ASN: ", traits["autonomous_system_number"])
fmt.Println("Verdict: ", summary["verdict"])
fmt.Println("Risk: ", risk["score"], risk["level"])
fmt.Println("VPN: ", flags["is_vpn"])
fmt.Println("Proxy: ", flags["is_proxy"])
fmt.Println("Tor: ", flags["is_tor"])
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import org.json.JSONObject;
public class FindIPExample {
public static void main(String[] args) throws Exception {
String ip = "8.8.8.8"; // Replace with the IP address to look up
String token = "YOUR_API_KEY"; // Replace with your actual API key
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.findip.net/" + ip + "/?token=" + token))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JSONObject data = new JSONObject(response.body());
System.out.println("City: " + data.getJSONObject("city").getJSONObject("names").getString("en"));
System.out.println("Country: " + data.getJSONObject("country").getJSONObject("names").getString("en"));
System.out.println("Continent: " + data.getJSONObject("continent").getString("code"));
System.out.println("Latitude: " + data.getJSONObject("location").getDouble("latitude"));
System.out.println("Longitude: " + data.getJSONObject("location").getDouble("longitude"));
System.out.println("Time Zone: " + data.getJSONObject("location").getString("time_zone"));
System.out.println("ISP: " + data.getJSONObject("traits").getString("isp"));
System.out.println("ASN: " + data.getJSONObject("traits").getInt("autonomous_system_number"));
JSONObject intelligence = data.getJSONObject("intelligence");
System.out.println("Verdict: " + intelligence.getJSONObject("summary").getString("verdict"));
System.out.println("Risk: " + intelligence.getJSONObject("risk").getInt("score") + " " +
intelligence.getJSONObject("risk").getString("level"));
System.out.println("VPN: " + intelligence.getJSONObject("flags").getBoolean("is_vpn"));
System.out.println("Proxy: " + intelligence.getJSONObject("flags").getBoolean("is_proxy"));
System.out.println("Tor: " + intelligence.getJSONObject("flags").getBoolean("is_tor"));
}
}
require 'net/http'
require 'json'
ip = '8.8.8.8' # Replace with the IP address to look up
token = 'YOUR_API_KEY' # Replace with your actual API key
uri = URI("https://api.findip.net/#{ip}/?token=#{token}")
data = JSON.parse(Net::HTTP.get(uri))
puts "City: #{data['city']['names']['en']}"
puts "Country: #{data['country']['names']['en']}"
puts "Continent: #{data['continent']['code']}"
puts "Latitude: #{data['location']['latitude']}"
puts "Longitude: #{data['location']['longitude']}"
puts "Time Zone: #{data['location']['time_zone']}"
puts "ISP: #{data['traits']['isp']}"
puts "ASN: #{data['traits']['autonomous_system_number']}"
puts "Verdict: #{data['intelligence']['summary']['verdict']}"
puts "Risk: #{data['intelligence']['risk']['score']} #{data['intelligence']['risk']['level']}"
puts "VPN: #{data['intelligence']['flags']['is_vpn']}"
puts "Proxy: #{data['intelligence']['flags']['is_proxy']}"
puts "Tor: #{data['intelligence']['flags']['is_tor']}"
import java.net.URL
import org.json.JSONObject
fun main() {
val ip = "8.8.8.8" // Replace with the IP address to look up
val token = "YOUR_API_KEY" // Replace with your actual API key
val json = URL("https://api.findip.net/$ip/?token=$token").readText()
val data = JSONObject(json)
println("City: ${data.getJSONObject("city").getJSONObject("names").getString("en")}")
println("Country: ${data.getJSONObject("country").getJSONObject("names").getString("en")}")
println("Continent: ${data.getJSONObject("continent").getString("code")}")
println("Latitude: ${data.getJSONObject("location").getDouble("latitude")}")
println("Longitude: ${data.getJSONObject("location").getDouble("longitude")}")
println("Time Zone: ${data.getJSONObject("location").getString("time_zone")}")
println("ISP: ${data.getJSONObject("traits").getString("isp")}")
println("ASN: ${data.getJSONObject("traits").getInt("autonomous_system_number")}")
val intelligence = data.getJSONObject("intelligence")
println("Verdict: ${intelligence.getJSONObject("summary").getString("verdict")}")
println("Risk: ${intelligence.getJSONObject("risk").getInt("score")} ${intelligence.getJSONObject("risk").getString("level")}")
println("VPN: ${intelligence.getJSONObject("flags").getBoolean("is_vpn")}")
println("Proxy: ${intelligence.getJSONObject("flags").getBoolean("is_proxy")}")
println("Tor: ${intelligence.getJSONObject("flags").getBoolean("is_tor")}")
}
Frequently Asked Questions
Can't find the answer you're looking for? Contact us — we reply fast.