WHOIS Lookup & Domain Age Checker: Bulk Expiry, RDAP from CSV avatar

WHOIS Lookup & Domain Age Checker: Bulk Expiry, RDAP from CSV

Pricing

from $3.50 / 1,000 domains

Go to Apify Store
WHOIS Lookup & Domain Age Checker: Bulk Expiry, RDAP from CSV

WHOIS Lookup & Domain Age Checker: Bulk Expiry, RDAP from CSV

Registration date, expiry, domain age, registrar and nameservers for every domain in an Apify dataset, CSV or Google Sheet, from the registries' own RDAP (WHOIS) servers. Keeps every original column. Inputs: datasetId or fileUrl, domainField. Charged per registry answer. Agent-ready: x402, MCP.

Pricing

from $3.50 / 1,000 domains

Rating

0.0

(0)

Developer

Adam Pearce

Adam Pearce

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Domain WHOIS & Age Checker (Dataset, CSV or Sheet)

How old is each of these companies, when does their domain expire, and who is it registered with?

Looking that up one domain at a time is a browser tab per company. This takes the list you already have, a dataset, a CSV, an Excel file or a Google Sheet, and adds the registry's own answer to every row: when the domain was registered, when it expires, how old it is, the registrar, the nameservers and whether it is locked.

Every original column comes back untouched, so nothing has to be matched up by hand afterwards.

Why the registration date is worth having

A domain registered four months ago is a brand new business. One registered in 1998 is not. That single column changes how a list is worked:

  • Lead qualification. Sort a scraped lead list by domain age and you have sorted it by roughly how established each business is.
  • Fraud and trust checks. A supplier, a marketplace seller or an invoice from a domain registered last week is worth a second look.
  • Portfolio and client admin. Which of the domains you or your clients own expire in the next 30 days, and which are not transfer-locked.
  • Acquisition. Which names on your shortlist are not registered at all, and when the taken ones come up for renewal.

Where the data comes from

From the registry that actually holds the record, over RDAP, the registries' own modern replacement for WHOIS. No scraping, no third-party WHOIS reseller, no API key. The list of which registry serves which top-level domain is IANA's own, read fresh on every run, so a newly delegated TLD works the day it is delegated.

What this means in practice, stated up front rather than in the small print:

  • Some country registries run no RDAP server at all. .ie and .de are the best-known. Those rows come back as no_rdap_server with empty fields, and they are not charged. Nothing is guessed from another source.
  • Registrant contact details are redacted by most registries since GDPR. This Actor returns only an organisation name and a country code where a registry publishes them, and only if you switch that on. It never returns a person's name, email, phone or address.
  • A date the registry does not publish comes back empty, not estimated. A blank is more useful than a confident wrong number.
  • The expiry date is the registry expiry date. It is when the registration lapses if nobody renews, not the date a website goes dark.

What you get on every row

ColumnWhat it is
domainThe registrable domain read out of your column. https://www.bbc.co.uk/news becomes bbc.co.uk
domainStatusok, not_registered, no_rdap_server, rate_limited, refused, unreachable or invalid_domain
registeredOn, expiresOn, lastChangedOnThe registry's own dates
domainAgeDays, domainAgeYearsHow long the name has been registered
daysUntilExpiry, isExpired, expiringSoonCounted in calendar days to the expiry date
isNewDomainRegistered inside your "recently registered" window, 365 days by default
registrar, registrarIanaIdWho the name is registered through
nameservers, nameserverCountWhich nameservers it uses, so you can see the DNS or hosting provider
domainLocked, pendingDelete, domainStatusesTransfer lock, pending deletion, and the raw registry statuses
dnssecWhether the domain is DNSSEC signed
rdapServer, checkedAtWhich registry answered, and when

Example

Four rows in:

companydomain
Anthropicanthropic.com
BBChttps://www.bbc.co.uk/news
Gymsharkgymshark.com
Linearlinear.app

and back (real output, shortened):

