Incorporate our advanced IP geolocation, blacklist tracking, and privacy detection into your own apps. Subscribing gives you an x-api-key to bypass all limits.
All V2 endpoints require the x-api-key: your-purchased-key header to be sent with every request.
Submit up to 100 IP addresses and get geolocation + VPN status for each. Free, no key needed.
curl -X POST https://whoer.live/api/v2/bulk-scan \
-H "Content-Type: application/json" \
-H "x-api-key: whr_your_30_day_key" \
-d '{"ips":["8.8.8.8","1.1.1.1","104.21.0.1"]}'
const res = await fetch('https://whoer.live/api/v2/bulk-scan', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'whr_your_30_day_key'
},
body: JSON.stringify({ ips: ['8.8.8.8', '1.1.1.1'] }),
});
const { results } = await res.json();
console.log(results);
import requests
headers = {'x-api-key': 'whr_your_30_day_key'}
r = requests.post('https://whoer.live/api/v2/bulk-scan',
headers=headers,
json={'ips': ['8.8.8.8', '1.1.1.1']})
for item in r.json()['results']:
print(item['ip'], item['country'], item['isp'], item['is_vpn'])
{
"results": [
{
"ip": "8.8.8.8",
"country": "United States",
"countryCode": "US",
"city": "Mountain View",
"region": "California",
"isp": "AS15169 Google LLC",
"timezone": "America/Los_Angeles",
"is_vpn": true,
"error": false
}
]
}
| Field | Type | Description |
|---|---|---|
| ip | string | The IP address looked up |
| country | string | Full country name |
| countryCode | string | ISO 3166-1 alpha-2 code (e.g. "US") |
| city | string | City name |
| region | string | Region / State name |
| isp | string | ISP or organisation name with ASN |
| timezone | string | IANA timezone (e.g. "Asia/Dhaka") |
| is_vpn | boolean | true if IP is from a hosting/VPN/datacenter provider |
| error | boolean | true if the IP could not be resolved |