WHOIS / RDAP Domain Lookup avatar

WHOIS / RDAP Domain Lookup

Pricing

from $0.04 / 1,000 item extracteds

Go to Apify Store
WHOIS / RDAP Domain Lookup

WHOIS / RDAP Domain Lookup

Bulk RDAP/WHOIS domain intelligence: registrar, lifecycle dates, expiry countdowns, nameservers, DNSSEC, public contacts, and raw records.

Pricing

from $0.04 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Look up WHOIS and RDAP registration data in bulk, including registrar, expiry dates, domain status flags, nameservers, DNSSEC, contact summaries, abuse contacts, and optional raw RDAP JSON.

Use it for domain portfolio monitoring, SEO aged-domain research, brand protection, merchant risk checks, cybersecurity OSINT, and developer-friendly domain intelligence exports.

At a glance

  • Bulk domain lookup: Paste domains, hostnames, or URLs and get one normalized output row per unique input domain.
  • Registration details: Export registrar, IANA ID, creation date, update date, expiry date, calculated age/countdown, statuses, and nameservers.
  • Risk and compliance context: Review abuse contacts, DNSSEC delegation status, notices, and lookup errors.
  • Raw RDAP option: Include the full RDAP JSON payload when you need auditability or custom downstream parsing.
  • API-ready output: Download CSV/JSON/Excel exports or call the actor from Apify API, MCP, Make, Zapier, or agents.

Ready-to-run examples

Open an example, review the input, and run it as-is or adjust the domains:

What can it do?

WHOIS / RDAP Domain Lookup normalizes each input, calls public RDAP endpoints, and saves structured domain registration records to an Apify dataset.

  • Normalize inputs: Accept bare domains, hostnames, or URLs such as example.com, www.example.com/path, or https://example.com.
  • Fetch RDAP records: Query direct registry RDAP endpoints for common TLDs and fall back to rdap.org.
  • Save success and error rows: Keep invalid entries in mixed batches, unsupported TLDs, timeouts, and registry failures visible in the dataset. An invalid-only list fails before billing.
  • Control reliability: Tune concurrency, retry count, and request timeout for registry rate limits.
  • Export clean records: Use fields for registrar audits, expiry monitoring, nameserver inventories, risk checks, and dashboards.

Common workflows

  • Domain portfolio expiry monitoring: Track expiresAt, registrarName, statuses, and nameservers.
  • Brand protection: Check suspicious or lookalike domains for registrar, dates, and status flags.
  • SEO aged-domain research: Compare domain creation dates, status flags, nameservers, and raw RDAP records.
  • Merchant or vendor risk checks: Add domain age and registrar context to CRM, onboarding, or risk-review workflows.
  • Security OSINT: Export RDAP records for domains related to investigations, phishing reports, or infrastructure mapping.

Output fields

The actor returns one dataset row per unique input domain.

FieldDescription
inputDomainOriginal input string
normalizedDomainNormalized ASCII domain used for lookup
lookupUrlRDAP endpoint URL used for the lookup
successWhether the lookup returned a usable RDAP record
errorError message for invalid or failed lookups
registryDomainIdRegistry domain identifier when available
handleRDAP handle
ldhNameLDH domain name
unicodeNameUnicode domain name when available
registrarNameRegistrar name
registrarIanaIdRegistrar IANA ID
registrarUrlRegistrar URL from RDAP entities
registrarAbuseEmailRegistrar abuse email when published
registrarAbusePhoneRegistrar abuse phone when published
statusesRDAP domain status flags
createdAtRegistration date when published
updatedAtLast update date when published
expiresAtExpiry date when published
domainAgeDaysWhole days since the published registration date
daysUntilExpiryDays remaining until the published expiry date; negative means expired
rdapConformanceRDAP profile/extension identifiers returned by the authority
nameserversNameserver list
secureDnsDelegationSignedDNSSEC delegation status when available
contactsSummary of RDAP entities and contact roles
noticesRegistry notices and remarks
rawRdapFull RDAP JSON payload when includeRawRdap is enabled

Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

EventWhat is chargedPrice
startOne-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup).$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
itemCharged only for a successful RDAP record after it is saved. Invalid or failed lookup rows are uncharged.$0.08065 / 1,000$0.07013 / 1,000$0.05470 / 1,000$0.04208 / 1,000$0.02805 / 1,000$0.01964 / 1,000

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

Input configuration

