Bulk Domain Expiry & WHOIS Checker – RDAP Registrar, Dates avatar

Bulk Domain Expiry & WHOIS Checker – RDAP Registrar, Dates

Pricing

from $2.25 / 1,000 domain looked ups

Go to Apify Store
Bulk Domain Expiry & WHOIS Checker – RDAP Registrar, Dates

Bulk Domain Expiry & WHOIS Checker – RDAP Registrar, Dates

Check hundreds of domains in one run: registrar, creation and expiry dates, days to expiry with an alert level, registry status codes, nameservers and DNSSEC. Official registry RDAP data, no API keys or proxies. Failed lookups are free.

Pricing

from $2.25 / 1,000 domain looked ups

Rating

0.0

(0)

Developer

Kestrelwick Studios

Kestrelwick Studios

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Categories

Share

Bulk Domain Expiry & WHOIS Checker – RDAP Registrar, Dates, Status

Paste a list of domains and get one clean row per unique domain: whether it's registered, the registrar, the creation, last-updated and expiry dates, days to expiry with a ready-made alert level (expired, critical, warning, ok), the domain's age, registry status codes (transfer lock, redemption, pending delete...), nameservers and DNSSEC. We remove duplicates for you, and lookups that fail are free.

We read the data straight from each registry's official RDAP server (the modern, structured replacement for WHOIS), found through IANA's public RDAP directory. We don't need API keys, proxies or logins, and we don't scrape any website. A list of 100+ domains usually finishes in a few seconds.

Built and maintained by Kestrelwick Studios.

Who it's for

  • Agencies and IT teams managing dozens or hundreds of client domains who don't want a site to go dark because a renewal slipped.
  • Domain investors tracking expiry dates, drops (redemption / pending delete) and whether names are still unregistered.
  • Security, fraud and KYB teams checking domain age and registrar on vendor, lead or phishing lists. A domain registered 12 days ago tells you a lot.
  • SEO and M&A due diligence confirming who holds a domain, how long it has existed and whether it is transfer-locked.

What we return