companydomainregisteredOnexpiresOndomainAgeYearsregistrarnameservers
Anthropicanthropic.com2001-10-022033-10-0224.9MarkMonitor Inc.isla.ns.cloudflare.com, randy.ns.cloudflare.com
BBCbbc.co.uk1994-12-132034-12-1331.7British Broadcasting Corporationddns0.bbc.co.uk, ddns0.bbc.com, dns0.bbc.co.uk, …
Gymsharkgymshark.com2011-09-162028-09-1615MarkMonitor Inc.ns-1444.awsdns-52.org, ns-294.awsdns-36.com, …
Linearlinear.app2018-05-092030-05-098.3CloudFlare, Inc.tim.ns.cloudflare.com, zara.ns.cloudflare.com

Worth noticing in that one table: Anthropic's name is registered through MarkMonitor but its DNS is served by Cloudflare, and the BBC is its own registrar. Both are facts the nameserver column gives you for free.

Input

Point it at whichever you have:

  • Dataset: pick an Apify dataset, for example the output of a Google Maps, directory or company scraper.
  • File URL: a public link to a CSV, TSV, Excel, JSON or JSON Lines file, or a Google Sheet shared as "anyone with the link".
  • Inline data: paste rows as JSON.

The domain column is detected automatically. Full URLs, bare domains and even email addresses all work.

Then narrow the results if you want: keep only registered domains, only unregistered ones, only those expiring soon, only those registered recently, or only the rows the registry would not answer for.

Output

The dataset, plus optionally a real downloadable CSV or Excel file, plus optionally an append to a named dataset so a scheduled run builds one growing table, plus optionally a webhook that receives the run summary the moment the run finishes.

What it costs

$0.005 per domain the registry answers for, which is $5.00 per 1,000 domains at the standard rate and less on Bronze, Silver and Gold. Files are $0.01 each, a webhook delivery is $0.02.

You are charged for an answer, not for an attempt. A real record is an answer. So is a registry confirming a name is not registered, which is exactly the answer you want when you are checking availability. A TLD with no RDAP server, a refusal, a rate limit, a timeout and a value that is not a domain are all free.

Filtering happens after the lookup, so choosing to keep only the expiring rows does not make the run cheaper.

A 1,000-domain list costs about $5, and finishes in a couple of minutes.

FAQ

Is this legal? Yes. RDAP is a published standard (RFC 9082 and 9083) that registries run precisely so that domain registration data can be queried programmatically. There is no scraping here and no terms to work around.

Why is .de or .ie empty? Those registries have not deployed RDAP. Rather than fall back to a scraped or resold WHOIS source of unknown accuracy, this Actor says so plainly and does not charge you.

Why is the registrant blank? Because the registry redacts it, which has been the norm since GDPR. Where a registry does publish an organisation, switch on "Include registrant organisation and country" to get it.

Can it tell me if a domain is for sale? It tells you whether the name is registered, when it expires and whether it is locked. A parked or for-sale page is a website question, not a registry one.

I am seeing rate_limited. Registries limit how fast one client may query. Lower the Concurrency setting, or split a very large list across a few runs.

Does it run JavaScript or visit the website? No. It never touches the website at all, only the registry. That is why it is fast and cheap.

The rest of the toolkit

The natural pair is Tech Stack Detector and Website Contact Finder: run all three on the same list, or chain them with the Pipeline Runner, to get every company's age, its tech stack and its business inbox in one table. Then Email List Cleaner & Validator checks the addresses and Phone Number Validator & Cleaner checks the numbers.

For the data itself: Dataset Cleaner & Exporter, Filter & Transform, Join & Merge, Aggregate, Group By & Pivot, Diff & Change Detector, AI Enrich, Charts & Report, to Postgres, Supabase & MySQL, to REST API, and Actor Pipeline Runner to chain them in one call.


If this saved you looking up a few hundred domains one at a time, a review on the Store page helps a lot. If something looks wrong, open an issue on the Issues tab and I will answer personally.