WHOIS Domain Lookup — Registrar, Age, Expiry & DNS (Bulk)
Pricing
from $10.40 / 1,000 domain looked ups
WHOIS Domain Lookup — Registrar, Age, Expiry & DNS (Bulk)
Look up WHOIS records for hundreds of domains in a single run: registrar, creation and expiry dates, domain age, days until expiry, nameservers, DNSSEC and status codes. Public registry data for every major TLD (.com, .org, .io, .co.uk and more) — no API keys, structured JSON/CSV output.
Pricing
from $10.40 / 1,000 domain looked ups
Rating
0.0
(0)
Developer
daehwan kim
Maintained by CommunityActor stats
0
Bookmarked
98
Total users
11
Monthly active users
6 days ago
Last modified
Categories
Share
WHOIS Domain Lookup — Registrar, Age, Expiry & Nameservers (Bulk)
Look up WHOIS registration data for any domain — registrar, creation and expiry dates, domain age, days until expiry, nameservers, and status codes — in bulk, with no API keys. Enter up to 10 domains, get back clean structured JSON.
Built for domain due diligence, expiry monitoring, brand protection, security research, and IT asset management. Run it on the Apify platform with API access, scheduling, integrations, and monitoring built in.
Free plan vs paid plan
| Free Apify plan | Paid Apify plan | |
|---|---|---|
| Domains looked up per run | The first 3 you enter | Up to 10 |
| Fields per domain | All of them (registrar, dates, age, expiry, name servers, status) | All of them |
| Domains you entered but were not looked up | Counted in the final free-plan-preview row with an estimated paid price | None |
| Price per event | List price | Discounted: Bronze −20%, Silver −35%, Gold and above −48% |
The free limit is a plan limit, not an error: the run finishes SUCCEEDED and the status message says how many domains were not looked up yet.
This Actor queries public WHOIS registry data only, via the open-source
whoiserlibrary (MIT). Registrant contact details are often redacted by registrars under GDPR/ICANN policy — this Actor returns only what the registry publicly exposes.
Why use WHOIS Domain Lookup?
- Bulk — up to 10 domains per run
- No API keys, no setup — public registry data
- Clean structured output — dates normalized to ISO, age and expiry pre-calculated
- Nameservers & status codes — full registry detail
- Pay per event — $0.02 per domain looked up, plus a small fee per run. When
domain-checkedis on the run's price list, a domain the registries report as having no record is charged the same $0.02 once instead. No subscription.
How to use WHOIS Domain Lookup
- Enter one or more domains (bare domains like
example.com). - (Optional) Adjust follow depth for richer referral data.
- Click Start and read the results in the Output tab.
Input
| Field | Type | Description |
|---|---|---|
domains | array | Up to 10 bare domains (protocol and www. stripped automatically) |
domain | string | Single-domain alternative |
follow | integer | WHOIS referral servers to follow, 1–3 (default 2) |
{"domains": ["example.com", "github.com"],"follow": 2}
Invalid input ends the run as SUCCEEDED with a notice row.
Output
One dataset item per domain.
{"domain": "github.com","status": "Looked up","registrar": "MarkMonitor Inc.","registrarUrl": "http://www.markmonitor.com","createdDate": "2007-10-09T18:20:50.000Z","updatedDate": "2024-09-07T09:16:33.000Z","expiryDate": "2026-10-09T18:20:50.000Z","domainAgeDays": 6820,"daysUntilExpiry": 485,"nameServers": ["dns1.p08.nsone.net", "dns2.p08.nsone.net"],"domainStatus": ["clientTransferProhibited"],"dnssec": "unsigned","registryDomainId": "1264983250_DOMAIN_COM-VRSN","lookedUpAt": "2026-06-11T10:32:00.000Z"}
status tells you how each domain ended:
status | Meaning | Charged as |
|---|---|---|
Looked up | A registry returned registration data for the domain | domain-looked-up |
No WHOIS data (domain may be unregistered or TLD unsupported) | The registries answered, and there is no record for this name | domain-checked, when that event is on the run's price list; otherwise not charged |
Registry refused or rate-limited the lookup: … | The registry answered the query with an explicit refusal or rate-limit reply (only in runs whose price list carries registry-response-checked) | registry-response-checked |
Lookup error: … | No WHOIS server gave a usable answer (timeout, refused connection, empty reply, unsupported TLD — and refusal / rate-limit replies in runs whose price list does not carry registry-response-checked) | Never charged |
Invalid domain (skipped) | The input is not a domain name | Never charged |
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Description |
|---|---|
domain | The domain looked up |
registrar | Sponsoring registrar |
createdDate / updatedDate / expiryDate | Registration dates (ISO 8601) |
domainAgeDays | Days since registration |
daysUntilExpiry | Days until the domain expires |
nameServers | Authoritative nameservers |
domainStatus | EPP status codes (e.g. clientTransferProhibited) |
dnssec | DNSSEC signing status |
Pricing
Run start fee — from 10 September 2026: $0.010 is charged once per run, when the run starts and performs the investigation. Existing per-result prices are unchanged.
This Actor uses pay-per-event pricing. Apify platform usage is included in these prices.
| Event | Charged when | Free plan | Bronze | Silver | Gold and above |
|---|---|---|---|---|---|
run-started | Once per run | $0.01 | $0.008 | $0.0065 | $0.0052 |
domain-looked-up | Once per domain successfully looked up (registration data returned) | $0.02 | $0.016 | $0.013 | $0.0104 |
domain-checked | Once per domain whose lookup completed with the registries answering that there is no record for the name. Not charged when the lookup failed on our side or the domain was rejected as invalid. Applies when this event is on the run's price list. | $0.02 | $0.016 | $0.013 | $0.0104 |
registry-response-checked | Once per domain whose registry answered the query with an explicit refusal or rate-limit reply (the reply text is in registryResponse). Never charged for a timeout, a refused connection or an empty reply. A domain is charged this, domain-looked-up or domain-checked — only one. Applies when this event is on the run's price list. | $0.02 | $0.016 | $0.013 | $0.0104 |
A domain is charged once at most: as domain-looked-up when registration data comes back, or as domain-checked when the registries answer that the name has no record — never both. "No record for this name" is the result you asked for, which is why it carries the same price as a successful lookup once domain-checked is on the price list; in a run whose price list does not carry that event, such a domain is not charged. Domains rejected as malformed, and lookups where no WHOIS server answered, are never charged.
Before the first lookup, the run's log and status message state the most the per-domain fees can come to (number of domains × the per-domain price for your plan) whenever domain-checked is on the price list.
Maximum charge per run: each domain row is charged as it is delivered. When the run reaches the maximum charge you set, it looks up no further domains, adds a charge-limit-reached notice row (never charged) saying how many were not looked up, and finishes SUCCEEDED. If the Apify charging API itself stops answering (three charge calls failing in a row, or ten in one run), the run likewise stops early with a billing-unavailable notice row (never charged) rather than return rows it cannot bill; run again for the rest.
Free plan: each run looks up the first 3 domains you enter (one row each). Paid Apify
plans look up all of them (up to 10). Every free-plan run ends with a free-plan-preview
notice row (never charged) that counts the domains not looked up yet and gives an
estimated paid price for the whole input — it is a plan limit, not an error.
Tips
- Feed a list of your portfolio domains and schedule a weekly run to catch upcoming
expirations via
daysUntilExpiry. - Use
domainAgeDaysto flag newly registered domains in fraud/abuse investigations.
FAQ, disclaimers, and support
Why is registrant contact info missing? Most registrars redact personal contact fields under GDPR and ICANN policy. This Actor returns only publicly published data.
Why did a lookup fail? Some TLDs use non-standard WHOIS servers or rate-limit queries. Try again or reduce the number of domains per run.
Found a bug or want a feature? Use the Issues tab. Custom solutions available.
Works well with
- dnstwist-osint — Check whether registered typo-domains are impersonating the domain you just looked up.
- subfinder-osint — Enumerate every public subdomain behind the same registration.
Every run of this Actor also returns these suggestions in the nextSteps field of its summary row.
Leave a review
A short review on the Reviews tab, good or bad, helps other people find this Actor and tells us what to build next. Found a bug or need a feature? Open an issue on the Issues tab and we'll look into it.