API documentation
Make an own-IP or single-IP request, then use the response.
Start with your own IP
The root endpoint identifies the public address connecting to the API. Request JSON explicitly when embedding a lookup in a website or application.
Own-IP request
const response = await fetch(
"https://api.ipquery.io/?format=json",
{ signal: AbortSignal.timeout(5000) }
);
if (!response.ok) {
const message = await response.text();
throw new Error("IPQuery " + response.status + ": " + message);
}
const data = await response.json();
console.log(JSON.stringify(data, null, 2));Run this in a JavaScript module or browser console with native fetch and AbortSignal.timeout. View language requirements
For a specific IPv4 or IPv6 address, put that single address in the path. Bulk lookups are disabled due to abuse.
Read the API referenceReference pages
Actual response
1.1.1.1Live single-IP response
{
"ip": "1.1.1.1",
"isp": {
"asn": "AS13335",
"org": "Cloudflare, Inc.",
"isp": "Cloudflare, Inc."
},
"location": {
"country": "Australia",
"country_code": "AU",
"city": "Brisbane",
"state": "Queensland",
"zipcode": "",
"latitude": -27.474848400186662,
"longitude": 153.00996200912815,
"timezone": "Australia/Brisbane",
"localtime": "2026-11-02T19:06:21"
},
"risk": {
"is_mobile": false,
"is_vpn": false,
"is_tor": false,
"is_proxy": false,
"is_datacenter": true,
"risk_score": 20
}
}