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 reference

Actual response

1.1.1.1
Live 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
  }
}

Full-list access.

For pricing or full-list access, email [email protected].

Selected list
Selected records
Records in this list