Bulk Domain WHOIS & RDAP Lookup avatar

Bulk Domain WHOIS & RDAP Lookup

Pricing

from $1.80 / 1,000 domains

Go to Apify Store
Bulk Domain WHOIS & RDAP Lookup

Bulk Domain WHOIS & RDAP Lookup

Bulk domain WHOIS lookup via the official RDAP protocol — registrar, registration/expiry dates, domain age, nameservers, DNSSEC and status codes for any domain, no API key, no rate limits.

Pricing

from $1.80 / 1,000 domains

Rating

0.0

(0)

Developer

Murat Uzun

Murat Uzun

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What is Bulk Domain WHOIS & RDAP Lookup?

Bulk Domain WHOIS & RDAP Lookup is an Apify Actor that reads registrar, registration date, expiry date, nameservers, DNSSEC status and EPP status codes for any domain through RDAP (Registration Data Access Protocol) — the IETF standard that replaced legacy WHOIS. Give it a list of domains or URLs and it returns one clean row per domain with the same facts a whois command would show, but as structured JSON, with no rate limits and no API key. RDAP servers are run directly by each domain registry (Verisign for .com, Nominet for .uk, PIR for .org, and so on), and this Actor queries the correct one for every domain automatically. Runs on Apify's schedule, webhook and API infrastructure, so a weekly expiry check across a domain portfolio is a five-minute setup.

What data does Bulk Domain WHOIS & RDAP Lookup extract?

FieldTypeDescription
domain, tldstringThe clean domain looked up and its top-level label used to route the RDAP query
registrar, registrarIanaIdstringRegistrar name and its IANA registrar identifier
registeredAt, updatedAt, expiresAtstringRegistration, last-change and expiration dates (ISO 8601 UTC)
ageDays, daysToExpirynumberDays since registration and days until expiry (negative if already expired)
isExpiringSoonbooleantrue when daysToExpiry is under 30
statusesarrayEPP/RDAP status codes, e.g. client transfer prohibited
nameserversarrayDelegated nameserver hostnames
dnssecbooleanWhether the domain's delegation is DNSSEC-signed
registrantCountrystringRegistrant's country, when the registry does not privacy-redact it
rdapServerstringThe registry RDAP server this domain was actually queried against
rawEventsarrayThe unparsed RDAP events array, only when Include raw RDAP events is on
error, scrapedAtstringFailure reason (if any) and the run timestamp

How to use Bulk Domain WHOIS & RDAP Lookup

  1. Fill Domains with one domain or URL per line — github.com, https://github.com/apify and www.github.com all resolve to the same clean hostname.
  2. Leave Include nameservers on to get the full nameserver list per domain, or turn it off to shrink the output.
  3. Turn on Include raw RDAP events only if you need an event type this Actor does not already map to a named field (some registries publish extra events like transfer or reregistration).
  4. Click Start and export the dataset as JSON, CSV, Excel or HTML from the Output tab.

Example input

{
"domains": ["github.com", "wikipedia.org", "apify.com"],
"includeNameservers": true,
"includeRawEvents": false,
"maxConcurrency": 5
}

Example output

{
"domain": "github.com",
"tld": "com",
"registrar": "MarkMonitor Inc.",
"registrarIanaId": "292",
"registeredAt": "2007-10-09T18:20:50.000Z",
"updatedAt": "2026-09-07T09:22:52.000Z",
"expiresAt": "2028-10-09T18:20:50.000Z",
"ageDays": 6914,
"daysToExpiry": 757,
"isExpiringSoon": false,
"statuses": ["client delete prohibited", "client transfer prohibited", "client update prohibited"],
"nameservers": ["dns1.p08.nsone.net", "dns2.p08.nsone.net", "ns-421.awsdns-52.com"],
"dnssec": false,
"registrantCountry": null,
"rdapServer": "https://rdap.verisign.com/com/v1",
"error": null,
"scrapedAt": "2026-09-13T19:40:39.447Z"
}

Input parameters