FieldExampleMeaning
inputhttps://www.bbc.co.uk/newsThe entry as you sent it
domainbbc.co.ukThe registrable domain we looked up (subdomains, URLs and e-mail addresses are reduced to it)
statusregisteredregistered, not_registered (the registry has no record, so it's likely available), unsupported_tld, invalid_input or error
registrarMarkMonitor Inc.Sponsoring registrar
registrarIanaId292The registrar's IANA ID (gTLDs and some ccTLDs)
createdAt1997-09-15T04:00:00.000ZRegistration date
updatedAt2019-09-09T15:39:04.000ZLast change at the registry
expiresAt2028-09-14T04:00:00.000ZExpiry date
daysToExpiry707Whole days until expiry (negative once expired)
ageDays10614Days since registration
alertokexpired (past expiry, or in redemption / pending delete), critical (under your critical threshold, default 30 days), warning (under your warning threshold, default 90 days), ok, unknown (the registry doesn't publish an expiry date) or available (not registered)
statusCodes["client transfer prohibited", ...]EPP status codes from the registry
transferLockedtrueA transfer-prohibited lock is set
nameservers["ns1.google.com", ...]Delegated nameservers
dnssecfalseWhether the delegation is DNSSEC-signed (null if the registry doesn't say)
rdapServerrdap.verisign.comThe registry server that answered
errornullWhy a lookup failed, e.g. .es has no public RDAP server or Timed out after 15s
checkedAt2026-10-07T21:35:02.000ZWhen we checked

Use the Expiry alerts view in the dataset to see just domain, alert, days to expiry, expiry date and registrar.

Input

  • Domains: one per line. Plain domains (example.com), full URLs (https://shop.example.co.uk/cart) and e-mail addresses (jane@example.org) all work, and international domains like münchen.de are converted for you. You can paste a whole spreadsheet column; we also split entries on commas and semicolons.
  • Warning threshold (days): defaults to 90.
  • Critical threshold (days): defaults to 30.
  • Advanced: parallel lookups (default 10), parallel lookups per registry (default 3, to stay inside registry rate limits), timeout per lookup and a max domains cap to control spend.
{ "domains": ["google.com", "https://www.bbc.co.uk/news", "github.io", "lemonde.fr", "jane@python.org"],
"warningDays": 90, "criticalDays": 30 }

Output example

{ "input": "google.com", "domain": "google.com", "status": "registered", "registrar": "MarkMonitor Inc.",
"registrarIanaId": "292", "createdAt": "1997-09-15T04:00:00.000Z", "updatedAt": "2019-09-09T15:39:04.000Z",
"expiresAt": "2028-09-14T04:00:00.000Z", "daysToExpiry": 707, "ageDays": 10614, "alert": "ok",
"statusCodes": ["client delete prohibited", "client transfer prohibited", "client update prohibited",
"server delete prohibited", "server transfer prohibited", "server update prohibited"],
"transferLocked": true, "nameservers": ["ns1.google.com", "ns2.google.com", "ns3.google.com", "ns4.google.com"],
"dnssec": false, "rdapServer": "rdap.verisign.com", "error": null, "checkedAt": "2026-10-07T21:35:02.000Z" }
{ "input": "this-domain-is-not-registered-kw2026.com", "domain": "this-domain-is-not-registered-kw2026.com",
"status": "not_registered", "alert": "available", "registrar": null, "expiresAt": null, "rdapServer": "rdap.verisign.com", "error": null }

A run summary (domains received, duplicates removed, invalid entries, results per status) is saved as SUMMARY in the run's key-value store. Export the dataset as CSV, Excel, JSON or XML, or call the actor from the Apify API, Make, Zapier or n8n. Schedule it weekly and filter on alert to get renewal reminders.

Coverage

We cover every TLD listed in IANA's RDAP directory (all generic TLDs such as .com, .net, .org, .info, .xyz, .app, .dev and .ai, plus ccTLDs such as .uk, .fr, .nl, .ca, .au, .br, .in, .pl, .cz, .no and .fi). We also query the official registry servers for .io, .co, .me, .us, .sh, .ac, .de, .ch and .li, which aren't in the directory yet. Some country registries don't run a public RDAP server yet (for example .es, .it, .eu, .be, .at, .se, .dk, .jp, .cn and .ru). Those rows come back as unsupported_tld and are free.

Deduplication

We dedupe on the registrable domain: www.google.com, GOOGLE.com, https://google.com/search and mail.google.com become one row (the first one you sent), and you're charged once.

Pricing

Pay per result: $2.48 per 1,000 domains on the Free plan, going down to $2.25 per 1,000 on higher Apify plans. There's no start fee, duplicates are removed before billing, and failed lookups, unsupported TLDs and invalid entries are free. A not_registered answer counts as a result, since it's a definitive answer from the registry. Platform usage is included.

Tips

  • Keep warning at 90 days and critical at 30 for renewals; domain investors watching drops can filter on alert = expired.
  • transferLocked = false on a valuable domain is worth a look: most registrars lock transfers by default.
  • Set a maximum charge per run in Apify to cap spend. We stop before going over it.
  • For DNS, e-mail authentication (SPF, DMARC) and SSL certificate expiry, pair this with our Bulk Domain Health Checker.

FAQ

Is this the same as WHOIS? It's the same registration data, from the same registries, in RDAP, the structured format ICANN now requires for gTLDs. Personal contact details are redacted by registries under GDPR, so we don't return registrant names or e-mails. Why is expiresAt empty for a .de or .ch domain? Some registries (DENIC for .de, SWITCH for .ch) don't publish expiry dates. Those rows have alert = unknown. Does not_registered guarantee I can buy the domain? No. It means the registry has no record of it. Premium, reserved or blocked names can still be unavailable at your registrar. What happens with very large lists? We pace requests per registry and retry rate-limit (HTTP 429) and server errors with backoff. If a registry still refuses, the row comes back as error and it's free. You can re-run just those domains. Support: open an issue on the actor's Issues tab and we'll respond.