Protocol: WHOIS → RDAP ⤢ WHOISRFC 3912 (2004) — TCP port 43, plaintext The legacy protocol. Unstructured free-text output. ⤢ RDAPRFCs 7480–7485 (2015) — HTTPS, JSON The official successor. Structured, secure, web-native. ⤢ TransportTCP 43 (cleartext) → HTTPS (TLS) RDAP encrypts the query in transit; WHOIS does not. ⤢ OutputFree text → structured JSON (RFC 7483) One parser works for every TLD instead of one per registry. ⤢ Browser reachImpossible → native RDAP recommends CORS (RFC 7480 §5); a browser can query a registry directly. ⤢ MandateOptional → required for gTLDs ICANN has required RDAP for all gTLD registries and registrars since 2019. RDAP query paths ⤢ domain/domain/<domain> Example: /domain/example.com ⤢ ip/ip/<address> Example: /ip/192.0.2.1 or /ip/2001:db8::1 ⤢ autnum/autnum/<asn> Example: /autnum/13335 (drop the AS prefix) ⤢ entity/entity/<handle> A registrar, registrant, or contact by handle. ⤢ nameserver/nameserver/<host> A fully-qualified nameserver host. Key response fields ⤢ objectClassNameObject type domain | ip | autnum | entity | nameserver ⤢ ldhNameName in LDH (ASCII) form e.g. EXAMPLE.COM. unicodeName carries the IDN form. ⤢ status[]EPP status flags client/server prohibition, hold, pending, etc. ⤢ events[]Lifecycle milestones registration, expiration, last changed, transfer — each with a date. ⤢ entities[]Contacts, each with roles[] registrar, registrant, abuse, technical, administrative. ⤢ nameservers[]Delegated nameservers ldhName and/or hostName per entry. ⤢ secureDNSDNSSEC signing state delegationSigned: true means the zone is signed. Common status codes (EPP) ⤢ clientTransferProhibitedTransfer locked by registrar The registrant opted out of registrar transfers. ⤢ clientUpdateProhibitedUpdates locked by registrar No changes to the record are permitted. ⤢ clientDeleteProhibitedDeletion locked by registrar The domain cannot be deleted. ⤢ serverTransferProhibitedTransfer locked by registry A registry-level transfer hold. ⤢ serverDeleteProhibitedDeletion locked by registry Registry-level protection against deletion. ⤢ clientHold / serverHoldDNS resolution suspended The domain is removed from the zone — it stops resolving. ⤢ addPeriodInitial registration window Typically the first 5 days after registration. ⤢ autoRenewPeriodPost-expiry auto-renew window Grace period during which the domain auto-renews. ⤢ redemptionPeriodDeleted, recoverable for a fee After deletion, a short window to restore the domain. IANA RDAP bootstrap (server discovery) ⤢ dns.jsonTLD → RDAP server data.iana.org/rdap/dns.json ⤢ ipv4.jsonIPv4 range → RIR data.iana.org/rdap/ipv4.json ⤢ ipv6.jsonIPv6 range → RIR data.iana.org/rdap/ipv6.json ⤢ asn.jsonASN range → RIR data.iana.org/rdap/asn.json