Domain WHOIS & RDAP Lookup
Pricing
Pay per event
Domain WHOIS & RDAP Lookup
Bulk domain WHOIS lookup over the IETF RDAP network — no API key required. Feed a list of domains and get registrar, registration/expiration dates, name servers, and status codes as structured rows. We resolve each domain to the correct registry via the IANA RDAP bootstrap file, paced and retried.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
🎯 What this scrapes
RDAP (Registration Data Access Protocol, RFC 7482+) is the structured, machine-readable successor to legacy WHOIS text — and every gTLD registry (plus a growing set of ccTLDs) is required to expose it publicly, with no key or login. The catch: there's no single RDAP endpoint. Every TLD points at a different registry server, and you have to resolve that mapping yourself via IANA's bootstrap file before you can ask a single question. This Actor does that resolution for you, walks your domain list at a pace you control, and writes one structured row per domain — registrar, registration and expiration dates, name servers, DNSSEC status, and domain status codes — ready for a portfolio monitor, a lead list, or a brand-protection sweep.
🔥 What we handle for you
- 🌐 Correct-registry routing — resolves the right RDAP server per TLD via the IANA bootstrap file, so one input list can span domains across dozens of registries.
- 🔁 Polite pacing + retries — configurable delay between requests, exponential backoff on
429/503,Retry-Afterhonoured. - 🌐 Optional proxy rotation via Apify Proxy for higher-volume runs against registries that throttle by source IP.
- 🧊 Clean, typed dataset rows — Pydantic-validated registrar, dates, name servers, and status codes, ready for CSV/JSON export.
- 💰 Pay-Per-Event pricing — you only pay for domains that resolve. No data, no charge beyond the warm-up fee.
💡 Use cases
- Domain portfolio monitoring — schedule daily runs across your portfolio and catch expiration dates before they lapse.
- Prospecting / lead gen — bulk-check registrar and creation date to spot newly registered domains in a niche.
- Brand protection — batch-check lookalike domain registrations for enforcement leads.
- Due diligence — verify domain ownership, age, and registration history for a target company's web assets.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
domains | array | yes | ['stripe.com'] | Domain names to look up via IETF RDAP, e.g. example.com. One RDAP query per domain, each routed to the… |
maxDomains | integer | no | 100 | Safety cap on how many domains from the list are processed in one run. |
requestDelaySeconds | number | no | 1.0 | Pause between RDAP requests so we stay polite to registry servers. Raise this if a registry starts rate-limiting. |
proxyConfiguration | object | no | {'useApifyProxy': True} | Apify Proxy configuration. RDAP is a public protocol, but some registries throttle by source IP at higher volumes —… |
Example input
{"domains": ["stripe.com","example.com"],"maxDomains": 5,"requestDelaySeconds": 1.0,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
domain | string | The domain that was looked up, normalized to lowercase. |
status | string | registered on an RDAP 200, available on an RDAP 404 (a legitimate answer, not a failure), error only when the lookup could not be completed after retries. |
registrar | string | Sponsoring registrar name, if published by the registry. |
created_date | string | Domain registration date (ISO-8601), when published. |
expiration_date | string | Domain expiration date (ISO-8601), when published. |
last_changed_date | string | Last registry change date (ISO-8601), when published. |
nameservers | array | Authoritative name servers on record for the domain. |
epp_status_codes | array | RDAP/EPP domain status codes, e.g. client transfer prohibited. |
dnssec_enabled | boolean | Whether DNSSEC is signed for this domain, per the RDAP secureDNS block. |
registrant_country | string | Registrant country. null when GDPR-redacted or absent — the common case since 2018. |
registrant_org | string | Registrant organization. null when GDPR-redacted or absent — the common case since 2018. |
rdap_server | string | Resolved authoritative RDAP host after the rdap.org bootstrap redirect. |
scraped_at | string | When this row was recorded (ISO-8601 UTC). |
Example output
{"domain": "stripe.com","status": "registered","registrar": "SafeNames Ltd.","created_date": "1995-09-12T04:00:00Z","expiration_date": "2027-09-11T04:00:00Z","last_changed_date": "2025-10-01T01:39:51Z","nameservers": ["NS-1087.AWSDNS-07.ORG","NS-1882.AWSDNS-43.CO.UK","NS-423.AWSDNS-52.COM","NS-705.AWSDNS-24.NET"],"epp_status_codes": ["client delete prohibited","client transfer prohibited","client update prohibited","server delete prohibited","server transfer prohibited","server update prohibited"],"dnssec_enabled": false,"registrant_country": null,"registrant_org": null,"rdap_server": "rdap.verisign.com","scraped_at": "2026-09-01T09:31:19+00:00"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.05 | One-off warm-up charge per run |
domain-scraped | $0.005 | Per domain RDAP row written to the dataset |
Example: 1 000 results at the rates above ≈ $5.05. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
- RDAP coverage depends on the registry — most gTLDs (.com, .net, .org, etc.) support it; some ccTLDs still only offer legacy WHOIS, which this Actor does not fall back to.
- Registrant contact fields (name, email, phone) are frequently redacted by the registrar under GDPR/privacy-proxy policy — this is a registry-side restriction, not a limitation of the lookup.
- We query only the public RDAP surface each registry exposes — no bulk-zone-file access, no historical/expired WHOIS records.
❓ FAQ
Is this legal?
Yes — RDAP is a public IETF standard (RFC 7482 and successors) that ICANN requires every gTLD registry to expose for public, unauthenticated lookups. We only query the public RDAP endpoint each registry already publishes.
Why are registrant name/email/phone often empty?
Most registrars redact registrant contact fields by default since GDPR (2018) and ICANN's Temporary Specification. Registrar, dates, name servers, and status codes remain public and are populated whenever the registry publishes them.
What happens if a domain isn't registered?
The row comes back with status: "available" and a successful run — a clean not-found from the registry is a real answer, not an error.
Does every TLD support RDAP?
Most gTLDs do; ccTLD coverage is growing but not universal. We resolve the registry via IANA's official bootstrap file, so a TLD without an RDAP server is reported clearly rather than silently skipped.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.