Domain Scraper: WHOIS, DNS, Expiry & Availability avatar

Domain Scraper: WHOIS, DNS, Expiry & Availability

Pricing

from $1.00 / 1,000 domains

Go to Apify Store
Domain Scraper: WHOIS, DNS, Expiry & Availability

Domain Scraper: WHOIS, DNS, Expiry & Availability

Bulk domain lookup: registrar, registration and expiry dates, lock status, DNSSEC, nameservers and live DNS records (A, MX, NS, TXT, CAA). Detects the mail and DNS provider, checks SPF/DMARC, and tells you whether a domain is available. Official RDAP and DNS, no key.

Pricing

from $1.00 / 1,000 domains

Rating

0.0

(0)

Developer

Daniel Meshulam

Daniel Meshulam

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Bulk domain lookup that returns something you can act on, not a wall of raw WHOIS text.

For every domain: who registers it, when it expires, whether it's locked, and, from live DNS, which mail provider and DNS provider it actually runs on, plus SPF/DMARC status.

Built on RDAP (the IETF's official WHOIS replacement, RFC 9083) and DNS-over-HTTPS. No key, no login.

What you get

FieldExample
domain, isRegistered, isAvailablestripe.com, true, false
registrarSafeNames Ltd.
registeredAt, expiresAt, updatedAt
daysUntilExpiry410
ageYears30.9
mailProvidergoogle · microsoft-365 · zoho · proton
dnsProvidercloudflare · aws-route53 · azure · vercel
hasSPF, hasDMARC, dmarcPolicytrue, true, reject
isLocked, dnssec, statusCodestrue, true
nameservers, dnsA, dnsMX, dnsNS, dnsTXT, dnsCAA
verificationTokensthe *-site-verification TXT records

Example input

{
"domains": ["github.com", "stripe.com", "https://openai.com/about"],
"includeDns": true,
"recordTypes": ["A", "MX", "NS", "TXT"],
"includeEmailSecurity": true
}

Full URLs and email addresses are accepted: https://example.com/pricing and sales@example.com both reduce to example.com.

Built-in filters

onlyRegistered: true: drop available domains. Useful when you're feeding in a scraped list.

expiringWithinDays: 60: only domains expiring soon. Point it at a portfolio for renewal alerts, or at a wishlist for drop-catching.

Filtered-out domains are not charged.

Availability check

An unregistered domain returns isAvailable: true. This comes from the registry's own RDAP server returning "no such object", so it is authoritative rather than a reseller's guess.

When no registry can be asked, the answer is null, not true. IANA's bootstrap registry lists RDAP servers for about 1,200 TLDs, and several common ones are missing from it, including .io, .co, .de, .me, .so, .gg and .sh. For those, rdap.org answers 404 for every name, registered or not. Reading that 404 as "available" would report every .io and .co domain as free to register.

So a 404 only means available when the TLD actually has an RDAP server. Otherwise DNS settles it: a name with NS records is delegated by the registry, which cannot happen unless it is registered. If neither source can answer, the row carries availabilityNote explaining why, and onlyRegistered keeps it rather than silently dropping it.

Who this is for

  • Agencies & sales teams: qualify leads by tech stack: who's on Google Workspace, who's on Microsoft 365, who has no DMARC
  • Domain investors: expiry monitoring across a portfolio, availability checks in bulk
  • Security & IT: SPF/DMARC audit across every domain you own
  • SEO: domain age and registrar for competitor and backlink analysis

Privacy

This Actor returns no registrant personal data. Post-GDPR, RDAP exposes only the registrar for virtually every TLD, and no attempt is made to recover the individual behind a domain from any other source. What comes back is operational: registrar, dates, status, and where mail and DNS are hosted.

Pricing

Pay per result. One row = one domain. Invalid input and lookup failures come back as error rows and are not charged, and neither are domains removed by your filters.

Bulk WHOIS domain lookup, and why it says RDAP

WHOIS as an API is effectively gone. ICANN's replacement is RDAP, which returns structured JSON instead of the free-text blob every WHOIS parser used to guess at, and it is what this Actor queries. You get the WHOIS answer, in a shape you can actually use.

Paste a list and every domain is looked up in one run, which is the part a single-domain web form cannot do:

QuestionField
Who is the registrar?registrar
When was it registered, when does it expire?registeredAt, expiresAt, daysUntilExpiry, ageYears
Is it locked against transfer?isLocked, statusCodes
Is DNSSEC on?dnssec
Is it available to register?isAvailable, isRegistered
Which nameservers, which mail provider?nameservers, plus dnsA / dnsMX / dnsNS / dnsTXT / dnsCAA
Does it publish SPF and DMARC?the email-security fields

DNS record types: A, AAAA, MX, NS, TXT, CNAME, SOA, CAA.

A 404 from RDAP does not mean the domain is free. Some TLDs, .io, .co and .so among them, are missing from IANA's bootstrap registry, so there is no RDAP server to ask and a 404 means "nowhere to ask" rather than "available". This Actor checks the bootstrap list and corroborates with a live NS lookup before it will call anything available. Getting that wrong is how a tool tells you github.io is free to buy.

Notes

  • includeEmailSecurity costs one extra DNS lookup per domain (DMARC lives at _dmarc.<domain>, not on the apex).
  • Some ccTLDs run thin RDAP servers and return fewer fields, you'll get whatever the registry publishes rather than an error.
  • Set a max charge per run in the run options for a hard spend ceiling. The Actor honors it and stops cleanly.

FAQ

Do I need a WHOIS or DNS API key?

No. This uses RDAP, the IETF's official WHOIS replacement (RFC 9083), plus DNS-over-HTTPS. Both are open and key-free.

Can I check whether a domain is available to register?

Yes. An unregistered domain returns isAvailable: true, and that comes from the registry's own RDAP server answering "no such object", so it is authoritative rather than a reseller's guess. Available domains skip DNS lookups entirely, so bulk availability checks are fast and cheap.

Will this give me the registrant's name and email?

No, and not because of a limitation here. Post-GDPR, RDAP exposes only the registrar for virtually every TLD. No attempt is made to recover the individual behind a domain from any other source. What you get is operational: registrar, dates, status, and where mail and DNS are hosted.

How do I find out which email provider a company uses?

mailProvider is derived from live MX records and resolves to names like google, microsoft-365, zoho or proton. dnsProvider does the same for nameservers: cloudflare, aws-route53, azure, vercel. That is the field sales teams actually want out of a WHOIS tool.

Can I audit SPF and DMARC across all my domains?

Yes. includeEmailSecurity returns hasSPF, hasDMARC and dmarcPolicy (the p= value, so you can tell none from reject). It costs one extra DNS lookup per domain because DMARC lives at _dmarc.<domain>, not on the apex.

Can I get renewal alerts for a domain portfolio?

Set expiringWithinDays: 60 and schedule it. Only domains inside that window are returned, and the ones filtered out are not charged.

Do I have to clean my input list first?

No. Full URLs and email addresses are accepted, so https://example.com/pricing and sales@example.com both reduce to example.com.

Why do some domains return fewer fields?

Some ccTLDs run thin RDAP servers. You get whatever the registry publishes rather than an error.