ipcheckerpro API
Overview
Machine-readable description: /api/v1/openapi.json (OpenAPI 3.1).
The API returns the same data as the website as JSON: the location, network, and classification of any IP address, the registry record behind it, blocklist status, ASN details, and DNS records. It needs no key and no sign-up.
- Base URL:
https://ipcheckerpro.com/api/v1 - Format: JSON, UTF-8,
GETonly - Limits: 60 requests per minute per IP address for the IP and ASN endpoints, 30 per minute for the DNS endpoint
- CORS: every response carries
Access-Control-Allow-Origin: *, so browsers can call it directly - Attribution: if you display the data, show "IP geolocation by DB-IP" with a link to db-ip.com (see Attribution below)
Endpoints
GET /api/v1/ip
Returns the profile of the caller's own address. The response is marked Cache-Control: private, no-store, so it is always fresh.
curl -s https://ipcheckerpro.com/api/v1/ip
GET /api/v1/ip/{ip}
Returns the profile of any public IPv4 or IPv6 address. Optional query parameters:
whois=1adds awhoisobject with the registry record fetched over RDAP.blacklists=1runs the eight DNS blocklist checks (IPv4 only) and fills theblacklistsobject.
Responses are cacheable for 300 seconds. Blocklist results are cached on our side for one hour and registry records for 24 hours.
curl -s "https://ipcheckerpro.com/api/v1/ip/1.1.1.1?whois=1&blacklists=1"
GET /api/v1/asn/{asn}
Returns details for an autonomous system. The number may be given with or without the AS prefix. Add whois=1 to include the registry record in a registry object. Responses are cacheable for one hour.
curl -s "https://ipcheckerpro.com/api/v1/asn/13335?whois=1"
GET /api/v1/dns?name=&type=
Returns the DNS records of a hostname. type is one of A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, or PTR; the default is A. Responses are cacheable for 60 seconds.
curl -s "https://ipcheckerpro.com/api/v1/dns?name=example.com&type=MX"
Response shape
A successful IP request returns an object with these fields. Values that are unknown are null. The values below are illustrative; run the request to see the current data for an address.
{
"ip": "1.1.1.1",
"version": 4,
"private": false,
"hostname": "one.one.one.one",
"location": {
"country_code": "AU",
"country": "Australia",
"region": "Queensland",
"city": "Brisbane",
"latitude": -27.4679,
"longitude": 153.028,
"timezone": "Australia/Brisbane",
"continent": "OC",
"eu": false
},
"network": {
"asn": 13335,
"name": "CLOUDFLARENET",
"prefix": "1.1.1.0/24",
"country_code": "US",
"type": "hosting"
},
"classification": "hosting",
"flags": {
"hosting": true,
"tor": false,
"vpn_provider": false,
"spamhaus_drop": null,
"datacenter": "Cloudflare",
"mobile": false
},
"blacklists": { "checked": 8, "listed": 0 },
"sources": {
"geolocation": "DB-IP Lite (CC BY 4.0)",
"asn": "iptoasn.com / DB-IP Lite"
}
}
Field notes:
versionis4or6.privateistruefor loopback, link-local, and private ranges; such addresses have nolocationornetwork.hostnameis the PTR (reverse DNS) record, ornull.network.typeis the network classification derived from the ASN name and public lists:isp,mobile,hosting,education,government,business, orunknown.classificationis the overall verdict:residential,mobile,hosting,vpn,tor,education,government,business,private, orunknown.flags.spamhaus_dropis the matching DROP range as a string, ornull.flags.datacenteris the matching provider name from the datacenter list, ornull.blacklistsisnullunlessblacklists=1was given.whois(withwhois=1) containshandle,name,type,start,end,cidr,country,parent,status,entities,events,remarks,links, andregistry.
An ASN request returns asn, name, country_code, type, ipv4_prefixes, ipv4_addresses, ipv6_prefixes, prefixes_sample (up to 20 CIDR strings), registry (with whois=1, otherwise null), and source.
A DNS request returns name, type, and records, an array of { "name", "ttl", "value" } objects.
Errors
Errors are JSON objects with an error code and, usually, a message:
| Status | error |
Meaning |
|---|---|---|
| 400 | invalid_ip |
The path segment is not a valid IPv4 or IPv6 address |
| 400 | invalid_asn |
The ASN is not a number |
| 400 | invalid_query |
name is not a hostname or type is not supported |
| 404 | not_found |
No announced prefixes are known for that ASN |
| 429 | rate_limited |
Limit exceeded; wait and retry |
Examples
JavaScript (browser or Node)
const res = await fetch("https://ipcheckerpro.com/api/v1/ip/8.8.8.8?whois=1");
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data.location.country, data.network.name, data.classification);
Python
import requests
r = requests.get("https://ipcheckerpro.com/api/v1/ip/8.8.8.8", params={"blacklists": 1}, timeout=10)
r.raise_for_status()
data = r.json()
print(data["location"]["country"], data["network"]["name"], data["blacklists"])
curl with the caller's own address
curl -s https://ipcheckerpro.com/api/v1/ip | jq '{ip, country: .location.country, type: .network.type}'
Attribution
Geolocation data comes from DB-IP Lite, licensed under Creative Commons Attribution 4.0. If you show data from this API to users, display the text "IP geolocation by DB-IP" with a link to https://db-ip.com near the data. ASN data comes from iptoasn.com (public domain) and DB-IP Lite. Blocklist and registry results belong to their respective operators and are returned for your own use, not for redistribution as a dataset.
Fair use
The limits above apply per calling IP address. If you need more, cache responses on your side; location and network data for an address rarely changes within a day. Do not use the API to build a copy of the underlying databases. See the terms of use for the full acceptable-use rules.
Changes
The API is versioned in the path. Fields may be added to responses without notice; existing fields are not renamed or removed within v1. Changes to limits, endpoints, or behavior are announced on this page before they take effect.