Real-time IP Intelligence Platform

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.

Results for  216.73.216.180
Location
CountryUnited States
CityColumbus
Sub DivisionOhio
Time ZoneAmerica/New_York
ContinentNorth America (NA)
ISO CodeUS
Is EUfalse
Weather CodeUSOH0212
Network
ISPAmazon.com
Connection TypeCorporate
Anycastfalse
ASNAS16509
ASN OrganizationAmazon.com, Inc.
Latitude39.9612
Longitude-82.9988
Privacy & Security
Intelligence summary
Anonymous Traffic

This IP is associated with VPN exit traffic.

Overall risk
15
Low
Threat score
50
Medium
Vpn Exit

Signal overview

Live classification
Anonymous trafficDetected
Malicious activityClear
Hosting infrastructureClear
Network serviceClear
VPNDetected
TorClear

Analyst metrics

Confidence & timing
Anonymous confidence
60% (Medium)
Threat confidence
0% (Very Low)
Evidence sources
2
Evidence signals
2
First seen
2026-06-09 20:06 UTC
Last seen
2026-06-09 21:45 UTC
Vpn Exit

Detected categories

Sorted by severity

VPN exit

vpn · vpn_exit
60% (Medium)
Signals: 2 Last seen: 2026-06-09 21:45 UTC
Unlimited requests
100%
Free forever
IPv4+6
Full protocol support
<100ms
Average response time
Threat Intelligence

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 more

VPN

vpn

A VPN detection API covering commercial and self-hosted VPN infrastructure — identify both entry and exit traffic.

VPN entry VPN exit Learn more

Tor

tor

Tor detection API that flags Tor exit nodes and relays, distinguishing exit traffic from non-exit relays.

Tor exit Tor relay Learn more

Relay

relay

Identify privacy relay infrastructure — such as Apple iCloud Private Relay and DNS relays — distinct from traditional VPN or Tor paths.

Privacy relay DNS relay

Malicious

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 more

Hosting

hosting

Datacenter and hosting provider detection — separate co-location and bulk hosting from residential connections.

Datacenter Hosting provider Learn more

Network 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 more

Geolocation

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 more

Leading IP geolocation API — free & unlimited

Join thousands of developers who rely on FindIP every day.

Create free account
Quick start

Up and running in 3 steps

Start using the API completely free in just a few minutes.

1
Sign up free

Create your account with just an email address. No credit card. No commitments.

2
Get your API key

Your personal unlimited API key is instantly available on your dashboard after signup.

3
Start querying

Append the IP and your token to our base URL and you're live:

https://api.findip.net/{IP}/?token={KEY}
Developer Docs

Integrate geolocation and risk intelligence

One REST endpoint returns location, network traits, and privacy/security intelligence in a single JSON response.

GET https://api.findip.net/{ip}/?token={token}
Geolocation

Country, city, coordinates, time zone, postal data, subdivisions, ISP, organization, and ASN.

Intelligence

A top-level intelligence object with verdict, risk score, VPN/proxy/Tor flags, hosting signals, and evidence.

Authentication

Pass your token as ?token=.... Use returnIp=true when you want the looked-up IP echoed in the payload.

Python
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'])
JavaScript (Node.js)
// 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);
C# (.NET)
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
<?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;
Go
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"])
}
Java
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"));
    }
}
Ruby
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']}"
Kotlin
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")}")
}

Our mission is free, unlimited IP geolocation for everyone

No tiers. No hidden limits. The same great API for startups and Fortune 500 alike.

FAQ

Frequently Asked Questions

Can't find the answer you're looking for? Contact us — we reply fast.

We believe the web should be open and accessible. Our mission is to provide the best real-time geolocation API so that any developer can confidently build great products without worrying about usage costs.

After you log in to your FindIP account, you will be taken directly to your dashboard where your API key is displayed — ready to copy and use immediately.

No — there are no daily, monthly, or lifetime request limits. Use the API as much as you need, completely free.

Every lookup returns anonymity signals for the IP, including proxy detection (HTTP, SOCKS4, SOCKS5 and residential proxies), VPN detection, and Tor exit-node and relay detection. Each flag is a simple boolean in the JSON response, alongside a confidence score, so you can block or challenge anonymous traffic with a single API call.

FindIP aggregates threat feeds to flag malicious IP addresses and return an IP reputation signal with a confidence score. Threat types include brute force, botnet, malware C2, phishing, DDoS sources and credential stuffing, helping you score the risk of any IP before you trust it.

Yes. The API performs datacenter and hosting-provider detection, separating co-location and bulk hosting ranges from residential connections. It also identifies public DNS resolvers and DoH endpoints, so you can distinguish automated infrastructure from real end users.