WHOIS is dead, I built an API for what replaces it

Published: (March 5, 2026 at 05:03 AM EST)
3 min read
Source: Dev.to

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:

  1. No single server – each TLD has its own RDAP server. You must consult the IANA bootstrap registry to determine which server to query.

  2. Two‑step lookup for domains – for .com and .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.

  3. 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?

0 views
Back to Blog

Related posts

Read more »