Output

Output format

{
  "WhoisRecord": {
    "createdDate": "1997-09-15T07:00:00.000+00:00",
    "updatedDate": "2024-08-02T02:17:33.000+00:00",
    "expiresDate": "2028-09-14T07:00:00.000+00:00",
    "createdDateNormalized": "1997-09-15 07:00:00 UTC",
    "updatedDateNormalized": "2024-08-02 02:17:33 UTC",
    "expiresDateNormalized": "2028-09-14 07:00:00 UTC",
    "registrant": {
      "name": "REDACTED REGISTRANT",
      "organization": "Google LLC",
      "street1": "REDACTED FOR PRIVACY",
      "city": "REDACTED FOR PRIVACY",
      "state": "REDACTED FOR PRIVACY",
      "country": "UNITED STATES",
      "countryCode": "US",
      "telephone": "REDACTED FOR PRIVACY"
    },
    "domainName": "google.com",
    "nameServers": {
      "hostNames": [
        "ns1.google.com",
        "ns2.google.com",
        "ns3.google.com",
        "ns4.google.com"
      ]
    },
    "status": "clientUpdateProhibited clientTransferProhibited clientDeleteProhibited serverUpdateProhibited serverTransferProhibited serverDeleteProhibited",
    "rawText": "{\"ldhName\":\"google.com\",\"objectClassName\":\"domain\",\"handle\":\"2138514_DOMAIN_COM-VRSN\", [...]}",
    "parseCode": 123,
    "strippedText": "{\"ldhName\":\"google.com\",\"objectClassName\":\"domain\",\"handle\":\"2138514_DOMAIN_COM-VRSN\", [...]}",
    "audit": {
      "createdDate": "2026-07-13 12:00:03 UTC",
      "updatedDate": "2026-07-13 12:00:03 UTC"
    },
    "registrarName": "Markmonitor Inc.",
    "registrarIANAID": "292",
    "whoisServer": "https://rdap.markmonitor.com/rdap",
    "dataError": "MASKED_WHOIS_DATA",
    "registryData": {
      "createdDate": "1997-09-15T04:00:00Z",
      "updatedDate": "2019-09-09T15:39:04Z",
      "expiresDate": "2028-09-14T04:00:00Z",
      "createdDateNormalized": "1997-09-15 04:00:00 UTC",
      "updatedDateNormalized": "2019-09-09 15:39:04 UTC",
      "expiresDateNormalized": "2028-09-14 04:00:00 UTC",
      "domainName": "google.com",
      "nameServers": {
        "hostNames": [
          "ns1.google.com",
          "ns2.google.com",
          "ns3.google.com",
          "ns4.google.com"
        ]
      },
      "status": "clientDeleteProhibited clientTransferProhibited clientUpdateProhibited serverDeleteProhibited serverTransferProhibited serverUpdateProhibited",
      "rawText": "{\"objectClassName\":\"domain\",\"handle\":\"2138514_DOMAIN_COM-VRSN\",\"ldhName\":\"GOOGLE.COM\", [...]}",
      "parseCode": 127,
      "strippedText": "{\"objectClassName\":\"domain\",\"handle\":\"2138514_DOMAIN_COM-VRSN\",\"ldhName\":\"GOOGLE.COM\", [...]}",
      "audit": {
        "createdDate": "2026-07-13 12:00:02 UTC",
        "updatedDate": "2026-07-13 12:00:02 UTC"
      },
      "registrarName": "MarkMonitor Inc.",
      "registrarIANAID": "292",
      "whoisServer": "https://rdap.verisign.com/com/v1"
    },
    "contactEmail": "[email protected]",
    "domainAvailability": "UNAVAILABLE",
    "domainNameExt": ".com",
    "estimatedDomainAge": 10529
  }
}

Output parameters

Each domain name has potentially up to 2 WHOIS records, one from the registry and one from the registrar. WhoisRecord (the root element) represents the data from the registrar and registryData represents WHOIS data collected from the WHOIS registry. Note that registryData and WhoisRecord has almost identical data structures. Certain gTLDs (e.g. most of.com and .net) have both types of WHOIS data while most ccTLDs have only registryData. Hence it's recommended to look under both WhoisRecord and registryData when searching for a piece of information (e.g. registrant, createdDate).

