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, GET only
  • 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=1 adds a whois object with the registry record fetched over RDAP.
  • blacklists=1 runs the eight DNS blocklist checks (IPv4 only) and fills the blacklists object.

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:

  • version is 4 or 6. private is true for loopback, link-local, and private ranges; such addresses have no location or network.
  • hostname is the PTR (reverse DNS) record, or null.
  • network.type is the network classification derived from the ASN name and public lists: isp, mobile, hosting, education, government, business, or unknown.
  • classification is the overall verdict: residential, mobile, hosting, vpn, tor, education, government, business, private, or unknown.
  • flags.spamhaus_drop is the matching DROP range as a string, or null. flags.datacenter is the matching provider name from the datacenter list, or null.
  • blacklists is null unless blacklists=1 was given.
  • whois (with whois=1) contains handle, name, type, start, end, cidr, country, parent, status, entities, events, remarks, links, and registry.

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.