Bulk Domain WHOIS Lookup & Expiry Checker (RDAP) – $2/1k avatar

Bulk Domain WHOIS Lookup & Expiry Checker (RDAP) – $2/1k

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Bulk Domain WHOIS Lookup & Expiry Checker (RDAP) – $2/1k

Bulk Domain WHOIS Lookup & Expiry Checker (RDAP) – $2/1k

Bulk WHOIS/RDAP lookup for thousands of domains: registrar, creation & expiry dates, domain age, days until expiry, status, transfer lock, DNSSEC, nameservers, registrant org/country, plus optional MX/SPF/DMARC and SSL expiry. No API key needed. $2 per 1,000 domains.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

leo zhu

leo zhu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Bulk Domain WHOIS Lookup & Expiry Checker (RDAP)

$2 per 1,000 domains · no WHOIS API key needed · official RDAP data · CSV, Excel, JSON or API.

Look up WHOIS / RDAP registration data for thousands of domains in one run: registrar, creation date, expiry date, domain age, days until expiry, EPP status codes, transfer lock, DNSSEC, nameservers, registrant organisation and country, plus the registrar abuse contact. Optionally add email DNS records (MX, SPF, DMARC, email provider) and SSL certificate expiry at no extra cost.

Paste domains, URLs or even email addresses - each one is reduced to its registrable domain (https://shop.example.co.uk/page -> example.co.uk, jane@acme.com -> acme.com) and duplicates are looked up and charged only once.

Built on the official RDAP protocol (the ICANN-mandated successor of port-43 WHOIS), so results come straight from the registry / registrar as structured JSON - no fragile text parsing, no scraping of WHOIS websites.

What you get for each domain

FieldExample
registeredtrue / false (not found at the registry = likely available)
registrar, registrarIanaIdMarkMonitor Inc., 292
createdDate, updatedDate, expiryDate2007-10-09, 2026-09-07, 2028-10-09
domainAgeDays, domainAgeYears6928, 19.0
daysUntilExpiry, expiresSoon, expired743, false, false
status, transferLocked, pendingDeleteclient transfer prohibited ..., true, false
dnssec, nameserversfalse, dns1.p08.nsone.net ...
registrantOrganization, registrantCountry, registrantPrivacyProtectedGitHub, Inc., US, false
abuseEmail, abusePhoneregistrar abuse contact
emailProviders, mxRecords, hasSpf, dmarcPolicyMicrosoft 365, quarantine (with includeDns)
sslIssuer, sslValidTo, sslDaysUntilExpirySectigo Limited, 2026-11-29, 63 (with includeSsl)

Use cases

  • Domain portfolio & expiry monitoring - schedule a daily/weekly run over your domains (or your clients' domains) and filter expiresSoon = true to never lose a domain again. Add includeSsl to also catch expiring SSL certificates.
  • Lead qualification & enrichment - domain age, registrant organisation/country and email provider (Google Workspace vs Microsoft 365) are strong firmographic signals for B2B lists.
  • Fraud, phishing & brand protection - newly registered domains (domainAgeDays < 30), missing DMARC, privacy-protected registrants and registrar abuse contacts for takedown requests.
  • Domain investing / expired-domain hunting - bulk-check availability (registered = false), pendingDelete and expiry dates.
  • Security & IT audits - DNSSEC, transfer lock, SPF/DMARC and nameserver inventory across all company domains.
  • M&A / vendor due diligence - who registered the domain, when, and with which registrar.

Input example

{
"domains": ["github.com", "https://www.apify.com/store", "info@bbc.co.uk", "my-new-startup-idea.com"],
"expiringWithinDays": 60,
"includeDns": true,
"includeSsl": true
}

Other ideas:

  • Expiry monitor: your domain list + "expiringWithinDays": 90 + a weekly schedule; export only rows with expiresSoon.
  • Lead list enrichment: paste the email addresses or website column of your CRM export - one row per company domain.
  • Availability check: a list of name ideas; rows with registered: false are not registered.

Output example

A registered domain (real output from a test run on 2026-09-27, rdapUrl omitted):

{
"input": "https://www.github.com/about",
"domain": "github.com",
"tld": "com",
"registered": true,
"dataSource": "rdap",
"registrar": "MarkMonitor Inc.",
"registrarIanaId": "292",
"createdDate": "2007-10-09",
"updatedDate": "2026-09-07",
"expiryDate": "2028-10-09",
"domainAgeDays": 6928,
"domainAgeYears": 19.0,
"daysUntilExpiry": 743,
"expiresSoon": false,
"expired": false,
"status": [
"client delete prohibited",
"client transfer prohibited",
"client update prohibited"
],
"transferLocked": true,
"pendingDelete": false,
"dnssec": false,
"nameservers": [
"dns1.p08.nsone.net",
"dns2.p08.nsone.net",
"dns3.p08.nsone.net",
"dns4.p08.nsone.net",
"ns-1283.awsdns-32.org",
"ns-1707.awsdns-21.co.uk",
"ns-421.awsdns-52.com",
"ns-520.awsdns-01.net"
],
"registrantOrganization": "GitHub, Inc.",
"registrantCountry": "US",
"registrantRegion": null,
"registrantPrivacyProtected": null,
"abuseEmail": "abusecomplaints@markmonitor.com",
"abusePhone": "+1.2086851750",
"hasARecord": true,
"ipAddresses": [
"140.82.112.4"
],
"mxRecords": [
"0 github-com.mail.protection.outlook.com"
],
"emailProviders": [
"Microsoft 365"
],
"hasSpf": true,
"spfRecord": "v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com include:_netblocks.google.com include:_netblocks2.google.com include:mail.zendesk.com include:_spf.salesforce.com include:servers.mcsv.net include:mktomail.com include:sendgrid.net ip4:62.253.227.114 ip4:166.78.69.169 ip4:166.78.69.170 ip4:166.78.71.131 ~all",
"hasDmarc": true,
"dmarcPolicy": "quarantine",
"dnsNameservers": [
"dns2.p08.nsone.net",
"dns3.p08.nsone.net",
"dns4.p08.nsone.net",
"ns-1283.awsdns-32.org",
"ns-1707.awsdns-21.co.uk",
"ns-421.awsdns-52.com",
"ns-520.awsdns-01.net",
"dns1.p08.nsone.net"
],
"sslAvailable": true,
"sslValid": true,
"sslIssuer": "Sectigo Limited",
"sslValidTo": "2026-11-29",
"sslDaysUntilExpiry": 63,
"sslError": null,
"rdapSupportedTld": true,
"note": null,
"rdapServer": "https://rdap.verisign.com/com/v1/",
"checkedAt": "2026-09-27T12:18:04+00:00",
"errors": []
}

A domain that is not registered:

{
"input": "zz-not-registered-kp-20260927.com",
"domain": "zz-not-registered-kp-20260927.com",
"registered": false,
"dataSource": "rdap",
"note": "Not found at the registry RDAP server - likely unregistered (available)"
}

A run summary (counts of registered / unregistered / expiring / expired domains) is saved to the key-value store as RUN_SUMMARY. Every dataset can be downloaded as CSV, Excel, JSON or XML, or sent to Google Sheets, Zapier, Make and webhooks via Apify integrations.

Pricing

Pay per event - you only pay for what you use:

  • a small fee per run start, and
  • a fee per successful RDAP lookup (registered or not-registered answer from the registry).

Not charged: invalid inputs, duplicates, domains in TLDs that have no RDAP service, and lookups where the registry did not answer (timeouts / errors). The exact prices are shown on the Pricing tab. There are no monthly fees.

Coverage & limitations

  • All generic TLDs (.com, .net, .org, .info, .xyz, .shop, .app, .dev, .online, ... ) - ICANN requires every gTLD registry and registrar to run RDAP.
  • Many country-code TLDs that publish RDAP (for example .uk, .ca, .fr, .nl, .br, .au, .ai, .in, .no, .pl, .cz and others - about 1,200 TLDs are listed in the IANA RDAP bootstrap file).
  • Some ccTLDs have no public RDAP service (for example .de, .io, .jp, .eu, .us, .co, .me, .cn, .es, .it, .ch as of September 2026). For those the Actor still returns DNS data and confirms registration from DNS delegation (dataSource: "dns"), free of charge, but dates and registrar are not available.
  • Registrant personal data is redacted by most registries (GDPR). The Actor only outputs the registrant organisation, region and country when the registry publishes them - never personal names. registrantPrivacyProtected shows when a privacy/proxy service or redaction hides the owner.
  • For thin registries (.com, .net) the Actor makes one extra request to the registrar's RDAP server to get registrant organisation and abuse contact (followRegistrarRdap, on by default).
  • registered: false means the registry RDAP server returned "not found". This is a strong signal the domain is available, but reserved/premium names can still be unavailable at registrars.
  • Requests to each registry RDAP server are limited to 4 in parallel and HTTP 429 responses are retried politely.

FAQ

Is this the same as WHOIS? RDAP is the modern, structured replacement for WHOIS, operated by the same registries and registrars. ICANN has replaced WHOIS with RDAP as the required service for gTLDs.

How fast is it? In our tests 81 unique domains took about 8-9 seconds with maxConcurrency 25 (RDAP + DNS).

Can I monitor domains automatically? Yes - create a task with your list and add a schedule; connect a webhook, Slack or email integration to get notified.

Can I export to CSV / Excel / Google Sheets? Yes, from the dataset view or via the API. The Overview table is flat and CSV-friendly.

Is it legal? The Actor only queries public RDAP services built for this purpose and outputs no personal names. You are responsible for using the data in line with applicable laws (e.g. GDPR) and the registries' terms of use.

Keywords

bulk WHOIS lookup, WHOIS API, RDAP lookup, domain expiry checker, domain expiration monitor, domain age checker, registrar lookup, domain availability checker, bulk domain checker, domain registration date, nameserver lookup, DNSSEC check, MX / SPF / DMARC checker, SSL certificate expiry checker, domain portfolio management, brand protection, phishing domain investigation, lead enrichment.