API 2.0 docs API 1.0 docs

Our Hosted Whois Web Service provides registration details, also known as Whois Records, of domain names or IP addresses.

WhoisXmlApi.com provides RESTful APIs. It is designed for server-to-server communication between your system and the WhoisXmlApi.com network using HTTPs protocol. Query responses are delivered in either XML or JSON format based on your requests which are made via GET/POST methods.

To get started you need a developer's account with WhoisXmlApi.com. Authentication is required each time in order to use the API. The first 500 Whois API calls are complimentary when you register for a free developer account.

Making requests

GEThttps://www.whoisxmlapi.com/whoisserver/WhoisService?apiKey=YOUR_API_KEY&domainName=google.com

It takes up to 2 minutes to activate your account after Sign Up.

Input parameters: required

apiKey
Get your personal API KEY on My products page.
domainName
The domain for which whois data is requested.

Input parameters: optional

outputFormat
Response output format.

Acceptable values: XML | JSON

Default: XML
preferFresh
1 results in getting the latest Whois record even if it's incomplete.

Acceptable values: 0 | 1

Default: 0
da
1 results in a quick check on domain availability, 2 is slower but more accurate. Results are returned under WhoisRecord → domainAvailability (AVAILABLE | UNAVAILABLE | UNDETERMINED).

Acceptable values: 0 | 1 | 2

Default: 0
ip
1 results in returning ips for the domain name.

Acceptable values: 0 | 1

Default: 0
ipWhois
1 results in returning the whois record for the hosting ip if the whois record for the domain is not supported. For unsupported tlds domain NameServers are returned, if the ipWhois flag is activated, a whois record for the hosting ip is added to the result.

Acceptable values: 0 | 1

Default: 0
checkProxyData
1 results in fetching proxy/whois guard data, if it exists,
in the WhoisRecord → privateWhoisProxy schema element.

Acceptable values: 0 | 1

Default: 0
thinWhois
1 results in returning whois data from registry only, without fetching data from registrar. Returned registry data corresponds to the WhoisRecord → registryData schema element.

Acceptable values: 0 | 1

Default: 0
callback
A javascript function used when outputFormat is JSON;
this is an implementation known as JSONP which invokes the callback on the returned response.
_parse
1 provides parsing for input whois raw texts described below.

Acceptable values: 0 | 1

Default: 0
registryRawText
A string representing the registry whois raw text to be parsed;
works only when the _parse parameter is equal to 1.
registrarRawText
A string representing the registrar whois raw text to be parsed;
works only when the _parse parameter is equal to 1.

Free access

After Sign Up you automatically get a free subscription plan limited to 500 queries.

Account balance information

GEThttps://www.whoisxmlapi.com/accountServices.php?servicetype=accountbalance&apiKey=YOUR_API_KEY

You will receive a response with your account balance.

servicetype
Required. Type of service. In this case, "accountBalance".
apiKey
Required. Get your personal API KEY on My products page.
output_format
Optional. Response output format.

Acceptable values: XML | JSON

Default: XML

Sample output

JSON
XML
                            {
  "WhoisRecord": {
    "createdDate": "1997-09-15T00:00:00-0700",
    "updatedDate": "2015-06-12T10:38:52-0700",
    "expiresDate": "2020-09-13T21:00:00-0700",
    "registrant": {
      "name": "Dns Admin",
      "organization": "Google Inc.",
      "street1": "Please contact contact-admin@google.com, 1600 Amphitheatre Parkway",
      "city": "Mountain View",
      "state": "CA",
      "postalCode": "94043",
      "country": "UNITED STATES",
      "countryCode": "US",
      "email": "dns-admin@google.com",
      "telephone": "16502530000",
      "fax": "16506188571",
      "rawText": "Registrant Name: Dns Admin\nRegistrant Organization: Google Inc.\nRegistrant Street: Please contact contact-admin@google.com, 1600 Amphitheatre ParkwayvRegistrant City: Mountain View\nRegistrant State/Province: CA\nRegistrant Postal Code: 94043\nRegistrant Country: US\nRegistrant Phone: +1.6502530000\nRegistrant Fax: +1.6506188571\nRegistrant Email: dns-admin@google.com"
    },
    "administrativeContact": {
      "name": "DNS Admin",
      "organization": "Google Inc.",
      "street1": "1600 Amphitheatre Parkway",
      "city": "Mountain View",
      "state": "CA",
      "postalCode": "94043",
      "country": "UNITED STATES",
      "countryCode": "US",
      "email": "dns-admin@google.com",
      "telephone": "16506234000",
      "fax": "16506188571",
      "rawText": "Admin Name: DNS Admin\nAdmin Organization: Google Inc.\nAdmin Street: 1600 Amphitheatre Parkway\nAdmin City: Mountain View\nAdmin State/Province: CA\nAdmin Postal Code: 94043\nAdmin Country: US\nAdmin Phone: +1.6506234000\nAdmin Fax: +1.6506188571Admin Email: dns-admin@google.com"
    }
  }
}
                        
                            <WhoisRecord>
    <createdDate>1997-09-15T00:00:00-0700</createdDate>
    <updatedDate>2015-06-12T10:38:52-0700/updatedDate>
    <expiresDate>true</expiresDate>
    <registrant>
        <name>Dns Admin</name>
        <organization>Google Inc.</organization>
        <street1>Please contact contact-admin@google.com, 1600 Amphitheatre Parkway</street1>
        <city>Mountain View</city>
        <state>CA</state>
        <postalCode>94043</postalCode>
        <country>UNITED STATES</country>
        <countryCode>US</countryCode>
        <email>dns-admin@google.com</email>
        <telephone>16502530000</telephone>
        <fax>16506188571</fax>
        <rawText>Registrant Name: Dns Admin Registrant Organization: Google Inc. Registrant Street: Please contact contact-admin@google.com, 1600 Amphitheatre Parkway Registrant City: Mountain View Registrant State/Province: CA Registrant Postal Code: 94043 Registrant Country: US\nRegistrant Phone: +1.6502530000 Registrant Fax: +1.6506188571 Registrant Email: dns-admin@google.com</rawText>
    </registrant>
    <administrativeContact>
        <name>Dns Admin</name>
        <organization>Google Inc.</organization>
        <street1>1600 Amphitheatre Parkway</street1>
        <city>Mountain View</city>
        <state>CA</state>
        <postalCode>94043</postalCode>
        <country>UNITED STATES</country>
        <countryCode>US</countryCode>
        <email>dns-admin@google.com</email>
        <telephone>16502530000</telephone>
        <fax>16506188571</fax>
        <rawText>Admin Name: DNS Admin Admin Organization: Google Inc. Admin Street: 1600 Amphitheatre Parkway Admin City: Mountain View Admin State/Province: CA Admin Postal Code: 94043 Admin Country: US Admin Phone: +1.6506234000 Admin Fax: +1.6506188571 Admin Email: dns-admin@google.com</rawText>
    </administrativeContact>
