Skip to main content

Domain Registration (RDAP)

free
GET/v1/domain/whois

Retrieves comprehensive domain registration data via RDAP (Registration Data Access Protocol). As of January 2025, ICANN officially sunsetted WHOIS for gTLDs — RDAP is now the definitive source. Returns registrar details (name, IANA ID, URL), registration dates (created, updated, expires) with computed age and expiry indicators, EPP status codes, authoritative nameservers, DNSSEC signing status, and registrant/admin/tech contacts (name, organization, email, phone, address). Results are cached for 1 hour.

What It Does

Queries RDAP servers (RFC 7480, RFC 9224 bootstrap) to retrieve domain registration metadata including registrar name, IANA accreditation ID, and URL; registration dates (created, updated, expires) with computed domain age in days, newly-registered flag (< 30 days), days until expiry, and expiring-soon flag (< 30 days); EPP status codes (clientTransferProhibited, serverHold, redemptionPeriod, etc.); authoritative nameservers; DNSSEC signing status; and registrant, administrative, and technical contacts. Detects privacy-proxy registrants (WhoisGuard, PrivacyGuardian, Withheld for Privacy, Domains By Proxy, Cloudflare Registrar, etc.) and surfaces a `contacts.redacted` flag with `redaction_reason` when GDPR / ICANN privacy policy suppresses identifying fields, so compliance reports can distinguish "redacted" from "missing data". Enriches the registrar against the IANA registrar registry — `registrar.is_accredited` and `registrar.country` derive from a curated subset of the official IANA Registrar IDs assignment. For ccTLDs without RDAP support, falls back to legacy WHOIS over TCP port 43 (RFC 3912) and surfaces the protocol used via the `protocol` field. Optionally returns the raw upstream response via include_raw.

Why It's Useful

ICANN officially sunsetted WHOIS for gTLDs on 28 January 2025 — RDAP is now the canonical source for gTLD registration data, and EdgeDNS handles bootstrap discovery automatically. Privacy-proxy detection and GDPR-redaction transparency give fraud and threat-intel teams the context they need to triage "newly-registered + privacy-shielded + sketchy nameservers" patterns without writing those heuristics themselves. The port-43 fallback covers the long tail of ccTLDs (.de, .it, .br, .au, .nz, .jp, etc.) where RDAP coverage is partial, so callers don't silently 5xx on otherwise-valid domains.

Use Cases

Business Development

Due Diligence for Domain Acquisition

Before purchasing a domain, verify ownership history, registration dates, and any existing disputes or holds.

Avoid purchasing domains with legal issues or poor reputation history.

Security Analyst

Phishing Domain Detection

Investigate suspicious domains reported by users. RDAP data reveals registration date, registrar, and EPP status — newly registered domains from budget registrars with privacy enabled are strong phishing indicators.

Quickly triage phishing reports by identifying domains registered within the last 30 days with high-risk registration patterns.

Product Manager

Competitive Intelligence

Monitor when competitors register new domains to anticipate product launches or market expansions.

Stay ahead of competitor moves with early visibility into their domain portfolio.

Parameters

NameTypeRequiredDescription
domainstringRequiredThe domain name to lookup (e.g., example.com)Example: example.com
include_rawstringOptionalSet to "true" to include the full raw RDAP response in the outputExample: false

Response Fields

FieldTypeDescription
domainstringThe queried domain
protocolstringSource protocol: "rdap" (canonical for gTLDs), "whois43" (port-43 fallback for ccTLDs without RDAP), or "unsupported"
statusarrayEPP status codes (clientTransferProhibited, serverHold, redemptionPeriod, etc.)
registrar.namestringRegistrar name
registrar.iana_idnumberRegistrar IANA accreditation ID
registrar.urlstringRegistrar URL
registrar.is_accreditedbooleanTrue if the IANA ID corresponds to an ICANN-accredited registrar (any non-null IANA ID implies accreditation)
registrar.countrystringRegistrar country code from a curated subset of the IANA Registrar IDs registry; null for registrars not in the curated list
dates.createdstringDomain registration date (ISO 8601)
dates.updatedstringLast update date (ISO 8601)
dates.expiresstringExpiration date (ISO 8601)
dates.age_daysnumberDomain age in days since registration
dates.is_newly_registeredbooleanTrue if domain is less than 30 days old
dates.days_until_expirynumberDays remaining until expiration
dates.is_expiring_soonbooleanTrue if domain expires within 30 days
nameserversarrayAuthoritative nameservers for the domain
dnssecbooleanWhether domain has DNSSEC signing enabled at the registry
contacts.registrantobjectRegistrant contact: name, organization, email, phone, address (street, city, state, postal_code, country). Null when the protocol does not surface contact data.
contacts.adminobjectAdministrative contact: name, organization, email, phone, address
contacts.techobjectTechnical contact: name, organization, email, phone, address
contacts.redactedbooleanTrue when contact identifying fields are suppressed by registry / registrar privacy policy (per GDPR or ICANN temporary specification)
contacts.redaction_reasonstringHuman-readable reason when redacted=true; null otherwise
is_privacy_proxybooleanTrue when the registrant organization matches a known privacy-proxy service (WhoisGuard, PrivacyGuardian, Withheld for Privacy, Domains By Proxy, Cloudflare Registrar, etc.)
privacy_proxy_providerstringName of the matched privacy-proxy service when is_privacy_proxy=true; null otherwise
rawobjectFull raw upstream response (RDAP JSON or WHOIS text), only when include_raw=true

Code Examples

cURL
curl "https://api.edgedns.dev/v1/domain/whois" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "domain=example.com"
JavaScript
const response = await fetch(
  'https://api.edgedns.dev/v1/domain/whois?domain=example.com',
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  }
);

const data = await response.json();
console.log(data);
Python
import requests

response = requests.get(
    'https://api.edgedns.dev/v1/domain/whois',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    params={
    'domain': 'example.com'
    }
)

data = response.json()
print(data)

Read the full Domain Registration (RDAP) guide

Why it matters, real-world use cases, parameters, response fields, and how to call it from Claude, ChatGPT, or Gemini via MCP.

Read the guide →

Related Endpoints

External References

Learn more about the standards and protocols behind this endpoint.

Try This Endpoint

Test the Domain Registration (RDAP) endpoint live in the playground.