domain-intelligence

From WHOIS to RDAP: How Modern Domain Monitoring Works

6 min read
January 5, 2026

WHOIS is dying. RDAP is the future. Here's what changed and why it matters for monitoring your domains.

From WHOIS to RDAP: The Evolution of Domain Intelligence

If you've ever looked up domain registration information, you've probably used WHOIS. It's been around since the 1980s. And it's finally being replaced by something better.

RDAP (Registration Data Access Protocol) is the modern standard for querying domain registration data. It's faster, more reliable, and actually designed for the internet we have today, not the internet of 1982.

Here's why this matters for anyone who needs to monitor domain expiration.

The Problem with WHOIS

WHOIS was never designed to be a protocol. It was a quick hack that became a standard through sheer inertia.

Inconsistent Formats

Every registrar formats WHOIS data differently. Some use Expiration Date:, others use Registry Expiry Date:, others use expires:. Parsing WHOIS responses is a nightmare of regex and edge cases.

# GoDaddy format
Expiration Date: 2025-03-15T04:00:00Z

# Namecheap format  
Registry Expiry Date: 2025-03-15T04:00:00.000Z

# Some ccTLD format
expires: 15-Mar-2025

Three different formats for the same information. And that's just expiration dates. Multiply this across every field, every registrar, every TLD.

No Standard Error Handling

WHOIS has no concept of structured errors. You get back plain text that might say:

  • "No match for domain"
  • "Domain not found"
  • "Object does not exist"
  • Just... nothing

Good luck writing reliable code against that.

Rate Limiting Chaos

Each WHOIS server has its own rate limits. Some will block you after 10 queries. Some after 100. Some don't tell you they're blocking you - they just return garbage data.

Privacy Redaction Inconsistency

After GDPR, WHOIS data got messy. Some registrars redact everything. Some redact selectively. Some show different data depending on where you're querying from. There's no standard for what "redacted" looks like.

No Authentication

Anyone can query WHOIS. Bots, spammers, scrapers. There's no way to prove you're a legitimate service, which means everyone gets treated like a potential abuser.

Enter RDAP

RDAP was designed by ICANN specifically to fix WHOIS. It's an actual specification, not an accident of history.

Structured JSON Responses

RDAP returns proper JSON with consistent field names:

{
  "events": [
    {
      "eventAction": "expiration",
      "eventDate": "2025-03-15T04:00:00Z"
    },
    {
      "eventAction": "registration",
      "eventDate": "2010-06-22T15:00:00Z"
    }
  ],
  "status": ["active"],
  "nameservers": [
    {"ldhName": "ns1.example.com"},
    {"ldhName": "ns2.example.com"}
  ]
}

Same format, every time, from every server. Parsing is trivial.

Proper Error Codes

RDAP uses HTTP status codes like a civilized API:

  • 200 - Success
  • 404 - Domain not found
  • 429 - Rate limited
  • 503 - Service unavailable

You know exactly what happened and can handle it appropriately.

Standardized Rate Limiting

Rate limit information comes in HTTP headers:

X-Rate-Limit-Limit: 100
X-Rate-Limit-Remaining: 95
X-Rate-Limit-Reset: 1706300400

Your code can respect limits without getting blocked.

IANA Bootstrap

Here's the clever part: RDAP uses a bootstrap system maintained by IANA. When you want to query a .io domain, you ask IANA's bootstrap service which RDAP server handles .io, then query that server.

This means you don't need to maintain a database of which server handles which TLD. The system self-organizes.

Better Privacy Controls

RDAP has standardized privacy levels. Registrars can implement consistent redaction policies, and the responses clearly indicate when data has been redacted and why.

How Modern Domain Monitoring Uses RDAP

The transition to RDAP makes domain monitoring significantly more reliable. Here's what changes:

Accurate Expiration Detection

With WHOIS, monitoring tools had to maintain regex patterns for hundreds of different formats. Miss one pattern and you miss an expiration date.

With RDAP, expiration is always in the same place: events[].eventAction === "expiration". One line of code, works everywhere.

Reliable Status Tracking

RDAP returns standardized status codes:

  • active - Domain is registered and working
  • inactive - Registered but not resolving
  • pendingDelete - About to be released
  • redemptionPeriod - Expired, can still be recovered
  • serverTransferProhibited - Locked against transfers

These mean the same thing regardless of registrar. Your monitoring tool can tell you exactly what state your domain is in.

Better Historical Data

RDAP includes creation dates, last update dates, and transfer dates in a consistent format. You can track the full lifecycle of a domain.

Proper Caching

RDAP responses include cache headers. Your monitoring tool knows when data is fresh vs. stale, reducing unnecessary queries while keeping data current.

The Transition Period

Not everything supports RDAP yet. Here's the current state:

Full RDAP Support

  • All gTLDs (.com, .net, .org, .io, .dev, etc.)
  • Major ccTLDs (.uk, .de, .nl, .au)
  • New TLDs (.app, .page, .cloud)

Partial or No RDAP Support

  • Some smaller ccTLDs
  • Legacy TLDs with outdated infrastructure
  • Private/internal TLDs

Good monitoring tools handle this gracefully - using RDAP when available, falling back to WHOIS when necessary.

What This Means for You

If you're setting up domain monitoring, the protocol matters more than you'd think.

Choose RDAP-First Tools

Tools that default to RDAP will give you more accurate data with fewer errors. Ask your monitoring provider what protocol they use.

Expect Better Reliability

RDAP-based monitoring has fewer false positives and false negatives. The data is consistent, so edge cases are rare.

Understand the Limits

Even with RDAP, some information is legitimately private. Registrant contact details are often redacted for privacy compliance. That's intentional and correct.

Don't DIY Unless You Have To

Building RDAP querying from scratch is more complex than it looks. Between bootstrap resolution, rate limiting, caching, and fallbacks, there's a lot of infrastructure. Use a monitoring service that's already solved these problems.

The Technical Details (For the Curious)

If you want to understand how RDAP works under the hood:

Bootstrap Resolution

  1. Query IANA bootstrap: https://data.iana.org/rdap/dns.json
  2. Find the entry for your TLD (e.g., "com")
  3. Get the RDAP base URL (e.g., https://rdap.verisign.com/com/v1/)
  4. Query the domain: https://rdap.verisign.com/com/v1/domain/example.com

Response Structure

Every RDAP response includes:

  • objectClassName - What type of object (domain, nameserver, entity)
  • handle - Unique identifier
  • status - Array of status codes
  • events - Registration, expiration, last update dates
  • entities - Contacts (registrant, admin, tech)
  • nameservers - NS records
  • links - Related resources

Conformance Levels

RDAP servers can advertise what extensions they support:

{
  "rdapConformance": [
    "rdap_level_0",
    "icann_rdap_response_profile_0",
    "icann_rdap_technical_implementation_guide_0"
  ]
}

This tells you what fields to expect in the response.

The Bottom Line

WHOIS served its purpose for 40 years, but it was never designed for modern internet operations. RDAP is the replacement we needed.

For domain monitoring, this means:

  • More accurate expiration tracking
  • Fewer parsing errors
  • Better status visibility
  • Reliable automation

If your domain monitoring feels flaky or inconsistent, check whether it's using RDAP. The protocol alone makes a significant difference in reliability.


Morten Pradsgaard is the founder of exit1.dev — the free uptime monitor for people who actually ship. He writes no-bullshit guides on monitoring, reliability, and building software that doesn't crumble under pressure.