RDAP Domain WHOIS Scraper
Pricing
from $6.80 / 1,000 results
RDAP Domain WHOIS Scraper
Look up domain registration data over RDAP (the modern WHOIS). For each domain get the registrar, registration and expiry dates, status codes, nameservers, DNSSEC and any published registrant details. Great for lead research and domain due diligence. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
RDAP Domain WHOIS Scraper
Here is one real result, with every field the actor returns:
{"domain": "google.com","handle": "2138514_DOMAIN_COM-VRSN","registrar": "MarkMonitor Inc.","registrarIanaId": "292","registrarUrl": "http://www.markmonitor.com","registrarAbuseEmail": "abusecomplaints@markmonitor.com","registrarAbusePhone": "+1.2086851750","status": ["client delete prohibited","client transfer prohibited","client update prohibited","server delete prohibited","server transfer prohibited","server update prohibited"],"nameservers": ["ns1.google.com", "ns2.google.com", "ns3.google.com", "ns4.google.com"],"registrationDate": "1997-09-15T04:00:00Z","expirationDate": "2028-09-14T04:00:00Z","lastChangedDate": "2019-09-09T15:39:04Z","daysUntilExpiry": 766,"registrantOrg": null,"registrantName": null,"registrantEmail": null,"registrantPhone": null,"registrantCountry": null,"registrantAddress": null,"adminEmail": null,"techEmail": null,"dnssec": false,"unicodeName": null,"whoisServer": null,"source": "RDAP","observedAt": "2026-08-10T14:19:13.197Z","error": null}
The most complete RDAP domain scraper available. It returns every registration field the RDAP (successor to WHOIS) protocol exposes for each domain, including registrar abuse contacts, status codes, nameservers and any registrant details the registry publishes, plus a derived daysUntilExpiry so you can sort by renewal urgency.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor looks up each domain you pass through the RDAP (Registration Data Access Protocol) system, the IETF standard that replaces legacy WHOIS. It resolves the correct registry RDAP endpoint per TLD, parses the structured response, and writes one normalized registration record per domain to the run's dataset. Dates are returned in ISO 8601, status codes and nameservers are arrays, registrar abuse contacts are captured for takedown workflows, and a derived daysUntilExpiry is computed on top of the expiration date.
Registrant contact fields are returned when the registry publishes them. For many gTLDs they are redacted for privacy and returned as null, never invented.
Quickstart
Open the actor, paste this into the input, and press Run. It looks up three domains.
{"maxDomains": 10,"domains": ["google.com", "github.com", "stripe.com"]}
Add as many domains as you like to domains. Each domain returns one registration record. Both fields are optional.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
domains | string[] | no | ["google.com", "github.com", "stripe.com"] | One or more domains to look up, for example google.com. Each domain returns one registration record. |
maxDomains | integer | no | 10 | Maximum number of domains to look up from the list. |
Output reference
One dataset item per domain. Types: string, integer, boolean, string[], or null when the source value is absent or redacted.
| Field | Type | Description |
|---|---|---|
domain | string | The domain name that was looked up. |
handle | string | Registry object handle (unique registry identifier for the domain). |
registrar | string | Sponsoring registrar name. |
registrarIanaId | string | IANA registrar ID number. |
registrarUrl | string | Registrar website URL. |
registrarAbuseEmail | string | Registrar abuse contact email, for takedown and abuse reports. |
registrarAbusePhone | string | Registrar abuse contact phone. |
status | string[] | EPP status codes, for example client transfer prohibited. |
nameservers | string[] | Authoritative nameserver hostnames. |
registrationDate | string | Domain creation date (ISO 8601), or null. |
expirationDate | string | Domain expiration date (ISO 8601), or null. |
lastChangedDate | string | Date the registration was last updated (ISO 8601), or null. |
daysUntilExpiry | integer | Whole days between the run time and expirationDate, or null. |
registrantOrg | string | Registrant organization, or null if redacted. |
registrantName | string | Registrant name, or null if redacted. |
registrantEmail | string | Registrant email, or null if redacted. |
registrantPhone | string | Registrant phone, or null if redacted. |
registrantCountry | string | Registrant country, or null if redacted. |
registrantAddress | string | Registrant address, or null if redacted. |
adminEmail | string | Administrative contact email, or null if redacted. |
techEmail | string | Technical contact email, or null if redacted. |
dnssec | boolean | Whether DNSSEC is enabled for the domain. |
unicodeName | string | Unicode (IDN) form of the domain, or null. |
whoisServer | string | Legacy WHOIS server referenced by the registry, or null. |
source | string | Data source label. Always RDAP. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed lookup, an item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"domains": ["google.com", "github.com", "stripe.com"], "maxDomains": 10}):
{"domain": "google.com","handle": "2138514_DOMAIN_COM-VRSN","registrar": "MarkMonitor Inc.","registrarIanaId": "292","registrarUrl": "http://www.markmonitor.com","registrarAbuseEmail": "abusecomplaints@markmonitor.com","registrarAbusePhone": "+1.2086851750","status": ["client delete prohibited","client transfer prohibited","server delete prohibited"],"nameservers": ["ns1.google.com", "ns2.google.com", "ns3.google.com", "ns4.google.com"],"registrationDate": "1997-09-15T04:00:00Z","expirationDate": "2028-09-14T04:00:00Z","lastChangedDate": "2019-09-09T15:39:04Z","daysUntilExpiry": 766,"registrantOrg": null,"registrantName": null,"registrantEmail": null,"dnssec": false,"unicodeName": null,"whoisServer": null,"source": "RDAP","observedAt": "2026-08-10T14:19:13.197Z","error": null}
Note: the
statusarray is trimmed to 3 of the 6 real codes for readability; the live record contains all of them. Registrant fields arenullbecause the .com registry redacts them for privacy.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rdap-domain-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"domains":["google.com","github.com","stripe.com"]}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rdap-domain-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"domains":["example.org","iana.org"],"maxDomains":100}'
Apify CLI:
apify call scrapers_lat/rdap-domain-scraper \--input '{"domains":["cloudflare.com"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=500&limit=500"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per domain record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a lookup fails, the actor writes an item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 domains per run. Upgrade for higher
maxDomains. - One record per domain. Each domain in
domainsproduces exactly one record.
FAQ and troubleshooting
Why are the registrant name, email and address null?
Most gTLD registries redact registrant contact details for privacy under RDAP. The actor returns whatever the registry publishes and leaves the rest null, never invented. Some ccTLDs and business domains do publish these fields.
What is RDAP and how is it different from WHOIS? RDAP is the IETF standard that replaces legacy WHOIS. It returns structured JSON with consistent status codes and dates, which is why the output is clean and machine-readable.
Which TLDs are supported? Any TLD that operates an RDAP service, which is nearly all gTLDs and a growing number of ccTLDs. The actor resolves the correct registry endpoint per TLD automatically.
A domain returned an error. Why?
The domain may be unregistered, the TLD may not run RDAP, or the registry may have been temporarily unavailable. The actor writes an item with a populated error field and does not charge for it.
Can I find soon-to-expire domains?
Yes. Sort or filter the output by daysUntilExpiry, which is derived from the expiration date at run time.
Is this an official registry tool? No. This actor is independent and reads only data published through the public RDAP protocol.
Related scrapers
- Website Contacts Scraper: Emails and phones from company websites.
- Email Finder & Enrichment Tool: Find and verify professional email addresses.
- URL Summarizer Tool: Fetch and summarize the content of any URL.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with any domain registry or registrar. Accesses only data published through the public RDAP protocol.