ParameterTypeDefaultDescription
domainsarray["github.com"]Domains or URLs to look up, one per line
includeNameserversbooleantrueList every delegated nameserver per domain
includeRawEventsbooleanfalseAlso store the unparsed RDAP events array
maxConcurrencyinteger5Parallel RDAP requests (1-20)

Pricing

Bulk Domain WHOIS & RDAP Lookup uses pay-per-event pricing: $0.001 per result row, plus a negligible actor-start fee. Checking the expiry date of 1,000 domains costs about a dollar — cheaper and faster than any commercial WHOIS API, because RDAP has no per-query throttling like legacy WHOIS ports do. Set Maximum cost per run and the Actor trims the work to what the budget covers instead of overspending.

Bulk Domain WHOIS & RDAP Lookup vs. WHOIS lookup tools and legacy whois

Legacy WHOIS is a plain-text protocol with no fixed schema — every registry formats its output differently, many rate-limit aggressively, and ICANN has been steering registries toward RDAP as the replacement since 2019. This Actor speaks RDAP directly to each registry's own server (not the semi-broken rdap.org redirector, which returns HTTP 403 for domain lookups), so every row comes back in the same typed JSON shape regardless of whether the domain ends in .com, .io, .co.uk or .dev. No screen-scraping a WHOIS web form, no CAPTCHA, no per-registry text parsing to maintain.

Using Bulk Domain WHOIS & RDAP Lookup with AI agents and MCP

Bulk Domain WHOIS & RDAP Lookup is pay-per-event with limited permissions — the two requirements for an Actor to be callable through the Apify MCP server at mcp.apify.com. An agent passes a domains list and gets back registrar, expiry date and nameserver facts it can use to answer "who owns this domain" or "is this domain about to expire" without writing any WHOIS-parsing code itself.

FAQ

Does this need a WHOIS API key or a paid data provider? No. It queries the free, public RDAP endpoint each registry runs (e.g. rdap.verisign.com for .com, rdap.nominet.uk for .uk), the same protocol ICANN requires all gTLD registries to operate.

Why did I get an error for some ccTLD? Not every country-code registry runs an RDAP server yet — the IANA bootstrap file (https://data.iana.org/rdap/dns.json) lists which ones do. A domain whose TLD is missing from that file gets one clear error row instead of a crash, so you always see exactly which domains could not be checked and why.

Why is registrantCountry often null? Since GDPR and similar privacy laws took effect, most registrars redact the registrant's personal contact details (including country) from public RDAP output by default. Corporate or legacy registrations sometimes still publish it.

Why is expiresAt null for some domains? A handful of registries (Nominet for reserved/example .uk domains, some ccTLDs) simply do not publish an expiration event in their RDAP data. The row still returns everything else RDAP did publish.

What counts as "expiring soon"? isExpiringSoon is true whenever daysToExpiry is under 30 — including domains that have already lapsed (a negative daysToExpiry).

Is this legal to run? Yes. RDAP is a public, unauthenticated protocol that registries are contractually required by ICANN to operate for exactly this kind of automated, structured lookup, and no private WHOIS contact data is scraped — only what each registry chooses to publish.

Part of the webdatatools web-intelligence suite — every Actor is pay-per-event, reads public data without a login, and returns one clean row per entity:

Browse the whole suite at webdatatools, or call ten of these Actors straight from Claude, Cursor or Cline with the webdatatools MCP server.

Website & domain intelligence

Content for AI, LLMs and RAG

Search, video and social

Leads, jobs and company data

Developer, app and research data

Prefer not to check expiry dates by hand? Domain Watch is a hosted monitoring service for your domains: it checks them every 24 hours and sends alerts 30, 14, 7 and 1 days before domain or TLS certificate expiry, plus SPF, DMARC and nameserver changes, by email, webhook or Telegram. You can try one domain right now with the free instant domain check (no sign-up).

Support and feedback

Found a registry, TLD or RDAP response shape it should handle better? Open an issue on the Issues tab.