Domain WHOIS and DNS Lookup: Registrar, Expiry, Mail Setup avatar

Domain WHOIS and DNS Lookup: Registrar, Expiry, Mail Setup

Pricing

from $0.50 / 1,000 domain registry rows

Go to Apify Store
Domain WHOIS and DNS Lookup: Registrar, Expiry, Mail Setup

Domain WHOIS and DNS Lookup: Registrar, Expiry, Mail Setup

Look up domains in bulk: registrar, creation and expiry dates, status, nameservers and DNSSEC from the registry (RDAP or WHOIS), plus A, MX, NS, TXT, SPF and DMARC records and the mail provider. Any TLD, changes only, JSON, CSV, API.

Pricing

from $0.50 / 1,000 domain registry rows

Rating

0.0

(0)

Developer

deriverge s.r.o.

deriverge s.r.o.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Domain WHOIS and DNS Lookup

What does Domain WHOIS and DNS Lookup do?

Domain WHOIS and DNS Lookup takes a list of domains, in any form, and returns one row per domain with everything a registry and the DNS publicly say about it:

  • Registry data through RDAP, the machine-readable successor of WHOIS that registries run for free, with WHOIS over port 43 as the fallback for the few registries that have no RDAP yet: registrar and its IANA ID, creation, update, expiry and transfer dates, domain age in days, days until expiry, registry statuses (transfer locks, holds), nameservers and DNSSEC.
  • DNS records through DNS over HTTPS: A, AAAA, CNAME, MX, NS, TXT, SOA and CAA.
  • Email setup derived from the records: the SPF record, the DMARC record and its policy, whether the domain has MX at all, and the mail provider recognised from the MX hosts (Google Workspace, Microsoft 365, Zoho, Proton and others).
  • Subdomains on request, from certificate transparency logs.

No browser, no proxies, no API key, and no registrant contacts: the actor reads what registries publish about the domain, not about the people behind it.

You pay only for domains returned, from $0.50 per 1,000, with no start fee. The $5 of monthly credit in Apify's Free plan covers about 5,000 domains, so you can try it for free.

Any input, one registrable domain

Paste bare names, URLs, email addresses or hostnames. Each is reduced to its registrable domain with the public suffix list, so https://blog.example.co.uk/post, press@example.co.uk and www.example.co.uk all become example.co.uk, checked once. Internationalised names are converted to their ASCII form.

Fields

RegistryWhat you get
registeredtrue, false, or null when no registry service answered.
registrar, registrarIanaId, registrarUrlThe sponsoring registrar.
createdAt, updatedAt, expiresAt, transferredAtReal timestamps.
domainAgeDays, daysUntilExpiryComputed at run time.
statuses, nameservers, dnssecAs the registry publishes them.
lookupSource, rdapServer, whoisServerWhere the data came from.
DNSWhat you get
a, aaaa, cname, ns, txt, caaArrays of records, cname a single value.
mx[{ priority, exchange }], sorted by priority.
soaPrimary nameserver, admin, serial and timers.
websiteResolves, hasMxWhether the name has an address and a mail exchanger.
spf, dmarc, dmarcPolicy, mailProviderThe email setup at a glance.

Nothing is guessed. A field the registry or the DNS did not publish is null, and notes says why when a lookup could not be made.

A domain monitor, not an export

Turn on changesOnly, give the run a watch name or save it as a task, and schedule it daily. Each run compares every domain with the previous snapshot and returns only the domains whose registrar, expiry date, statuses, nameservers, A, MX, NS, SPF or DMARC records changed, plus new domains. You pay for what moved and nothing else. The CHANGES record lists every difference with the old and the new value: a nameserver change, a transfer lock removed, an expiry date pushed out, a DMARC policy relaxed.

expiringWithinDays keeps only domains that expire within the number of days you give, which turns a portfolio list into a renewal reminder.

How much does it cost to look up WHOIS and DNS data?

You pay per result. There is no start fee and no charge for compute time or proxies.

Free planStarterScaleBusiness
1,000 domains, registry data$1.00$0.80$0.65$0.50
1,000 domains, DNS records$0.80$0.64$0.52$0.40
Subdomain lookup, per 1,000 domains (optional)$5.00$4.00$3.25$2.50

For example, registry data for 1,000 domains costs $1.00 on the Free plan and $0.50 on the Business plan. The $5 of monthly credit in Apify's Free plan covers about 5,000 domains.

How to look up WHOIS and DNS data

  1. Click Try for free (or Start if you are signed in) to open the actor in Apify Console.
  2. In Domains, add domains, URLs or email addresses; each is reduced to its registrable domain.
  3. Click Start. Rows appear in the Output tab within seconds.
  4. Download the results as JSON, CSV, Excel or HTML, or read them through the API.
  5. To repeat it, click Save as a task and add a schedule. A scheduled task keeps its own snapshot, so change and new-only modes work without any setup.

