Get the registrar, registration dates, nameservers, status codes, and registrant handle for any domain — in clean JSON, not regex-parsed text. RDAP-first with port-43 WHOIS fallback for legacy TLDs. No setup, no parsing.
Type any domain to see the live WHOIS / RDAP response from the API. Free, no signup — rate-limited to 5 lookups/day per browser.
// Click "Run lookup" to see the live API response for this endpoint
Most WHOIS libraries return unstructured text you have to regex-parse, break on new TLDs, and force you to handle registry-specific quirks. This API does that work for you and gives back clean JSON.
/domain/{d}/whois, or grab WHOIS + DNS + SSL + subdomains + email security in a single /lookup/{d} call. Same API key, same pricing.Every WHOIS response follows the same shape, regardless of whether the data came from RDAP or port-43 fallback. Below: a real response for cloudflare.com.
{
"domain": "cloudflare.com",
"_source": "rdap.verisign.com", // data source used
"registrar": "Cloudflare, Inc.",
"handle": "2241025_DOMAIN_COM-VRSN",
"created": "2009-02-17T22:07:54Z",
"updated": "2024-12-21T16:35:32Z",
"expires": "2027-02-17T22:07:54Z",
"nameservers": [
"ns3.cloudflare.com",
"ns4.cloudflare.com",
"ns5.cloudflare.com",
"ns6.cloudflare.com",
"ns7.cloudflare.com"
],
"status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"clientUpdateProhibited",
"serverDeleteProhibited",
"serverTransferProhibited",
"serverUpdateProhibited"
]
}
Authenticate once with your RapidAPI key, then call GET /domain/{domain}/whois for any domain. Below: examples in cURL, Python, Node.js, and PHP.
curl "https://domain-intelligence-api.p.rapidapi.com/domain/cloudflare.com/whois" \ -H "X-RapidAPI-Host: domain-intelligence-api.p.rapidapi.com" \ -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY"
import requests
domain = "cloudflare.com"
url = f"https://domain-intelligence-api.p.rapidapi.com/domain/{domain}/whois"
headers = {
"X-RapidAPI-Host": "domain-intelligence-api.p.rapidapi.com",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
}
r = requests.get(url, headers=headers, timeout=15)
data = r.json()
print(data["registrar"], "— expires", data["expires"])// Node 18+ has built-in fetch — no import needed
const domain = "cloudflare.com";
const res = await fetch(
`https://domain-intelligence-api.p.rapidapi.com/domain/${domain}/whois`,
{ headers: {
"X-RapidAPI-Host": "domain-intelligence-api.p.rapidapi.com",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
}}
);
const data = await res.json();
console.log(data.registrar, "—", data.nameservers);<?php
$domain = "cloudflare.com";
$ch = curl_init("https://domain-intelligence-api.p.rapidapi.com/domain/$domain/whois");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-RapidAPI-Host: domain-intelligence-api.p.rapidapi.com",
"X-RapidAPI-Key: YOUR_RAPIDAPI_KEY",
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $data["registrar"] . " — created " . $data["created"];The most common workflows that benefit from programmatic WHOIS access. Free tier covers most of them comfortably.
Billed monthly via RapidAPI. Same pricing across all endpoints (WHOIS, DNS, SSL, subdomains, email security, and the bundled /lookup). Cancel anytime.
Quick answers to the things developers usually ask before integrating.
Free tier · No credit card · All endpoints included
Get your API key →