Bulk WHOIS Lookup - Domain Registration & Expiry avatar

Bulk WHOIS Lookup - Domain Registration & Expiry

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Bulk WHOIS Lookup - Domain Registration & Expiry

Bulk WHOIS Lookup - Domain Registration & Expiry

Bulk WHOIS / RDAP lookup for thousands of domains: registrar, creation and expiry dates, status, nameservers and registrant org. Great for domain monitoring, expiry alerts, lead generation and due diligence. No API key, CSV/JSON export.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Bulk WHOIS Lookup 🔎 — Domain Registration, Registrar & Expiry

Look up registration data for thousands of domains in a single run. This bulk WHOIS lookup tool queries the modern RDAP protocol for every domain you feed it and returns the registrar, creation / updated / expiry dates, domain status, nameservers and registrant organization — one clean, export-ready row per domain.

Paste a list of domains and get a flat table back. No API key, no signup, no headless browser, one row per domain.

Looking for a WHOIS API, domain expiry checker, RDAP lookup, registrar lookup, domain age checker or a nameserver lookup at scale? This actor does the full bulk lookup with no key required and exports straight to CSV or JSON.


✨ Key features

  • 📋 Bulk lookups — process thousands of domains in a single run from one input list.
  • 🔌 RDAP-powered — uses the modern, JSON-based WHOIS standard instead of brittle text parsing.
  • 🔑 No API key — queries the public RDAP bootstrap at rdap.org; nothing to sign up for.
  • 🗂️ Structured fields — registrar, created / updated / expiry dates, status, nameservers, registrant org.
  • 🧹 Smart input cleaning — paste full URLs, www. prefixes or subdomains; they are reduced to the bare domain automatically.
  • 🛟 Graceful gaps — domains with no RDAP service (some ccTLDs) return an error row instead of crashing the run.
  • 🔁 Automatic retries429 and 5xx responses are retried with exponential backoff and a fresh proxy IP.
  • Fast & cheap — pure HTTP, no browser, configurable high concurrency.
  • 💾 Export-ready — JSON, CSV, Excel and a full REST API.

💡 Use cases

  • Domain investing & drop-catching — bulk-check expiry dates and statuses across thousands of candidate names to find drops, expiring assets and transfer-locked domains.
  • Expiry monitoring — feed your whole portfolio and track renewal deadlines from the expiryDate column; schedule it weekly so nothing lapses.
  • Lead generation & B2B enrichment — append registrar, createdDate and nameservers to a list of company domains to infer hosting, tech stack and how established a business is.
  • Brand protection — audit who registered look-alike or typo-squat domains and exactly when they were created.
  • Security & due diligence — newly registered domains (recent createdDate) and unusual nameservers are classic phishing / malware indicators; bulk-screen suspicious lists at scale.

📦 What you get

One row per domain, including:

FieldDescription
domainThe normalized domain that was queried
registrarAccredited registrar managing the domain
createdDateISO 8601 registration / creation date
updatedDateISO 8601 date the record was last changed
expiryDateISO 8601 expiration date
statusComma-joined EPP status codes (e.g. clientTransferProhibited)
nameserversComma-joined list of nameserver hostnames
registrantOrgRegistrant organization, when public (often redacted under GDPR)
rdapServerThe authoritative RDAP host that answered the query
errorSet to "no RDAP data" (or an HTTP error) when no data could be retrieved
checkedAtISO 8601 timestamp of when the lookup ran

Example output

{
"domain": "google.com",
"registrar": "MarkMonitor Inc.",
"createdDate": "1997-09-15T04:00:00Z",
"updatedDate": "2019-09-09T15:39:04Z",
"expiryDate": "2028-09-14T04:00:00Z",
"status": "clientDeleteProhibited, clientTransferProhibited, clientUpdateProhibited, serverDeleteProhibited, serverTransferProhibited, serverUpdateProhibited",
"nameservers": "ns1.google.com, ns2.google.com, ns3.google.com, ns4.google.com",
"registrantOrg": null,
"rdapServer": "rdap.markmonitor.com",
"error": null,
"checkedAt": "2026-06-15T12:00:00.000Z"
}

🚀 How to use it

  1. Click Try for free / Start.
  2. Paste your list of domains into Domains (bare domains, full URLs and www. prefixes all work).
  3. (Optional) Set Max concurrency — how many domains to query in parallel.
  4. (Optional) Enable Proxy to spread requests across IPs.
  5. Click Save & Start.
  6. Export the results as JSON, CSV, Excel or via API, and sort/filter by expiryDate or error.