Input

{
"domains": ["apify.com", "https://blog.github.com", "bbc.co.uk", "press@seznam.cz"],
"includeWhois": true,
"includeDns": true,
"includeSubdomains": false,
"dnsTypes": ["A", "AAAA", "CNAME", "MX", "NS", "TXT", "SOA", "CAA"],
"emailChecks": true,
"changesOnly": false
}

Output

{
"type": "domain",
"key": "domain:apify.com",
"input": "apify.com",
"hostname": "apify.com",
"domain": "apify.com",
"tld": "com",
"publicSuffix": "com",
"registered": true,
"lookupSource": "rdap",
"rdapServer": "https://rdap.verisign.com/com/v1/",
"whoisServer": null,
"registrar": "Amazon Registrar, Inc.",
"registrarIanaId": "468",
"registrarUrl": null,
"createdAt": "2009-06-02T17:14:10.000Z",
"updatedAt": "2026-05-16T16:53:04.000Z",
"expiresAt": "2035-06-02T17:14:10.000Z",
"transferredAt": null,
"domainAgeDays": 6321,
"daysUntilExpiry": 3174,
"statuses": ["client transfer prohibited"],
"nameservers": ["ns-1225.awsdns-25.org", "ns-1928.awsdns-49.co.uk", "ns-449.awsdns-56.com", "ns-839.awsdns-40.net"],
"dnssec": true,
"a": ["13.227.192.67", "13.227.192.104"],
"aaaa": ["2600:9000:223c:4200:9:a03e:6540:93a1"],
"cname": null,
"mx": [{ "priority": 1, "exchange": "aspmx.l.google.com" }, { "priority": 5, "exchange": "alt1.aspmx.l.google.com" }],
"ns": ["ns-449.awsdns-56.com", "ns-839.awsdns-40.net"],
"txt": ["v=spf1 a mx include:_spf.google.com include:mailgun.org ~all", "google-site-verification=..."],
"soa": { "primaryNs": "ns-839.awsdns-40.net", "admin": "awsdns-hostmaster.amazon.com", "serial": 1, "refresh": 7200, "retry": 900, "expire": 1209600, "minimum": 86400 },
"caa": ["0 issue \"amazonaws.com\"", "0 issue \"digicert.com\"", "0 issue \"letsencrypt.org\""],
"websiteResolves": true,
"hasMx": true,
"mailProvider": "Google Workspace",
"spf": "v=spf1 a mx include:_spf.google.com include:mailgun.org ~all",
"dmarc": "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:dmarc-reports@apify.com",
"dmarcPolicy": "reject",
"subdomains": null,
"subdomainCount": null,
"checkedAt": "2026-09-23T11:40:12.000Z",
"notes": []
}

What it does not collect

No registrant, administrative or technical contacts, even where a registry still publishes them. The row describes the domain: who sponsors it, when it was created and expires, how it is delegated and how its mail is set up.

Integrations and API

Connect the actor to Make, Zapier, n8n, Google Sheets, Slack or any webhook, or call it from your own code. With the Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("deriverge/domain-whois-dns-lookup").call(run_input={"domains": ["apify.com", "https://blog.github.com", "bbc.co.uk"]})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["domain"], row.get("registrar"), row.get("expiresAt"))

The API tab on this page has the same call for Node.js and cURL, and AI agents can run the actor through the Apify MCP server.

Registries publish registration data through RDAP and WHOIS precisely so it can be looked up, and DNS is public by design. The actor does not collect registrant names or contact details.

FAQ

Which TLDs work?

Every generic TLD and most country codes through RDAP, using the IANA bootstrap registry plus a list of registries that run RDAP without being listed there yet (Germany, Switzerland, Norway, Argentina, Slovenia, the United States, .io). Registries without RDAP are read over WHOIS port 43 and return whatever they publish, which for some (for example .de and .jp) is statuses and nameservers without dates. The lookupSource field tells you which path answered.

Why is registrar sometimes a code?

Some registries publish the registrar's handle rather than its name, for example REG-GANDI at CZ.NIC. The value is passed through as published.

How fast is it?

Six domains at a time, each with one registry request and up to ten DNS queries in parallel. A thousand domains take a few minutes.

Is there a rate limit?

Registries serve RDAP for exactly this purpose and public resolvers are built for volume. The actor pauses and retries on any 429.

Support and feedback

Missing a field or found something that does not work? Open an issue in the Issues tab and it will be answered, usually within a day. If the actor saves you time, a short review helps other people find it.