Provide current and historical ownership information on domains / IPs. Identify all connections between domains, registrants, registrars, and DNS servers.
Look into all current and historical DNS / IP connections between domains and A, MX, NS, and other records. Monitor suspicious changes to DNS records.
Get detailed context on an IP address, including its user’s geolocation, time zone, connected domains, connection type, IP range, ASN, and other network ownership details.
Access our web-based solution to dig into and monitor all domain events of interest.
Get access to a web-based enterprise-grade solution to search and monitor domain registrations and ownership details for branded terms, fuzzy matches, registrants of interest, and more.
Independent, evidence-based DNS and abuse intelligence for applicants, advisors, governments, and counsel participating in the ICANN 2026 New gTLD Program.
Predictive threat intelligence is your best first line of defense. Subscribe to the feeds to strengthen your cybersecurity posture. Contact us today for more information.
Unlock integrated intelligence on Internet properties and their ownership, infrastructure, and other attributes.
Our complete set of domain, IP, and DNS intelligence available via API calls as an annual subscription with predictable pricing.
Offers complete access to WHOIS, IP, DNS, and subdomain data for product enrichment, threat hunting and more.
Uncover entire attack surfaces with this API to embed asset discovery, vulnerability scanning, and technology metadata into your platform. Now in early access.
Talk to our APIs using LLMs. Connect your preferred LLM to WhoisXML API and simply chat about WHOIS, DNS, threat intelligence, and more.
I’m your Domain Intelligence Assistant. I make it easy to explore WHOIS, DNS, and threat data from WhoisXML API — I’m cloud-based, fast, and always ready to help.
A custom GPT for WHOIS, DNS, IP, and threat intelligence research. Connects ChatGPT directly to WhoisXML API to enable fast, conversational investigations and domain insights.
Discover what you really pay for when buying commercial Internet intelligence data.
Download nowClassify up to 100 IPv4 addresses in a single call. Intended for fraud, risk, and content-moderation pipelines processing burst traffic.
The API expects parameters to be JSON-encoded in the body of each request.
curl https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/batch -X POST -H "Content-Type: application/json" -d '{"apiKey": "YOUR_API_KEY", "ips": ["8.8.8.8", "1.1.1.1", "185.220.101.1"]}'
{
"apiKey": "YOUR_API_KEY",
"ips": [
"8.8.8.8",
"1.1.1.1",
"185.220.101.1"
],
"min_confidence": 0.5
}
apiKey |
Required. Get your personal API key on the My products page. |
ips |
Required. Array of strings. List of IPv4 addresses to classify. Maximum 100 entries per request. |
min_confidence |
Optional. Float. Only attributions whose signal confidence is greater than or equal to this value are returned. Allowed values: [0, 1]. Default: 0. |
{
"results": [
{
"ip": "1.1.1.1",
"network": "1.1.1.0\/24",
"classification": "cdn",
"provider": "Cloudflare",
"confidence": 0.97,
"source": "asn_classification",
"detection_method": "asn_classification",
"first_seen": "2024-01-15T08:30:00Z",
"last_seen": "2026-05-20T11:04:00Z",
"observation_count": 412,
"hits_days_pct": null,
"providers_num": 0,
"confidence_decay": 0.0,
"freshness_class": "current",
"is_vpn": false,
"is_proxy": false,
"is_tor": false,
"is_relay": false,
"is_hosting": false,
"is_cdn": true,
"is_residential_proxy": false,
"is_residential_proxy_high_confidence": false,
"is_residential_proxy_mobile": false,
"is_open_proxy": false,
"is_corporate_vpn": false,
"risk_score": 97,
"asn": 13335,
"asn_org": "CLOUDFLARENET",
"cdn_operator": "cloudflare",
"asn_abuse": {
"abuse_score": 4,
"abuse_level": "low"
},
"metadata": {
"raw_score": 97,
"signals": null,
"dns_enrichment": null,
"tls_enrichment": null
},
"observed_location": null
},
{
"ip": "185.220.101.1",
"network": "185.220.101.0\/24",
"classification": "tor",
"provider": null,
"confidence": 1.0,
"source": "port_scan",
"detection_method": "port_scan",
"first_seen": "2024-01-15T08:30:00Z",
"last_seen": "2026-05-21T08:59:09Z",
"observation_count": 127,
"hits_days_pct": 47.78,
"providers_num": 0,
"confidence_decay": 0.6650,
"freshness_class": "current",
"is_vpn": false,
"is_proxy": false,
"is_tor": true,
"is_relay": false,
"is_hosting": false,
"is_cdn": false,
"is_residential_proxy": false,
"is_residential_proxy_high_confidence": false,
"is_residential_proxy_mobile": false,
"is_open_proxy": false,
"is_corporate_vpn": false,
"risk_score": 100,
"asn": 60729,
"asn_org": "ZWIEBELFREUNDE",
"cdn_operator": null,
"asn_abuse": {
"abuse_score": 88,
"abuse_level": "high"
},
"metadata": {
"raw_score": 100,
"signals": { "open_ports": [9001, 9030] },
"dns_enrichment": null,
"tls_enrichment": null
},
"observed_location": null
}
],
"count": 2
}
Code: 200 OK.
results |
Array. One classification object per input IP, in the same order as the request. Each item has the same shape as the single-IP response. See Making requests for per-field descriptions. |
count |
Integer. The number of classifications returned. Matches the length of the input ips array on success. |
After Sign Up you automatically get a free subscription plan limited to 10 queries.
The maximum number of requests per second is 30. In case that the limit is breached, your subsequent requests will be rejected until the next second.
This API is also available with a dedicated load balancer and premium endpoint to enable faster querying as part of our Premium API Services and Enterprise API Packages.
We are here to listen. For a quick response, please select your request type. By submitting a request, you agree to our Terms of Service and Privacy Policy.