⚙️ Input

OptionDescriptionDefault
domainsList of domain names to look up. Bare domains (google.com) are preferred, but full URLs and www. prefixes are cleaned automatically.– (required)
maxConcurrencyHow many domains to query in parallel (1–50)10
proxyConfigurationProxy settings; defaults to Apify Proxy (datacenter)Apify Proxy

Example input

{
"domains": ["google.com", "openai.com", "apify.com", "github.com"],
"maxConcurrency": 10,
"proxyConfiguration": { "useApifyProxy": true }
}

🔍 How it works

WHOIS data has historically been scattered across hundreds of registries, each with its own quirky free-text format. RDAP (Registration Data Access Protocol) is the IETF-standardized successor — clean, structured JSON over HTTPS — and it's what registries are moving to.

For each domain, the actor:

  1. Normalizes the input to a bare registrable domain (scheme, path, www. and ports are stripped; duplicates removed).
  2. Queries https://rdap.org/domain/<domain>. The rdap.org bootstrap service looks up which registry owns that TLD and redirects to the authoritative RDAP server for it; redirects are followed automatically.
  3. Parses the JSON response: events → dates, entities → registrar / registrant, nameservers → hostnames, status → EPP codes.
  4. Retries 429 / 5xx responses up to 4 times with backoff and a fresh proxy IP.
  5. Pushes one flat row per domain to the dataset.

Note that RDAP coverage depends on the TLD. All major gTLDs (.com, .net, .org, .io, .dev, .app, etc.) and most modern registries are fully supported. Some country-code TLDs (ccTLDs) do not yet run an RDAP server — those domains return a clean row with error: "no RDAP data" rather than failing the run, so your dataset always accounts for every input domain.

🧰 Tips & best practices

  • Sort by expiryDate in CSV/Excel to build a renewal calendar, or filter on a recent createdDate to surface freshly registered domains.
  • Concurrency vs throttling: higher maxConcurrency is faster, but some RDAP servers throttle heavy traffic. If you start seeing 429/5xx errors, lower maxConcurrency — the proxy rotation plus a gentler rate almost always clears it.
  • Expect GDPR redaction: registrar, dates, status and nameservers are nearly always present; registrantOrg is frequently null for .com/.net and European domains because personal data is redacted.
  • Filter error for a quick view of which domains had no RDAP service or failed, so you can fall back to another method for just those.
  • Schedule it on Apify to monitor an entire portfolio's expiry dates on a recurring basis.

❓ FAQ

How do I check domain expiration dates in bulk?

Paste your list of domains into the Domains field and run the actor. Every domain comes back with an expiryDate (plus creation and last-updated dates). Sort the CSV/Excel export by expiryDate to get an instant renewal calendar for your whole portfolio.

What is RDAP and how is it different from WHOIS?

RDAP (Registration Data Access Protocol) is the IETF-standardized successor to WHOIS. It returns structured JSON over HTTPS instead of free-form text, so the data is reliable and parseable. Classic WHOIS varies wildly between registries; RDAP is consistent. This actor queries RDAP and flattens it into simple columns.

Can I get the registrar for thousands of domains?

Yes. The actor is built for bulk: feed it thousands of domains and it queries them in parallel (throughput scales with maxConcurrency, up to 50). Each row includes the accredited registrar along with dates, status and nameservers.

Is this a free WHOIS API without a key?

Yes. Instead of paying for a WHOIS/RDAP SaaS API, you get a programmable bulk domain lookup with no API key and nothing to sign up for — it queries the public rdap.org bootstrap. You can call it via the Apify API, schedule it, and pipe the output into your own workflow.

Can I export WHOIS data to CSV or JSON?

Yes. Results land in the Apify Dataset and download as JSON, CSV, Excel or JSONL, or pull them via the REST API. One domain = one row, so it drops straight into a spreadsheet or data pipeline.

Why do some domains return no data?

RDAP coverage depends on the TLD. Some country-code TLDs don't run an RDAP server yet, so those domains come back with error: "no RDAP data". Separately, since GDPR most registries redact registrant personal data, so registrantOrg is often null even when everything else is present.

How many domains can I check at once?

Thousands per run. Throughput scales with maxConcurrency (default 10, up to 50), and Apify Proxy spreads requests across IPs to reduce throttling.

📝 Changelog

2026-06-15

  • Initial release — bulk WHOIS/RDAP lookup (registrar, dates, nameservers, status), CSV/JSON export, no API key.