SettingJSON keyUse it forExample
DomainsdomainsRequired list of domains, hostnames, or URLs to normalize and look up.["example.com","https://apify.com"]
Include raw RDAP responseincludeRawRdapSave the complete RDAP JSON payload in rawRdap.true
Maximum concurrencymaxConcurrencyNumber of domains to look up in parallel.3
Retry countretryCountRetries for temporary RDAP failures such as 429 or 5xx responses.2
Request timeout secondstimeoutSecsPer-domain RDAP request timeout.20

Example input

{
"domains": [
"example.com",
"iana.org",
"https://apify.com"
],
"includeRawRdap": true,
"maxConcurrency": 3,
"retryCount": 2,
"timeoutSecs": 20
}

Example output

{
"inputDomain": "example.com",
"normalizedDomain": "example.com",
"lookupUrl": "https://rdap.verisign.com/com/v1/domain/example.com",
"success": true,
"error": null,
"registrarName": "RESERVED-Internet Assigned Numbers Authority",
"registrarIanaId": "376",
"registrarAbuseEmail": null,
"statuses": ["client delete prohibited", "client transfer prohibited"],
"createdAt": "1995-08-14T04:00:00Z",
"updatedAt": "2024-08-14T07:01:39Z",
"expiresAt": "2026-08-13T04:00:00Z",
"domainAgeDays": 11300,
"daysUntilExpiry": 390,
"rdapConformance": ["rdap_level_0"],
"nameservers": ["A.IANA-SERVERS.NET", "B.IANA-SERVERS.NET"],
"secureDnsDelegationSigned": true,
"contacts": [],
"notices": [],
"rawRdap": {}
}

Search and data tips

  • Use bare domains when possible: URLs are accepted, but bare domains make input lists easier to review.
  • Keep concurrency modest: Registries can rate-limit RDAP traffic; increase maxConcurrency gradually.
  • Turn off raw RDAP for small exports: Set includeRawRdap to false when you only need flat fields.
  • Check error rows: Invalid domains, unsupported TLDs, and temporary registry failures are visible in success and error.
  • Schedule expiry checks: Run the same list weekly or monthly to monitor renewal windows.

Limits and practical notes

  • RDAP coverage varies by TLD and registry.
  • Some registries redact contact details or do not publish dates in the same format.
  • contacts summarizes public RDAP entities; it is not a guaranteed lead/contact list.
  • WHOIS privacy and registry policy can leave registrar abuse or registrant fields empty.
  • This actor does not bypass access controls or query private registrar accounts.

API usage

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~whois-rdap-domain-lookup/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"domains":["example.com","iana.org"],"includeRawRdap":false}'

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/whois-rdap-domain-lookup').call({
domains: ['example.com', 'iana.org'],
includeRawRdap: false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/whois-rdap-domain-lookup").call(run_input={
"domains": ["example.com", "iana.org"],
"includeRawRdap": False,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

MCP and AI agents

Use this actor from MCP-compatible tools through Apify MCP Server.

MCP URL:

https://mcp.apify.com/?tools=fetch_cat/whois-rdap-domain-lookup

Example prompts:

  • "Look up these domains and flag any that expire within 90 days."
  • "Export registrar and nameserver data for this domain portfolio."
  • "Check these suspicious domains and summarize creation dates and status flags."

Legality and responsible use

This actor queries public RDAP domain registration records.

Use the data responsibly, follow registry and Apify terms, and comply with privacy, anti-spam, security, and data-protection laws in your jurisdiction.

Explore related actors from the same Apify account:

Changelog

0.1

  • Initial version with configurable inputs and structured results.

Support

Start with a few known domains, keep maxConcurrency low, and inspect success, error, lookupUrl, and rawRdap before scaling to larger domain lists.

Privacy and data handling

This Actor only requests the permissions needed to run the input you provide. It uses your input (such as URLs, search terms, identifiers, filters, and limits) only to fetch the requested public data from the relevant source site or API for this Actor, then writes results to your Apify dataset/key-value store.

Data may pass through Apify platform services and Apify Proxy during the run, and requests are sent only to the target site or public data provider required for this Actor's results. FetchCat does not send your inputs or outputs to advertising networks, data brokers, or model-training services, and does not retain run data outside Apify storage after the run except when you explicitly share run details for transient support debugging.

You are responsible for using this Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs. Review the output before storing, sharing, or combining it with other data.