WhoisRecord
The root element representing a WHOIS record.
createdDate
When the domain name was first registered/created.
updatedDate
When the WHOIS data was updated.
expiresDate
When the domain name will expire.
createdDateNormalized
When the domain name was first registered/created, in the normalized YYYY-MM-DD HH:MM:SS UTC format (e.g. 1997-09-15 04:00:00 UTC).
updatedDateNormalized
When the WHOIS data was updated, in the normalized YYYY-MM-DD HH:MM:SS UTC format (e.g. 2019-09-09 15:39:04 UTC).
expiresDateNormalized
When the domain name will expire, in the normalized YYYY-MM-DD HH:MM:SS UTC format (e.g. 2028-09-14 04:00:00 UTC).
registrant
The domain name registrant is the owner of the domain name. They are the ones who are responsible for keeping the entire WHOIS contact information up to date.
registrant.name
Registrant Name
registrant.organization
Registrant Organization
registrant.street[1/2/3/4]
Registrant Street
registrant.city
Registrant City
registrant.state
Registrant State
registrant.postalCode
Registrant Postal Code
registrant.country
Registrant Country
registrant.countryCode
Two-letter country code in ISO 3166 format.
registrant.email
Registrant Email
registrant.telephone
Registrant Telephone
registrant.telephoneExt
Registrant Telephone Extension
registrant.fax
Registrant Fax
registrant.faxExt
Registrant Fax Extension
registrant.rawText
Registrant contact information raw text
registrant.unparsable
The part of the registrant contact block that could not be parsed.
administrativeContact
The administrative contact is the person in charge of the administrative dealings pertaining to the company owning the domain name. Fields are the same as for the registrant field.
technicalContact
The technical contact is the person in charge of all technical questions regarding a particular domain name. Fields are the same as for the registrant field.
billingContact
The billing contact for the domain name. Fields are the same as for the registrant field.
zoneContact
The DNS zone contact for the domain name. Fields are the same as for the registrant field.
domainName
Target domain name.
domainNameExt
The domain name extension.
nameServers
A name server is a computer server that hosts a network service for providing responses to queries against a directory service.
nameServers.rawText
The raw text of the name server records.
nameServers.hostNames
Array of name server host names.
nameServers.ips
Array of name server IP addresses.
status
registrarName
The name of the registrar.
registrarIANAID
The registrar ID assigned by ICANN.
whoisServer
The WHOIS server that returned the record.
contactEmail
The best available contact email for this domain name.
estimatedDomainAge
Estimated domain age in days.
ips
Array of IP addresses associated with the domain name.
domainAvailability
Domain availability indicates if the domain name is available to be registered. It is always returned with a full verdict — one of AVAILABLE, UNAVAILABLE, or UNDETERMINED — computed from the WHOIS record. IP lookups return this field empty.
rawText
The complete raw text of the WHOIS record.
strippedText
The stripped text of the WHOIS record includes part of the raw excluding header and footer, this should only include identifiable fields.
header
The header of the WHOIS record is part of the raw text up until the first identifiable field.
footer
The footer of the WHOIS record is part of the raw after the last identifiable field.
parseCode

The field is used for internal diagnostics.

customField1Name
RegistrarContactEmail
customField1Value
The value for customField1Name.
customField2Name
RegistrarContactPhone
customField2Value
The value for customField2Name.
customField3Name
RegistrarURL
customField3Value
The value for customField3Name.
audit
Record collection metadata.
audit.createdDate
The date (UTC) when the WHOIS record was first collected.
audit.updatedDate
The date (UTC) when the WHOIS record was last updated.
dataError

The error code indicating an error in this WHOIS record. Possible values are:

  • MISSING_WHOIS_DATA - domain is not registered; no need to retry fetching the data.
  • RESERVED_DOMAIN_NAME - This is related to reserved domains like example.com or nic.${tld}. A complete description can be found here: www.iana.org/domains/reserved.
  • MASKED_WHOIS_DATA - domain is registered; we successfully retrieved the WHOIS record, yet some fields are masked. No need to retry.
  • NO_DATA - we have been throttled by the WHOIS server, so we don't know whether the domain exists or not. Need to retry fetching the data. No credit is charged when this error code is returned unless the API request was made with the input parameter _hardRefresh.
  • INCOMPLETE_DATA - the domain is registered, but we received only a thin WHOIS/RDAP record. Various fields are missing, and there is no assurance which ones are present.
  • PARTIAL_DATA - the WHOIS/RDAP data response for this domain is partial. We obtained a thin record from the Registry, but the Registrar’s RDAP/WHOIS service is not supplying full details at this time. This is a Registrar-side limitation that affects all queries for this domain at that Registrar, and it usually resolves once the Registrar updates its thick WHOIS/RDAP data (this may take anywhere from hours to weeks). However, unlike INCOMPLETE_DATA, the response includes a predictable baseline set of fields: registrarName, createdDate, updatedDate, expiresDate, nameServers, status, and whoisServer.
  • INVALID_TLD - This case is for incorrect entries like: example.example. We would ignore these domains.
  • UNSUPPORTED_TLD - This case is for unsupported TLDs, please refer to: https://knowledge.whoisxmlapi.com/are-there-any-tlds-that-you-dont-support.
registryData
WHOIS data collected from the WHOIS registry. It mirrors the WhoisRecord structure above.

Custom fields. The three customFieldN slots hold different data depending on the lookup. For a domain they carry the registrar contact details in fixed positions: customField1Name is RegistrarContactEmail, customField2Name is RegistrarContactPhone, and customField3Name is RegistrarURL. For an IP they carry network-registration fields such as NetHandle, NetRange, CIDR, NetName, OriginAS, and OwnerID, assigned in order rather than to fixed positions. Only three slots are available, so read customFieldNName to identify each field; any additional fields are omitted.

Domain availability only response (cmd=GET_DN_AVAILABILITY)

When the request sets cmd=GET_DN_AVAILABILITY, the full record is replaced by a compact DomainInfo object carrying only the availability verdict and the domain name.

{
    "DomainInfo": {
        "domainAvailability": "UNAVAILABLE",
        "domainName": "google.com"
    }
}

Output schema

The JSON response is described by a JSON Schema (draft-07):

Output XML schema

The XML output is described by an XSD: