Real-time IP Intelligence Platform

Understand every IP address
with a free, unlimited API

Precise geolocation, network, ISP, proxy, VPN, and security signals — built for developers who move fast. No paywalls. No rate limits. Ever.

Live IP Lookup — try it now

Results for  216.73.217.81
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-07 14:05 UTC
Last seen
2026-06-07 15:45 UTC
Vpn Exit

Detected categories

Sorted by severity

VPN exit

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

Every signal you need, in one API

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 proxy

VPN

vpn

Commercial and self-hosted VPN infrastructure — identify both entry and exit traffic.

VPN entry VPN exit

Tor

tor

Tor network relays and exit nodes — distinguish exit traffic from non-exit relays.

Tor exit Tor relay

Relay

relay

Privacy-focused relay infrastructure distinct from traditional VPN or Tor paths.

Privacy relay DNS relay

Malicious

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 attack

Hosting

hosting

Datacentre and bulk hosting providers — separate co-location from retail hosting.

Datacenter Hosting provider

Network Services

network_services

Public DNS resolvers, DoH endpoints, and infrastructure scanners — identify benign network tooling.

Public DNS Public DoH Scanner

Geolocation

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 & IPv6

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.