WHOIS is dead, I built an API for what replaces it
Source: Dev.to
Background
I was building a side project that required domain registration data. Initially I used WHOIS, but the output varies for every registrar, there is no standard format, and my parsing code kept breaking.
Problems with WHOSQL
- WHOIS is deprecated.
- ICANN is promoting RDAP (Registration Data Access Protocol) as the replacement.
- RDAP returns JSON and works over HTTPS, and most registries have already switched.
RDAP Overview
RDAP provides a standardized JSON interface for domain, IP, and ASN data. However, using RDAP directly is still cumbersome:
-
No single server – each TLD has its own RDAP server. You must consult the IANA bootstrap registry to determine which server to query.
-
Two‑step lookup for domains – for
.comand.net, the registry only stores basic data. The registrar (e.g., GoDaddy, Cloudflare) holds the rest on a separate server, requiring two requests and a merge. -
vCardArray format – contact information is stored in a nested vCard structure, e.g.:
["vcard", [ ["version", {}, "text", "4.0"], ["fn", {}, "text", "MarkMonitor Inc."], ["tel", {"type": "voice"}, "uri", "tel:+1.2086851750"], ["email", {}, "text", "abusecomplaints@markmonitor.com"] ]]
Parsing this across ~1,200 different servers is error‑prone.
My Solution: RDAP API
I built a unified RDAP API that abstracts away the complexities. It offers a single endpoint that returns consistent JSON for every TLD:
{
"domain": "google.com",
"registrar": { "name": "MarkMonitor Inc.", "iana_id": "292" },
"dates": {
"registered": "1997-09-15T04:00:00Z",
"expires": "2028-09-14T04:00:00Z"
},
"nameservers": ["ns1.google.com", "ns2.google.com"]
}
Features
- Bootstrap handling – automatically resolves the correct RDAP server for any TLD.
- Registrar follow‑through – merges registry and registrar data into a single response.
- vCardArray parsing – converts contact data into easy‑to‑use fields.
- Rate‑limit management – built‑in throttling to stay within RDAP limits.
- Support for IP and ASN lookups.
- Bulk queries – up to 10 lookups per request.
- Free lookup tool on the homepage (no account required) for domains, IPs, and ASNs.
SDKs
I published client libraries for several languages. Below is the Python example:
from rdapapi import RdapApi
client = RdapApi("YOUR_API_KEY")
result = client.domains.lookup("google.com", follow=True)
print(result.registrar.name) # MarkMonitor Inc.
Pricing & Documentation
- The API is offered as a SaaS starting at $9 / month with a free trial.
- Full documentation is available on the site (link: Docs here).
Community Question
Is anyone still using port 43 WHOIS in production? How do you handle the differing formats per registrar?