Precise geolocation, network, ISP, proxy, VPN, and security signals — built for developers who move fast. No paywalls. No rate limits. Ever.
From proxy detection to malware C2 — a comprehensive library of IP threat categories, updated continuously.
Proxy
proxy
Forwarding & anonymisation endpoints — detect any proxy type at the network layer.
HTTP proxy SOCKS4 proxy SOCKS5 proxy Residential proxyVPN
vpn
Commercial and self-hosted VPN infrastructure — identify both entry and exit traffic.
VPN entry VPN exitTor
tor
Tor network relays and exit nodes — distinguish exit traffic from non-exit relays.
Tor exit Tor relayRelay
relay
Privacy-focused relay infrastructure distinct from traditional VPN or Tor paths.
Privacy relay DNS relayMalicious
malicious
Abuse, brute-force, malware and phishing feeds — the most comprehensive threat signal set.
Brute force Spam source Botnet Malware C2 Phishing DDoS Credential stuffing Web attackHosting
hosting
Datacentre and bulk hosting providers — separate co-location from retail hosting.
Datacenter Hosting providerNetwork Services
network_services
Public DNS resolvers, DoH endpoints, and infrastructure scanners — identify benign network tooling.
Public DNS Public DoH ScannerGeolocation
location · network · traits
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 & IPv6Start using the API completely free in just a few minutes.
Create your account with just an email address. No credit card. No commitments.
Your personal unlimited API key is instantly available on your dashboard after signup.
Append the IP and your token to our base URL and you're live:
One REST endpoint — works from any language or platform. Copy the snippet and you're live in seconds.
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'])
// 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);
})
.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()}");
<?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;
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{})
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"])
}
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"));
}
}
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']}"
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")}")
}
Can't find the answer you're looking for? Contact us — we reply fast.