Overview

IPWho is a fast, free, and open-source IP Geolocation API built for developers who need accurate location and network data from an IP address — with zero signup required. Whether you're building dashboards, analytics, fraud detection, or personalization features, IPWho helps you enrich user data with just one simple API call.

Why IPWho?

  • No API key required — zero signup
  • Fast Redis-cached IP lookup
  • Supports IPv4 & IPv6
  • Accurate data from MaxMind + IP2Location LITE
  • Clean JSON response with country, city, timezone, currency, ASN, and more

Built For

  • Web apps and dashboards
  • Location-aware features
  • Ad-tech, analytics, fintech, e-commerce
  • Developers who want full control and no BS

Endpoints

MethodEndpointDescription
GET/meReturns geolocation data of the caller
GET/ip/:ipReturns data for a specific IP address
GET/ip/:ip?get=country,city,currencyFilters response to specific fields only
GET/ip/8.8.8.8?format=jsonReturns data for in multiple formats such as json,csv and xml
GET/bulk/:ip1,ip2,...Returns geolocation data for multiple IPs

Example Requests

Get your own IP info:
GET https://api.ipwho.org/me
Get info for a specific IP:
GET https://api.ipwho.org/ip/8.8.8.8
Filter response (only country, city, currency):
GET https://api.ipwho.org/ip/8.8.8.8?get=country,city,currency
Get Response in Multiple format (json,csv,xml):
GET https://api.ipwho.org/ip/8.8.8.8?format=json 
 or 
GET https://api.ipwho.org/ip/8.8.8.8?format=xml 
 or 
GET https://api.ipwho.org/ip/8.8.8.8?format=csv
Bulk lookup:
GET https://api.ipwho.org/bulk/8.8.8.8,1.1.1.1

JavaScript Fetch Example

fetch('https://api.ipwho.org/8.8.8.8?get=country,city,currency')
.then(res => res.json())
.then(data => console.log(data));

cURL Examples

curl "https://api.ipwho.org/me"
curl "https://api.ipwho.org/1.1.1.1"
curl "https://api.ipwho.org/1.1.1.1?get=country,city"
curl "https://api.ipwho.org/bulk/1.1.1.1,8.8.8.8"

Example Response

FieldTypeDescription
successbooleanQuery Result
ipstringIP address queried
continentstringContinent name
continentCodestringISO continent code
countrystringCountry name
countryCodestring2-letter ISO country code
capitalstringCapital city of the country
regionstringRegion/state name
regionCodestringRegion/state code
citystringCity name
postal_CodestringPostal/ZIP code
time_zonestringIANA time zone (e.g. America/New_York)
latitudenumberGeographic latitude
longitudenumberGeographic longitude
accuracy_radiusnumberEstimated accuracy in kilometers
is_in_eubooleanTrue if country is in the EU
dial_codestringCountry dialing code
flagstringCountry emoji flag
flag_unicodestringUnicode code for the flag
currency.codestringCurrency code (e.g. USD)
currency.symbolstringCurrency symbol (e.g. $)
currency.namestringFull currency name
currency.name_pluralstringPlural currency name
asn.numbernumberAutonomous System Number
asn.orgstringASN organization or ISP name
{
  "success": true,
  "data": {
    "ip": "12.34.2.0",
    "continent": "North America",
    "continentCode": "NA",
    "country": "United States",
    "countryCode": "US",
    "capital": "Washington",
    "region": "Maryland",
    "regionCode": "MD",
    "city": "Baltimore",
    "postal_Code": "21275",
    "time_zone": "America/New_York",
    "latitude": 39.2889,
    "longitude": -76.623,
    "accuracy_radius": 20,
    "is_in_eu": false,
    "dial_code": "+1",
    "flag": "🇺🇸",
    "flag_unicode": "U+1F1FA U+1F1F8",
    "currency": {
      "code": "USD",
      "symbol": "$",
      "name": "US Dollar",
      "name_plural": "US dollars"
    },
    "asn": {
      "number": 7018,
      "org": "ATT-INTERNET4"
    }
  }
}