Provide current and historical ownership information on domains / IPs. Identify all connections between domains, registrants, registrars, and DNS servers.
Look into all current and historical DNS / IP connections between domains and A, MX, NS, and other records. Monitor suspicious changes to DNS records.
Get detailed context on an IP address, including its user’s geolocation, time zone, connected domains, connection type, IP range, ASN, and other network ownership details.
Access our web-based solution to dig into and monitor all domain events of interest.
Get access to a web-based enterprise-grade solution to search and monitor domain registrations and ownership details for branded terms, fuzzy matches, registrants of interest, and more.
Independent, evidence-based DNS and abuse intelligence for applicants, advisors, governments, and counsel participating in the ICANN 2026 New gTLD Program.
Predictive threat intelligence is your best first line of defense. Subscribe to the feeds to strengthen your cybersecurity posture. Contact us today for more information.
Unlock integrated intelligence on Internet properties and their ownership, infrastructure, and other attributes.
Our complete set of domain, IP, and DNS intelligence available via API calls as an annual subscription with predictable pricing.
Offers complete access to WHOIS, IP, DNS, and subdomain data for product enrichment, threat hunting and more.
Uncover entire attack surfaces with this API to embed asset discovery, vulnerability scanning, and technology metadata into your platform. Now in early access.
Talk to our APIs using LLMs. Connect your preferred LLM to WhoisXML API and simply chat about WHOIS, DNS, threat intelligence, and more.
I’m your Domain Intelligence Assistant. I make it easy to explore WHOIS, DNS, and threat data from WhoisXML API — I’m cloud-based, fast, and always ready to help.
A custom GPT for WHOIS, DNS, IP, and threat intelligence research. Connects ChatGPT directly to WhoisXML API to enable fast, conversational investigations and domain insights.
One Universal API Credit Pool
Simplify API credit purchasing and usage with one balance that works across our product portfolio.
Released every month as JSON and CSV, zstd-compressed, in three variants: full (every field, including the raw WHOIS texts), regular (without the raw WHOIS texts) and simple (a compact set of parsed fields). The recommended way to get the data.
The same 100 records from the 2026-11 release in every variant and rendering, so the files can be compared line by line. Uncompressed, unlike the production files.
Samples contain 100 records. A monthly release holds about 470 million WHOIS records across ~1,370 TLDs.
The database is released monthly: a new release folder monthly/%YYYY-MM%/ appears at the beginning of each month. Every release is a full snapshot of the WHOIS records collected in the 365 days before the export date; see the FAQ.
Each release is published in three variants: full, regular and simple. They hold the same records and differ only in which fields a record has.
| File | Zstd size | Unpacked size | Rows |
|---|---|---|---|
| full-%SERIAL%.json.zst | 3.1GiB | 98.5GiB | 7.5M |
| full-%SERIAL%.csv.zst | 2.6GiB | 57.3GiB | 7.5M |
| File | Zstd size | Unpacked size | Rows |
|---|---|---|---|
| regular-%SERIAL%.json.zst | 0.7GiB | 16.7GiB | 7.5M |
| regular-%SERIAL%.csv.zst | 0.6GiB | 7.9GiB | 7.5M |
| File | Zstd size | Unpacked size | Rows |
|---|---|---|---|
| simple-%SERIAL%.json.zst | 0.6GiB | 9.2GiB | 7.5M |
| simple-%SERIAL%.csv.zst | 0.5GiB | 4.5GiB | 7.5M |
WHOIS_Database/monthly/
└── 2026-11/ # release month
├── json/ # whoisdb.2026-11-02.{full,regular,simple}-00000001…63.json.zst
└── csv/ # whoisdb.2026-11-02.{full,regular,simple}-00000001…63.csv.zst
The tables below describe the full variant; what regular and simple leave out is listed at the end of each section.
Each .json.zst part is zstd-compressed newline-delimited JSON: one WHOIS record per line, no wrapper array. Keys are camelCase and every key is present in every record; a value that is unknown is an empty string (0 for registrarIANAID). Strings are UTF-8. Raw texts keep the original line breaks as |.
{
"domainName": "knoapharma.us",
"createdDateParsed": "2021-09-02 20:01:41 UTC",
"updatedDateParsed": "2025-08-06 09:05:39 UTC",
"expiresDateParsed": "2027-09-02 20:01:41 UTC",
"createdDateRaw": "2021-09-02T20:01:41Z",
"updatedDateRaw": "2025-08-06T09:05:39Z",
"expiresDateRaw": "2027-09-02T20:01:41Z",
"audit": {
"createdDate": "2025-12-02 20:51:06 UTC",
"updatedDate": "2025-12-02 20:51:06 UTC"
},
"nameServers": [
"auth120.ns.uu.net",
"auth111.ns.uu.net"
],
"whoisServer": "whois.markmonitor.com",
"registrarName": "MarkMonitor, Inc.",
"registrarIANAID": 292,
"status": "clientUpdateProhibited clientTransferProhibited clientDeleteProhibited",
"registryDataRawText": "Domain Name: knoapharma.us|Registry Domain ID: …",
"whoisRecordRawText": "Domain Name: knoapharma.us|Registry Domain ID: …",
"cleanText": "Domain Name: knoapharma.us|Registry Domain ID: …",
"contactEmail": "[email protected]",
"registrantContact": {
"name": "Purdue Pharma LP",
"organization": "Purdue Pharma L.P",
"street": "One Stamford Forum",
"city": "Stamford",
"state": "CT",
"postalCode": "06901",
"country": "UNITED STATES",
"email": "[email protected]",
"telephone": "12035884375",
"telephoneExt": "",
"fax": "",
"faxExt": "",
"rawText": "Registrant Name: Purdue Pharma LP|Registrant Organization: Purdue Pharma L.P|Registrant Street: One Stamford Forum|…"
},
"administrativeContact": { … },
"technicalContact": { … },
"billingContact": { … },
"zoneContact": { … }
}
domainName |
Domain name, lower-case; IDNs in Punycode (xn--…). |
createdDateParsed |
The date the domain name was first registered, normalized to YYYY-MM-DD HH:MM:SS UTC. |
updatedDateParsed |
The date the WHOIS record was last updated, normalized to YYYY-MM-DD HH:MM:SS UTC. |
expiresDateParsed |
The date the domain name expires, normalized to YYYY-MM-DD HH:MM:SS UTC. |
createdDateRaw |
The "created" date as printed by the WHOIS server. |
updatedDateRaw |
The "updated" date as printed by the WHOIS server. |
expiresDateRaw |
The "expires" date as printed by the WHOIS server. |
audit |
Audit dates for the record. |
audit.createdDate |
When the record was collected (the collector's last visit to the domain). The snapshot contains every record whose audit.createdDate falls in the 365 days ending on the export reference date. |
audit.updatedDate |
When the record was last touched by our system. |
nameServers |
Array of name server host names. |
whoisServer |
The WHOIS server the record was collected from. |
registrarName |
Registrar name. |
registrarIANAID |
Registrar ID assigned by ICANN (integer); 0 when unknown. |
status |
Domain status codes, space-separated. See https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en |
registryDataRawText |
The raw WHOIS record from the registry, lines joined with "|". |
whoisRecordRawText |
The raw WHOIS record from the registrar, lines joined with "|". |
cleanText |
The raw WHOIS record with comment strings removed, lines joined with "|". |
contactEmail |
Contact email. Typically the same as the registrant email. |
registrantContact |
Contains the registrant information:
|
administrativeContact |
Contains the administrative contact information, with the same fields as registrantContact. |
technicalContact |
Contains the technical contact information, with the same fields as registrantContact. |
billingContact |
Contains the billing contact information, with the same fields as registrantContact. |
zoneContact |
Contains the zone contact information, with the same fields as registrantContact. |
The slim variants leave fields out entirely: the key is not written, it is not an empty string.
| Field | regular | simple |
|---|---|---|
| registryDataRawText, whoisRecordRawText, cleanText | absent | absent |
| registrarIANAID | present | absent |
| registrantContact, administrativeContact | present | present, without rawText |
| technicalContact, billingContact, zoneContact | present | absent |
| all other fields | present | present |
Each .csv.zst part starts with a header row. Fields are double-quoted. Embedded newlines in raw texts are replaced by |. The columns are the legacy formats, with header and order identical to the previous product generation. Column groups of the full variant (96 columns), in file order:
domainName, registrarName, contactEmail, whoisServer, nameServers,
createdDate, updatedDate, expiresDate, # raw
standardRegCreatedDate, standardRegUpdatedDate, standardRegExpiresDate, # normalized
status, RegistryData_rawText, WhoisRecord_rawText, Audit_auditUpdatedDate,
<contact>_rawText, _email, _name, _organization, _street1, _street2, _street3, _street4,
_city, _state, _postalCode, _country, _fax, _faxExt, _telephone, _telephoneExt
× 5 contacts: registrant, administrativeContact, billingContact, technicalContact, zoneContact,
registrarIANAID
domainName |
Domain name. |
registrarName |
Registrar name. |
contactEmail |
Contact email. Typically the same as the registrant email. |
whoisServer |
The WHOIS server the record was collected from. |
nameServers |
Name servers separated by "|", with a trailing "|". |
createdDate |
The "created" date as printed by the WHOIS server. |
updatedDate |
The "updated" date as printed by the WHOIS server. |
expiresDate |
The "expires" date as printed by the WHOIS server. |
standardRegCreatedDate |
The "created" date normalized to YYYY-MM-DD HH:MM:SS UTC. |
standardRegUpdatedDate |
The "updated" date normalized to YYYY-MM-DD HH:MM:SS UTC. |
standardRegExpiresDate |
The "expires" date normalized to YYYY-MM-DD HH:MM:SS UTC. |
status |
Domain status codes, space-separated. See https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en |
RegistryData_rawText |
The raw WHOIS record from the registry, lines joined with "|". |
WhoisRecord_rawText |
The raw WHOIS record from the registrar, lines joined with "|". |
Audit_auditUpdatedDate |
When the record was collected by our system, in YYYY-MM-DD HH:MM:SS UTC. Same value as audit.updatedDate in JSON. |
registrant_* |
Sixteen columns with the registrant information, in this order:
|
administrativeContact_* |
Sixteen columns with the administrative contact information: the same columns, in the same order, as registrant_*. |
billingContact_* |
Sixteen columns with the billing contact information: the same columns, in the same order, as registrant_*. |
technicalContact_* |
Sixteen columns with the technical contact information: the same columns, in the same order, as registrant_*. |
zoneContact_* |
Sixteen columns with the zone contact information: the same columns, in the same order, as registrant_*. |
registrarIANAID |
Registrar ID assigned by ICANN; empty when unknown. |
The slim variants drop columns; the remaining columns keep the order above. These are the same column sets as the legacy per-TLD tree's regular and simple formats.
# simple, 43 columns
domainName, registrarName, contactEmail, whoisServer, nameServers,
createdDate, updatedDate, expiresDate,
standardRegCreatedDate, standardRegUpdatedDate, standardRegExpiresDate,
status, Audit_auditUpdatedDate,
<contact>_email, _name, _organization, _street1, _street2, _street3, _street4,
_city, _state, _postalCode, _country, _fax, _faxExt, _telephone, _telephoneExt
× 2 contacts: registrant, administrativeContact
We are here to listen. For a quick response, please select your request type. By submitting a request, you agree to our Terms of Service and Privacy Policy.