</WhoisRecord>
                        

Usage limits and requests throttling

The maximum number of requests per second is 30. In case that the limit is breached, your subsequent requests will be rejected until the next second.

JSON
XML
                            {
  "ErrorMessage": {
    "msg": "You are limited to 30 queries per second. The request is rejected."
  }
}
                        
                            <ErrorMessage>
    <msg>You are limited to 30 queries per second. The request is rejected.</msg>
</ErrorMessage>
                        

TLDs supported

We support thousands of TLDs, both gTLDs and ccTLDS. You can see the entire list here.

Account balance low or zero notification

When your account balance falls below certain level you will receive an email alert. Another email will be sent when your account balance reaches 0.

You can always change your notifications settings on the Settings - Notifications page.

You can always check your account balance on the My products page.

Output schema

                            {
  "WhoisRecord": {
    "createdDate": "Date",
    "updatedDate": "Date",
    "expiresDate": "Date",
    "registrant": {
      "name": "String",
      "organization": "String",
      "street1": "String",
      "city": "String",
      "state": "String",
      "postalCode": "String",
      "country": "String",
      "countryCode": "String",
      "email": "String",
      "telephone": "String",
      "fax": "String",
      "rawText": "String"
    },
    "administrativeContact": {
      "name": "String",
      "organization": "String",
      "street1": "String",
      "city": "String",
      "state": "String",
      "postalCode": "String",
      "country": "String",
      "countryCode": "String",
      "email": "String",
      "telephone": "String",
      "fax": "String",
      "rawText": "String"
    },
    "domainName": "String",
    "nameServers": {
      "rawText": "String",
      "hostNames": "String",
      "ips": "String"
    },
    "status": "String",
    "rawText": "String",
    "parseCode": "String",
    "header": "String",
    "strippedText": "String",
    "audit": {
      "createdDate": {
        "@class": "String",
        "$": "Date"
      },
      "updatedDate": {
        "@class": "String",
        "$": "Date"
      }
    },
    "customField1Name": "String",
    "customField1Value": "String",
    "registrarName": "String",
    "registrarIANAID": "Number",
    "customField2Name": "String",
    "customField3Name": "String",
    "customField2Value": "String",
    "customField3Value": "String",
    "registryData": {
      "createdDate": "String",
      "updatedDate": "String",
      "expiresDate": "String",
      "domainName": "String",
      "nameServers": {
        "rawText": "String",
        "hostNames": "Array",
        "ips": "Array"
      },
      "status": "String",
      "rawText": "String",
      "parseCode": "String",
      "header": "String",
      "strippedText": "String",
      "footer": "String",
      "audit": {
        "createdDate": {
          "@class": "String",
          "$": "Date"
        },
        "updatedDate": {
          "@class": "String",
          "$": "Date"
        }
      },
      "registrarName": "String",
      "registrarIANAID": "Number",
      "createdDateNormalized": "Date",
      "updatedDateNormalized": "Date",
      "expiresDateNormalized": "Date",
      "whoisServer": "String",
      "referralURL": "Date"
    },
    "contactEmail": "Date",
    "domainNameExt": "Date",
    "estimatedDomainAge": "Number"
  }
}
                        

Output XML schema

Printable guide

You can also download the PDF version of this guide.

API status

You can check the API's current performance and availability status on the API Status Page.

Try WHOIS API for free

Have questions?
support@whoisxmlapi.com
We will get back to you within a day.
WHOIS API, Inc.

California
USA

Contact us