Domain WHOIS & DNS Lookup (RDAP)
Pricing
from $10.00 / 1,000 domain checkeds
Domain WHOIS & DNS Lookup (RDAP)
Look up domain registration (registrar, creation and expiry dates, status, nameservers, DNSSEC) from official RDAP registries plus A, AAAA, MX, NS, TXT, CNAME and CAA records and the email provider. No personal data.
Pricing
from $10.00 / 1,000 domain checkeds
Rating
0.0
(0)
Developer
Neatfeeds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Give it a list of domains, URLs or emails; get back one clean row per domain with the registrar, creation/expiry dates, days until expiry, domain age, EPP status, nameservers, DNSSEC, live DNS records (A, AAAA, MX, NS, TXT, CNAME, CAA) and the email provider detected from MX.
Data comes only from official sources: the IANA RDAP bootstrap and each registry's own RDAP server (the ICANN-mandated successor of WHOIS), plus DNS-over-HTTPS from Cloudflare (Google as fallback). No scraping of WHOIS websites, no browser, no proxy, no personal data.
Use cases
- Domain investors and SEO: track expiry dates and
daysUntilExpiryof portfolios, competitors' domains or expired-domain candidates; checkregistered: falsefor availability. - Security / threat intel: flag newly registered domains (
domainAgeDays< 30) in phishing reports, email logs or ad networks; check DNSSEC, CAA and nameservers. - Sales and lead enrichment: turn a list of company websites or contact emails into
emailProvider(Google Workspace, Microsoft 365, Zoho Mail, Proofpoint, ...) and hosting hints for segmentation. - IT inventory and compliance: audit all company domains at once: registrar, renewal dates, transfer locks (
status), SPF/verification TXT records, CAA policy.
Input
| Field | Type | Default | Description |
|---|---|---|---|
domains | array of strings | required | Domains, URLs or emails. The registrable domain is extracted (https://www.shop.example.co.uk/x → example.co.uk, jane@example.com → example.com), lower-cased and converted to punycode (münchen.de → xn--mnchen-3ya.de). Duplicates are checked and billed once; entries that are not domains are skipped and listed in the log. |
includeDns | boolean | true | Also resolve DNS records and detect the email provider. Same price either way. |
maxResults | integer | 1000 | Stop after this many domains. |
{"domains": ["example.com", "https://www.wikipedia.org/wiki/Main_Page", "press@stripe.com", "münchen.de"],"includeDns": true,"maxResults": 1000}
Output
One item per unique domain. Real item from a cloud run (TXT list shortened):
{"domain": "wikipedia.org","input": "wikipedia.org","registered": true,"registrar": "MarkMonitor Inc.","registrarIanaId": "292","createdAt": "2001-01-13T00:12:14.754Z","updatedAt": "2026-08-12T08:47:19.410Z","expiresAt": "2027-01-13T00:12:14.000Z","daysUntilExpiry": 85,"domainAgeDays": 9410,"status": ["client delete prohibited", "client transfer prohibited", "client update prohibited"],"nameservers": ["ns0.wikimedia.org", "ns1.wikimedia.org", "ns2.wikimedia.org"],"dnssec": false,"dns": {"a": ["208.80.154.224"],"aaaa": ["2620:0:861:ed1a::1"],"mx": [{ "priority": 10, "exchange": "mx-in1001.wikimedia.org" },{ "priority": 10, "exchange": "mx-in2001.wikimedia.org" }],"ns": ["ns0.wikimedia.org", "ns1.wikimedia.org", "ns2.wikimedia.org"],"txt": ["yandex-verification: 35c08d23099dc863", "v=spf1 include:_cidrs.wikimedia.org ~all"],"cname": [],"caa": [{ "flags": 0, "tag": "iodef", "value": "mailto:dns-admin@wikimedia.org" },{ "flags": 0, "tag": "issue", "value": "letsencrypt.org" },{ "flags": 0, "tag": "issue", "value": "pki.goog" }]},"emailProvider": "Other","rdapServer": "https://rdap.publicinterestregistry.org/rdap/","error": null,"checkedAt": "2026-10-19T22:23:02.529Z"}
| Field | Meaning |
|---|---|
domain / input | Normalized domain looked up / the original entry. |
registered | true registered, false not found in the registry (RDAP 404, usually available), null unknown (registry without RDAP or lookup error). |
registrar, registrarIanaId | Sponsoring registrar and its IANA ID. |
createdAt, updatedAt, expiresAt | ISO 8601 dates from the registry (null when the registry does not publish them, e.g. .de). |
daysUntilExpiry, domainAgeDays | Whole days, computed at checkedAt. |
status | EPP status codes (transfer locks, holds, pending delete...). |
nameservers, dnssec | Delegation as recorded by the registry. |
dns | Live records: a, aaaa, mx (priority, exchange), ns, txt, cname, caa (flags, tag, value). null when includeDns is off. |
emailProvider | From MX: Google Workspace, Microsoft 365, Zoho Mail, Proofpoint, Mimecast, Fastmail, Proton Mail, GoDaddy, OVHcloud, IONOS, Aruba, Yandex 360, Cloudflare Email Routing, ...; Self-hosted (MX on the same domain), Other, No email (null MX) or null (no MX). |
rdapServer | Registry RDAP server that answered. |
error | Why some data is missing; null when everything worked. |
The dataset has two views: Overview (registration table) and DNS records. Export as JSON, CSV, Excel or via API.
Pricing
Pay per event, no subscription:
- $10 per 1,000 domains = $0.01 per domain (
apify-default-dataset-item) - $0.00005 per run start (
apify-actor-start)
| Domains | Cost |
|---|---|
| 1 | $0.01005 |
| 100 | $1.00005 |
| 1,000 | $10.00005 |
| 10,000 | $100.00005 |
Duplicates and entries that are not domains are never billed. A run of 48 mixed domains took 28 seconds.
Why this actor
- Official sources: registration data straight from the registries' RDAP servers listed by IANA (the protocol ICANN requires instead of port-43 WHOIS), DNS from Cloudflare/Google DoH. Structured JSON, not parsed WHOIS text.
- No personal data: registrant, admin, tech and abuse contacts, vCards, emails and phones are dropped before anything is stored. Only the registrar is kept, so the output is safe to share under GDPR.
- No blocking: public APIs with proper backoff on rate limits (429,
Retry-After), timeouts and resolver fallback; no proxies needed. - DNS included: one row gives registration + DNS + email provider, at the same price.
- Never fails the whole run for one bad domain: problems are reported per domain in
error.
FAQ
Some TLDs return registered: null. Why?
A few country-code registries (e.g. .it, .ch, .jp, .ru, .cn, .ee, .so, .tk) publish no RDAP service in the IANA bootstrap, and their port-43 WHOIS has restrictive terms. For those domains you still get DNS records and the email provider, and error says the registry has no RDAP. .de, .io and .co are covered through their registries' official RDAP servers. Some registries (e.g. .de, .nl) publish no dates or registrar.
How do I cap spending?
Set a maximum cost per run in the run options (or maxTotalChargeUsd via API). The actor checks the remaining budget before each batch and stops cleanly at the limit; maxResults caps the number of domains too.
Can I use it from the API, Make, Zapier, n8n or an AI agent?
Yes. Call POST https://api.apify.com/v2/acts/neatfeeds~domain-whois-rdap/run-sync-get-dataset-items?token=<TOKEN> with the JSON input above and you get the items back directly. It works with all Apify integrations, the Apify MCP server and scheduled runs (e.g. a weekly expiry check of your portfolio).
Is a registered: false domain guaranteed to be available?
It means the registry has no record of it. Reserved or premium names may still not be purchasable; check with a registrar before relying on it.
Subdomains?
Inputs are reduced to the registrable domain (common second-level ccTLD suffixes like co.uk, com.au are handled), because registration data exists only at that level.