APIs Documentation

How To Use

Click on the API for a more detailed view, with instructions on how to use the function and the output.

Whois API use case

Are you looking for the owner of a certain domain name? Is someone infringing on your trademark? Are you hunting down recently registered “fake” domains? Are you looking for common patterns between phishing websites? Are you looking for 100% accurate domain availability checks?

Are you doing analytical research around domain names?

 

We could go on and on with different use cases, but hopefully, we found one that you can relate to. If we haven’t, we would love to hear from you!

But in the meantime, try our robust whois API, which we are improving every month!

 

Whois API

 

List of supported TLDs – Click here

For detailed code examples on how to use whois API, see our code examples page.

 

Let’s make an example request:
http://api.whoapi.com/?domain=whoapi.com&r=whois&apikey=demokey
Output in JSON format:
{
  "status": "0",
  "whois_server": "whois.PublicDomainRegistry.com",
  "status_desc": "Successfully processed",
  "limit_hit": false,
  "registered": true,
  "whois_raw": "Disabled due to GDPR",
  "disclaimer": "",
  "premium": false,
  "generic_whois": true,
  "registry_domain_id": "1640154939_DOMAIN_COM-VRSN",
  "registrar_iana_id": "303",
  "date_created": "2011-02-14 15:31:26",
  "date_expires": "2021-02-14 15:31:26",
  "date_updated": "2016-04-26 17:42:17",
  "domain_status": [ "clientTransferProhibited https:\/\/icann.org\/epp#clientTransferProhibited",
  "clientTransferProhibited https:\/\/icann.org\/epp#clientTransferProhibited" ],
  "nameservers": [ "NS1.FIRST-NS.DE",
  "ROBOTNS2.SECOND-NS.DE",
  "ROBOTNS3.SECOND-NS.COM" ],
  "emails": "Disabled due to GDPR",
  "whois_raw_parent": "Disabled due to GDPR",
  "whois_name": "PublicDomainRegistry",
  "contacts": [ {
    "type": "registrar",
    "name": "",
    "organization": "PDR Ltd. d\/b\/a PublicDomainRegistry.com",
    "phone": "+1.2013775952",
    "email": "abuse-contact@publicdomainregistry.com",
    "full_address": ""
  },
   {
    "type": "registrant",
    "name": "Disabled due to GDPR",
    "organization": "WhoAPI Inc.",
    "street": "Disabled due to GDPR",
    "city": "Disabled due to GDPR",
    "zipcode": "Disabled due to GDPR",
    "state": "California",
    "country": "US",
    "phone": "Disabled due to GDPR",
    "fax": "Disabled due to GDPR",
    "email": "Disabled due to GDPR",
    "full_address": "Disabled due to GDPR"
  },
   {
    "type": "admin",
    "name": "Disabled due to GDPR",
    "organization": "WhoAPI Inc.",
    "street": "Disabled due to GDPR",
    "city": "Disabled due to GDPR",
    "zipcode": "Disabled due to GDPR",
    "state": "California",
    "country": "US",
    "phone": "Disabled due to GDPR",
    "fax": "Disabled due to GDPR",
    "email": "Disabled due to GDPR",
    "full_address": "Disabled due to GDPR"
  },
   {
    "type": "tech",
    "name": "Disabled due to GDPR",
    "organization": "WhoAPI Inc.",
    "street": "Disabled due to GDPR",
    "city": "Disabled due to GDPR",
    "zipcode": "Disabled due to GDPR",
    "state": "California",
    "country": "US",
    "phone": "Disabled due to GDPR",
    "fax": "Disabled due to GDPR",
    "email": "Disabled due to GDPR",
    "full_address": "Disabled due to GDPR"
  } ],
   "domain_name": "whoapi.com",
   "_cached": false,
   "requests_available": 10000
}

 

http://api.whoapi.com/?domain=whoapi.com&r=whois&apikey=demokey&asxml
Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <whois_server>whois.PublicDomainRegistry.com</whois_server>
  <status_desc>Successfully processed</status_desc>
  <limit_hit/>
  <registered>1</registered>
  <whois_raw>Disabled due to GDPR</whois_raw>
  <disclaimer/>
  <premium/>
  <generic_whois>1</generic_whois>
  <registry_domain_id>1640154939_DOMAIN_COM-VRSN</registry_domain_id>
  <registrar_iana_id>303</registrar_iana_id>
  <date_created>2011-02-14 15:31:26</date_created>
  <date_expires>2021-02-14 15:31:26</date_expires>
  <date_updated>2016-04-26 17:42:17</date_updated>
  <domain_status>
    <item0>clientTransferProhibited https://icann.org/epp#clientTransferProhibited</item0>
    <item1>clientTransferProhibited https://icann.org/epp#clientTransferProhibited</item1>
  </domain_status>
  <nameservers>
    <item0>NS1.FIRST-NS.DE</item0>
    <item1>ROBOTNS2.SECOND-NS.DE</item1>
    <item2>ROBOTNS3.SECOND-NS.COM</item2>
  </nameservers>
  <emails>Disabled due to GDPR</emails>
  <whois_raw_parent>Disabled due to GDPR</whois_raw_parent>
  <whois_name>PublicDomainRegistry</whois_name>
  <contacts>
    <item0>
      <type>registrar</type>
      <name/>
      <organization>PDR Ltd. d/b/a PublicDomainRegistry.com</organization>
      <phone>+1.2013775952</phone>
      <email>abuse-contact@publicdomainregistry.com</email>
      <full_address/>
    </item0>
    <item1>
      <type>registrant</type>
      <name>Disabled due to GDPR</name>
      <organization>WhoAPI Inc.</organization>
      <street>Disabled due to GDPR</street>
      <city>Disabled due to GDPR</city>
      <zipcode>Disabled due to GDPR</zipcode>
      <state>California</state>
      <country>US</country>
      <phone>Disabled due to GDPR</phone>
      <fax>Disabled due to GDPR</fax>
      <email>Disabled due to GDPR</email>
      <full_address>Disabled due to GDPR</full_address>
    </item1>
    <item2>
      <type>admin</type>
      <name>Disabled due to GDPR</name>
      <organization>WhoAPI Inc.</organization>
      <street>Disabled due to GDPR</street>
      <city>Disabled due to GDPR</city>
      <zipcode>Disabled due to GDPR</zipcode>
      <state>California</state>
      <country>US</country>
      <phone>Disabled due to GDPR</phone>
      <fax>Disabled due to GDPR</fax>
      <email>Disabled due to GDPR</email>
      <full_address>Disabled due to GDPR</full_address>
    </item2>
    <item3>
      <type>tech</type>
      <name>Disabled due to GDPR</name>
      <organization>WhoAPI Inc.</organization>
      <street>Disabled due to GDPR</street>
      <city>Disabled due to GDPR</city>
      <zipcode>Disabled due to GDPR</zipcode>
      <state>California</state>
      <country>US</country>
      <phone>Disabled due to GDPR</phone>
      <fax>Disabled due to GDPR</fax>
      <email>Disabled due to GDPR</email>
      <full_address>Disabled due to GDPR</full_address>
    </item3>
  </contacts>
  <domain_name>whoapi.com</domain_name>
  <_cached/>
  <requests_available>10000</requests_available>
</response>
Domain availability API use case

We believe that there are still great domain names that are available for registration, you just have to look hard enough!

 

Massive amounts of domain availability lookups can be used for various researches, for finding domains for SEO purposes, for building a new domain checker, and for various other purposes. Some of our clients are finding great available domains for their clients, and some of our clients are looking for available domains that recently expired, but have some traffic on them.

 

Whatever the reason, our domain availability API can help you find those great available domains you are looking for!

Domain availability API

Let’s make an example request:
http://api.whoapi.com/?domain=whoapi.com&r=taken&apikey=demokey
Output in JSON format:
{
  "status": "0",
  "status_desc": "Successfully processed",
  "taken": "1",
  "requests_available": 100
}

 

http://api.whoapi.com/?domain=whoapi.com&r=taken&apikey=demokey&asxml
Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <taken>1</taken>
  <requests_available>100</requests_available>
  <status_desc>Successfully processed</status_desc>
</response>
Domain Score API use case

In case you are dealing with a lot of signups on your website, and you want to give special treatment to VIP users our Domain Score API can detect high-profile domains.

Domain Score API

Scoring is not a real-time process as we are doing multiple checks before returning the result to you. For this reason, there are 2 steps:

 

1. Send domain for scoring (Set task API);
2. Check the scoring state (Get result API).

 

These two APIs are described in detail below.

Keep in mind that making a request to “Get result API” and skipping the first step will result in an empty reply.

We provide a webhook solution if you would like to get notified when the result is ready.

More details are below.

 

Set Task API

Get Result API 
Webhook Support

If you like to receive the processing result to your URL as soon as it’s ready add “webhook_url” parameter to the API request like this:

 

https://api.whoapi.com/?domain=whoapi.com&r=domainscore&apikey=yourkey&webhook_url=https://yourwebsite.com/yourscript

 

Our system will make POST request to the specified URL passing JSON in the request body, like this:

 

[{“id”:9673,”domain”:”whoapi.com”,”overall_score”:68,”temp_email_service”:false,”score_description”:”Good”}]

 

The body will contain Array of all domains as Objects. Object fields match API reply fields.

Webhook system supports requests resending in case your URL is not accessible (any HTTP error). In this case we will make 5 retries with the following delays: 5, 15, 30, 60, 60 minutes.

Let’s make an example request
http://api.whoapi.com/?domain=whoapi.com&r=domainscore&apikey=demokey
Output in JSON format:
{
  "status": 0,
  "results": [ {
    "id": 123,
    "domain": "whoapi.com"
 } ],
  "requests_available": 100,
  "status_desc": "Successfully processed"
}

 

http://api.whoapi.com/?domain=whoapi.com&r=domainscore&apikey=demokey&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <results>
        <item0>
          <id>123</id>
          <domain>whoapi.com</domain>
        </item0>
  </results>
  <requests_available>100</requests_available>
  <status_desc>Successfully processed</status_desc>
</response>

Parameters meaning

 

results – array of accepted entries;

id – ID of the accepted entry (used in webhook requests); domain – domain name.

 

http://api.whoapi.com/?domain=whoapi.com&r=domainscore-check&apikey=demokey

Output in JSON format:

nullhttp://api.whoapi.com/?domain=whoapi.com&r=domainscore-check&apikey=demokey&asxml

Output in XML format:

Parameters meaning

results – array of processed entries;
id – ID of the processed entry (same as in the initial request);
domain – domain name;
overall_score – score for the domain (higher is better);
temp_email_service – true in case this domain provides temp email services;
score_description – textual score description.

Blacklist API use case

Every day, billions of emails are sent. Not thousands. Not millions. Billions! It’s hard for any software or system to automatically or programmatically detect if a message is spam or a genuine important email message from one person to another. So there are a lot of false positives, and there are companies that get blacklisted just because of a bad neighborhood.

 

You know what we are talking about, email blacklists are a real issue, and our Blacklist API helps you detect that issue whether it’s an IP address or a domain name. So if you are a hosting company with hundreds of IP addresses, or a email marketing company with thousands of them, our email blacklist API can tell you when an IP or a domain name gets blacklisted by one of the major RBL blacklists.

 

Blacklist API

Let’s make an example request:
http://api.whoapi.com/?domain=whoapi.com&r=blacklist&apikey=demokey
Output in JSON format:
{
  "status": "0",
  "ip": "104.130.21.170",
  "blacklisted": "0",
  "blacklists": [ {
    "tracker": "surbl.org",
    "blacklisted": "0"
 },
  {
    "tracker": "barracudacentral.org",
    "blacklisted": "0"
 },
  {
    "tracker": "sorbs.net",
    "blacklisted": "0"
 },
  {
    "tracker": "spamhaus.org",
    "blacklisted": "0"
 } ],
  "requests_available": 100,
  "status_desc": "Successfully processed"
}

 

http://api.whoapi.com/?domain=whoapi.com&r=blacklist&apikey=demokey&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <ip>52.32.117.162</ip>
  <blacklisted>0</blacklisted>
  <blacklists>
    <item0>
      <tracker>surbl.org</tracker>
      <blacklisted>0</blacklisted>
    </item0>
    <item1>
      <tracker>barracudacentral.org</tracker>
      <blacklisted>0</blacklisted>
    </item1>
    <item2>
      <tracker>sorbs.net</tracker>
      <blacklisted>0</blacklisted>
    </item2>
    <item3>
      <tracker>spamhaus.org</tracker>
      <blacklisted>0</blacklisted>
    </item3>
  </blacklists>
  <requests_available>100</requests_available>
  <status_desc>Successfully processed</status_desc>
</response>
Screenshot API use case

Have you ever been in a situation where you needed more than one pair of eyes? Looking into millions of website can be time consuming, to say the least, so why not do it programmatically? Especially if you need a website screenshot or a thumbnail!

You can tell so much just by glancing at a small thumbnail! You can see if there’s a complete website, or just ads provided by domain registrar. You can see if the colors are bright or dark. You can see if there’s a menu, or just a logo.

 

Screenshot API
Additional information:

All images are stored on our servers for no more than 31 days. Please download images to your server in order to keep it. You can include the resulting image urls into your website, however be adviced that in case of a huge traffic load we reserve the right to block excesive requests. Keep in mind that depending on the request and page complexity it can take a long time to process a screenshot, use high enough timeouts to get a result.

 

By default our API waits for all page resources (images, JavaScripts, styles) to load completely. The overall timeout for the load is 30 seconds. If the resources could not be loaded within the set timeframe the API will return an error. If you need to change this behavior you can use the “asap=true” option described above.

Let’s make an example request:
http://api.whoapi.com/?domain=whoapi.com&r=screenshot&apikey=demokey&process=thumb
Output in JSON format:
{
  "status": "0",
  "status_desc": "Successfully processed",
  "full_size": "http:\/\/node1.whoapi.com\/tmp\/e0dddcfa02522f28ea79c5126a24882d.jpg",
  "thumbnail": "http:\/\/node1.whoapi.com\/tmp\/e0dddcfa02522f28ea79c5126a24882d_th.jpg",
  "expires": "2018-01-17 19:37 GMT",
  "size": "1366x768",
  "full_size_https": "https:\/\/node1.whoapi.com\/tmp\/e0dddcfa02522f28ea79c5126a24882d.jpg",
  "thumbnail_https": "https:\/\/node1.whoapi.com\/tmp\/e0dddcfa02522f28ea79c5126a24882d_th.jpg",
  "requests_available": 100
}

 

http://api.whoapi.com/?domain=whoapi.com&r=screenshot&apikey=demokey&process=thumb&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <full_size>http://node1.whoapi.com/tmp/e0dddcfa02522f28ea79c5126a24882d.jpg</full_size>
  <thumbnail>http://node1.whoapi.com/tmp/e0dddcfa02522f28ea79c5126a24882d_th.jpg</thumbnail>
  <expires>2018-01-17 19:37 GMT</expires>
  <size>1366x768</size>
  <full_size_https>https://node1.whoapi.com/tmp/e0dddcfa02522f28ea79c5126a24882d.jpg</full_size_https>
  <thumbnail_https>https://node1.whoapi.com/tmp/e0dddcfa02522f28ea79c5126a24882d_th.jpg</thumbnail_https>
  <requests_available>100</requests_available>
  <status_desc>Successfully processed</status_desc>
</response>

Parameters explained:

 

status – processing result, “0” means success; in case of unsuccessful processing an additional parameter “status_desc” will be added with explanation of the error;

full_size – the full size image; for process=thumb it’s size will be equal the specified resolution, if a full page processing is requested the height of the image can be higher than the set resolution;

thumbnail – the small image of the website with size set in the thumbwidth and thumbheight parameters (133×100 pixels by default);

full_size_https – the https url to the full size image; for process=thumb it’s size will be equal the specified resolution, if a full page processing is requested the height of the image can be higher than the set resolution;

thumbnail_https – the https url to the small image of the website with size set in the thumbwidth and thumbheight parameters (133×100 pixels by default);

expires – the date and time in GMT when the images will no longer be available (will be removed from our servers);

size – the full screenshot size in pixels, for example: 1920×1080 for a process=thumb and resolution=1920×1080;

requests_available – the requests left that you have in your package.

Reverse whois API use case

Are you looking for domains using keywords? Maybe you are researching your brand? Or maybe you are gathering statistics?

Use our reverse whois API to get the domains you are looking for.

 

Reverse whois API
Let’s make an example request:
http://api.whoapi.com/?domain=godaddy.com&r=reversewhois&apikey=demokey
Output in JSON format:
{
  "status": 0,
  "status_desc": "Successfully processed",
  "records_number": 14,
  "results": [ {
  "domain": "godaddy.com.au",
  "date_created": "0000-00-00",
  "whois_server": "whois.audns.net.au",
  "nameservers": [ "CNS1.SECURESERVER.NET",
  "CNS2.SECURESERVER.NET" ]
 },
 {
  "domain": "aws-gx-godaddy.com",
  "date_created": "2017-06-08",
  "whois_server": "whois.registrar.amazon.com",
  "nameservers": [ "NS-1442.AWSDNS-52.ORG",
  "NS-1579.AWSDNS-05.CO.UK",
  "NS-637.AWSDNS-15.NET",
  "NS-87.AWSDNS-10.COM" ]
 },
 {
  "domain": "core-services-godaddy.com",
  "date_created": "2018-09-28",
  "whois_server": "whois.registrar.amazon.com",
  "nameservers": [ "NS-1196.AWSDNS-21.ORG",
  "NS-1796.AWSDNS-32.CO.UK",
  "NS-182.AWSDNS-22.COM",
  "NS-971.AWSDNS-57.NET" ]
 },
 {
  "domain": "wgodaddy.com",
  "date_created": "2004-11-29",
  "whois_server": "whois.wildwestdomains.com",
  "nameservers": [ "NS13.DOMAINCONTROL.COM",
  "NS14.DOMAINCONTROL.COM" ]
 },
 {
  "domain": "gogodaddy.com",
  "date_created": "2004-09-26",
  "whois_server": "whois.above.com",
  "nameservers": [ "NS1.BODIS.COM",
  "NS2.BODIS.COM" ]
 },
 {
  "domain": "cheapgodaddy.com",
  "date_created": "2009-08-03",
  "whois_server": "whois.wildwestdomains.com",
  "nameservers": [ "NS47.DOMAINCONTROL.COM",
  "NS48.DOMAINCONTROL.COM" ]
 },
 {
  "domain": "5ggodaddy.com",
  "date_created": "2018-10-02",
  "whois_server": "whois.onlinenic.com",
  "nameservers": [ "NS1.LANSET.NET",
  "NS2.LANSET.NET" ]
 },
 {
  "domain": "registrargodaddy.com",
  "date_created": "2005-05-05",
  "whois_server": "whois.wildwestdomains.com",
  "nameservers": [ "PDNS03.DOMAINCONTROL.COM",
  "PDNS04.DOMAINCONTROL.COM" ]
 },
 {
  "domain": "panel-godaddy.com",
  "date_created": "2019-10-02",
  "whois_server": "whois.PublicDomainRegistry.com",
  "nameservers": [ "NS1.CYBERCASTCO.COM",
  "NS2.CYBERCASTCO.COM" ]
 },
 {
  "domain": "saygodaddy.com",
  "date_created": "2020-01-20",
  "whois_server": "whois.fastdomain.com",
  "nameservers": [ "NS1.BLUEHOST.COM",
  "NS2.BLUEHOST.COM" ]
 },
 {
  "domain": "leavinggodaddy.com",
  "date_created": "2013-01-25",
  "whois_server": "whois.gomontenegrodomains.com",
  "nameservers": [ "NS03.DOMAINCONTROL.COM",
  "NS04.DOMAINCONTROL.COM" ]
 },
 {
  "domain": "strato-godaddy.com",
  "date_created": "2006-08-07",
  "whois_server": "whois.cronon.net",
  "nameservers": [ "DOCKS05.RZONE.DE",
  "SHADES04.RZONE.DE" ]
 },
 {
  "domain": "cryptogodaddy.com",
  "date_created": "2019-03-24",
  "whois_server": "whois.ionos.com",
  "nameservers": [ "A.NS36.DE",
  "B.NS36.DE" ]
 },
 {
  "domain": "godaddy.com",
  "date_created": "1999-03-02",
  "whois_server": "whois.godaddy.com",
  "nameservers": [ "A1-245.AKAM.NET",
  "A11-64.AKAM.NET",
  "A20-65.AKAM.NET",
  "A6-66.AKAM.NET",
  "A8-67.AKAM.NET",
  "A9-67.AKAM.NET",
  "CNS1.GODADDY.COM",
  "CNS2.GODADDY.COM" ]
 } ],
  "requests_available": 100
}

 

http://api.whoapi.com/?domain=godaddy.com&r=reversewhois&apikey=demokey&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <status_desc>Successfully processed</status_desc>
  <records_number>14</records_number>
  <results>
        <item0>
          <domain>godaddy.com.au</domain>
          <date_created>0000-00-00</date_created>
          <whois_server>whois.audns.net.au</whois_server>
          <nameservers>
                <item0>CNS1.SECURESERVER.NET</item0>
                <item1>CNS2.SECURESERVER.NET</item1>
          </nameservers>
        </item0>
        <item1>
          <domain>aws-gx-godaddy.com</domain>
          <date_created>2017-06-08</date_created>
          <whois_server>whois.registrar.amazon.com</whois_server>
          <nameservers>
                <item0>NS-1442.AWSDNS-52.ORG</item0>
                <item1>NS-1579.AWSDNS-05.CO.UK</item1>
                <item2>NS-637.AWSDNS-15.NET</item2>
                <item3>NS-87.AWSDNS-10.COM</item3>
          </nameservers>
        </item1>
        <item2>
          <domain>core-services-godaddy.com</domain>
          <date_created>2018-09-28</date_created>
          <whois_server>whois.registrar.amazon.com</whois_server>
          <nameservers>
                <item0>NS-1196.AWSDNS-21.ORG</item0>
                <item1>NS-1796.AWSDNS-32.CO.UK</item1>
                <item2>NS-182.AWSDNS-22.COM</item2>
                <item3>NS-971.AWSDNS-57.NET</item3>
          </nameservers>
        </item2>
        <item3>
          <domain>wgodaddy.com</domain>
          <date_created>2004-11-29</date_created>
          <whois_server>whois.wildwestdomains.com</whois_server>
          <nameservers>
                <item0>NS13.DOMAINCONTROL.COM</item0>
                <item1>NS14.DOMAINCONTROL.COM</item1>
          </nameservers>
        </item3>
        <item4>
          <domain>gogodaddy.com</domain>
          <date_created>2004-09-26</date_created>
          <whois_server>whois.above.com</whois_server>
          <nameservers>
                <item0>NS1.BODIS.COM</item0>
                <item1>NS2.BODIS.COM</item1>
          </nameservers>
        </item4>
        <item5>
          <domain>cheapgodaddy.com</domain>
          <date_created>2009-08-03</date_created>
          <whois_server>whois.wildwestdomains.com</whois_server>
          <nameservers>
                <item0>NS47.DOMAINCONTROL.COM</item0>
                <item1>NS48.DOMAINCONTROL.COM</item1>
          </nameservers>
        </item5>
        <item6>
          <domain>5ggodaddy.com</domain>
          <date_created>2018-10-02</date_created>
          <whois_server>whois.onlinenic.com</whois_server>
          <nameservers>
                <item0>NS1.LANSET.NET</item0>
                <item1>NS2.LANSET.NET</item1>
          </nameservers>
        </item6>
        <item7>
          <domain>registrargodaddy.com</domain>
          <date_created>2005-05-05</date_created>
          <whois_server>whois.wildwestdomains.com</whois_server>
          <nameservers>
                <item0>PDNS03.DOMAINCONTROL.COM</item0>
                <item1>PDNS04.DOMAINCONTROL.COM</item1>
          </nameservers>
        </item7>
        <item8>
          <domain>panel-godaddy.com</domain>
          <date_created>2019-10-02</date_created>
          <whois_server>whois.PublicDomainRegistry.com</whois_server>
          <nameservers>
                <item0>NS1.CYBERCASTCO.COM</item0>
                <item1>NS2.CYBERCASTCO.COM</item1>
          </nameservers>
        </item8>
        <item9>
          <domain>saygodaddy.com</domain>
          <date_created>2020-01-20</date_created>
          <whois_server>whois.fastdomain.com</whois_server>
          <nameservers>
                <item0>NS1.BLUEHOST.COM</item0>
                <item1>NS2.BLUEHOST.COM</item1>
          </nameservers>
        </item9>
        <item10>
          <domain>leavinggodaddy.com</domain>
          <date_created>2013-01-25</date_created>
          <whois_server>whois.gomontenegrodomains.com</whois_server>
          <nameservers>
                <item0>NS03.DOMAINCONTROL.COM</item0>
                <item1>NS04.DOMAINCONTROL.COM</item1>
          </nameservers>
        </item10>
        <item11>
          <domain>strato-godaddy.com</domain>
          <date_created>2006-08-07</date_created>
          <whois_server>whois.cronon.net</whois_server>
          <nameservers>
                <item0>DOCKS05.RZONE.DE</item0>
                <item1>SHADES04.RZONE.DE</item1>
          </nameservers>
        </item11>
        <item12>
          <domain>cryptogodaddy.com</domain>
          <date_created>2019-03-24</date_created>
          <whois_server>whois.ionos.com</whois_server>
          <nameservers>
                <item0>A.NS36.DE</item0>
                <item1>B.NS36.DE</item1>
          </nameservers>
        </item12>
        <item13>
          <domain>godaddy.com</domain>
          <date_created>1999-03-02</date_created>
          <whois_server>whois.godaddy.com</whois_server>
          <nameservers>
                <item0>A1-245.AKAM.NET</item0>
                <item1>A11-64.AKAM.NET</item1>
                <item2>A20-65.AKAM.NET</item2>
                <item3>A6-66.AKAM.NET</item3>
                <item4>A8-67.AKAM.NET</item4>
                <item5>A9-67.AKAM.NET</item5>
                <item6>CNS1.GODADDY.COM</item6>
                <item7>CNS2.GODADDY.COM</item7>
          </nameservers>
        </item13>
  </results>
  <requests_available>100</requests_available>
</response>
Geolocation API use case

In today’s insecure world, not all countries are created equal. The fact of the matter remains, some countries have different laws, and some hosting companies in those countries abide by those laws. If you understand that the Internet doesn’t have borders or boundaries, it quickly becomes obvious that our Geo API might be the most underestimated API out there!

Finding out quickly and automatically where a certain domain name is hosted (and by where, we mean geographically on our planet), and which laws it does or doesn’t abide by, can have a significant impact in fighting crime online!

 

Geolocation API

Let’s make an example request:
http://api.whoapi.com/?domain=whoapi.com&r=geo&apikey=demokey
Output in JSON format:
{
  "status": "0",
  "status_desc": "Successfully processed",
  "ip": "78.47.103.206",
  "geo_cc": "de",
  "geo_country": "Germany",
  "geo_city": null,
  "geo_latitude": null,
  "geo_longitude": null,
  "requests_available": 100
}

 

http://api.whoapi.com/?domain=whoapi.com&r=geo&apikey=demokey&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <status_desc>Successfully processed</status_desc>
  <ip>52.32.117.162</ip>
  <geo_cc>US</geo_cc>
  <geo_country>United States</geo_country>
  <geo_city/>
  <geo_latitude/>
  <geo_longitude/>
  <requests_available>100</requests_available>
</response>
Email Score API use case

In case you are dealing with a lot of signups on your website, and you want to give special treatment to VIP users our Email Score API can detect high-profile email addresses.

 

Email Score API

Scoring is not a real-time process as we are doing multiple checks before returning the result to you. For this reason, there are 2 steps:

 

1. Send email for scoring (Set task API);
2. Check the scoring state (Get result API).

 

These two APIs are described in detail below. Keep in mind that making a request to “Get result API” and skipping the first step will result in an empty reply.

We provide a webhook solution if you would like to get notified when the result is ready.

More details are below.

Set Task API
Get Result API
Webhook support

If you like to receive the processing result to your URL as soon as it’s ready add “webhook_url” parameter to the API request like this:

 

http://api.whoapi.com/?email=noreply@whoapi.com&r=emailscore&apikey=yourkey&webhook_url=https://yourwebsite.com/yourscript

 

Our system will make POST request to the specified URL passing JSON in the request body, like this:

 

[{“id”:9673,”email”:”noreply@whoapi.com”,”overall_score”:68,”temp_email_service”:false,”score_description”:”Good”}]

 

The body will contain Array of all emails as Objects. Object fields match API reply fields.

 

Webhook system supports requests resending in case your URL is not accessible (any HTTP error). In this case we will make 5 retries with the following delays: 5, 15, 30, 60, 60 minutes.

 

Let’s make an example request:
http://api.whoapi.com/?email=noreply@whoapi.com&r=emailscore&apikey=demokey
Output in JSON format:
{
  "status": 0,
  "status_desc": "Successfully processed",
  "results": [ {
    "id": 123,
    "email": "noreply@whoapi.com"
 } ],
  "requests_available": 100
}

 

http://api.whoapi.com/?email=noreply@whoapi.com&r=emailscore&apikey=demokey&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <status_desc>Successfully processed</status_desc>
  <results>
        <item0>
          <id>123</id>
          <email>noreply@whoapi.com</email>
        </item0>
  </results>
  <requests_available>100</requests_available>
</response>

Parameters meaning

 

results – array of accepted entries;
id – ID of the accepted entry (used in webhook requests);
email – email address.

 

http://api.whoapi.com/?email=noreply@whoapi.com&r=emailscore-check&apikey=demokey

Output in JSON format:

null

 

http://api.whoapi.com/?email=noreply@whoapi.com&r=emailscore-check&apikey=demokey&asxml

Output in XML format:

Parameters meaning

 

results – array of processed entries;
id – ID of the processed entry (same as in the initial request);
email – email address;
overall_score – score for the email (higher is better);
temp_email_service – true in case this address is provided by temp email service;
score_description – textual score description.

IP whois API use case

Now you can get information about IP addresses programmatically! This can come in handy when you are crosschecking domain names with IP addresses, provisioning server or during any cyber threat elimination process.

 

IP whois API

Let’s make an example request:
http://api.whoapi.com/?ip=52.32.117.162&r=ipwhois&apikey=demokey
Output in JSON format (only 3 nodes are shown due to a long list of nodes):
{
  "status": 0,
  "status_desc": "Successfully processed",
  "NetRange": "52.32.0.0 - 52.63.255.255",
  "CIDR": "52.32.0.0\/11",
  "NetName": "AT-88-Z",
  "NetHandle": "NET-52-32-0-0-1",
  "Parent": "NET52 (NET-52-0-0-0-0)",
  "NetType": "Direct Allocation",
  "OriginAS": "",
  "Organization": "Amazon Technologies Inc. (AT-88-Z)",
  "RegDate": "2015-09-02,
  2011-12-08",
  "Updated": "2015-09-02,
  2017-01-28",
  "Ref": "https:\/\/whois.arin.net\/rest\/net\/NET-52-32-0-0-1,
  https:\/\/whois.arin.net\/rest\/org\/AT-88-Z",
  "OrgName": "Amazon Technologies Inc.",
  "OrgId": "AT-88-Z",
  "Address": "Disabled due to GDPR",
  "City": "Disabled due to GDPR",
  "StateProv": "WA",
  "PostalCode": "98109",
  "Country": "US",
  "Comment": "All abuse reports MUST include:,
  * src IP,
  * dest IP (your IP),
  * dest port,
  * Accurate date\/timestamp and timezone of activity,
  * Intensity\/frequency (short log extracts),
  * Your contact details (phone and email) Without these we will be unable to identify the correct owner of the IP address at that point in time.",
  "OrgNOCHandle": "AANO1-ARIN",
  "OrgNOCName": "Amazon AWS Network Operations",
  "OrgNOCPhone": "+1-206-266-4064",
  "OrgNOCEmail": "amzn-noc-contact@amazon.com",
  "OrgNOCRef": "https:\/\/whois.arin.net\/rest\/poc\/AANO1-ARIN",
  "OrgTechHandle": "ANO24-ARIN",
  "OrgTechName": "Amazon EC2 Network Operations",
  "OrgTechPhone": "+1-206-266-4064",
  "OrgTechEmail": "amzn-noc-contact@amazon.com",
  "OrgTechRef": "https:\/\/whois.arin.net\/rest\/poc\/ANO24-ARIN",
  "OrgAbuseHandle": "AEA8-ARIN",
  "OrgAbuseName": "Amazon EC2 Abuse",
  "OrgAbusePhone": "+1-206-266-4064",
  "OrgAbuseEmail": "abuse@amazonaws.com",
  "OrgAbuseRef": "https:\/\/whois.arin.net\/rest\/poc\/AEA8-ARIN",
  "cidr_mask": [ {
    "cidr": "52.32.0.0\/11",
    "mask": "255.224.0.0"
 } ],
  "requests_available": 10000
}

 

http://api.whoapi.com/?ip=52.32.117.162&r=ipwhois&apikey=demokey&asxml

Output in XML format (only 3 nodes are shown due to a long list of nodes):
<?xml version="1.0"?>
<response>
  <status>0</status>
  <status_desc>Successfully processed</status_desc>
  <NetRange>52.32.0.0 - 52.63.255.255</NetRange>
  <CIDR>52.32.0.0/11</CIDR>
  <NetName>AT-88-Z</NetName>
  <NetHandle>NET-52-32-0-0-1</NetHandle>
  <Parent>NET52 (NET-52-0-0-0-0)</Parent>
  <NetType>Direct Allocation</NetType>
  <OriginAS/>
  <Organization>Amazon Technologies Inc. (AT-88-Z)</Organization>
  <RegDate>2015-09-02, 2011-12-08</RegDate>
  <Updated>2015-09-02, 2017-01-28</Updated>
  <Ref>https://whois.arin.net/rest/net/NET-52-32-0-0-1, https://whois.arin.net/rest/org/AT-88-Z</Ref>
  <OrgName>Amazon Technologies Inc.</OrgName>
  <OrgId>AT-88-Z</OrgId>
  <Address>Disabled due to GDPR</Address>
  <City>Disabled due to GDPR</City>
  <StateProv>WA</StateProv>
  <PostalCode>98109</PostalCode>
  <Country>US</Country>
  <Comment>All abuse reports MUST include:, * src IP, * dest IP (your IP), * dest port, * Accurate date/timestamp and timezone of activity, * Intensity/frequency (short log extracts), * Your contact details (phone and email) Without these we will be unable to identify the correct owner of the IP address at that point in time.</Comment>
  <OrgTechHandle>ANO24-ARIN</OrgTechHandle>
  <OrgTechName>Amazon EC2 Network Operations</OrgTechName>
  <OrgTechPhone>+1-206-266-4064</OrgTechPhone>
  <OrgTechEmail>amzn-noc-contact@amazon.com</OrgTechEmail>
  <OrgTechRef>https://whois.arin.net/rest/poc/ANO24-ARIN</OrgTechRef>
  <OrgNOCHandle>AANO1-ARIN</OrgNOCHandle>
  <OrgNOCName>Amazon AWS Network Operations</OrgNOCName>
  <OrgNOCPhone>+1-206-266-4064</OrgNOCPhone>
  <OrgNOCEmail>amzn-noc-contact@amazon.com</OrgNOCEmail>
  <OrgNOCRef>https://whois.arin.net/rest/poc/AANO1-ARIN</OrgNOCRef>
  <OrgAbuseHandle>AEA8-ARIN</OrgAbuseHandle>
  <OrgAbuseName>Amazon EC2 Abuse</OrgAbuseName>
  <OrgAbusePhone>+1-206-266-4064</OrgAbusePhone>
  <OrgAbuseEmail>abuse@amazonaws.com</OrgAbuseEmail>
  <OrgAbuseRef>https://whois.arin.net/rest/poc/AEA8-ARIN</OrgAbuseRef>  
  <cidr_mask> 
    <item0> 
      <cidr>52.32.0.0/11</cidr> 
      <mask>255.224.0.0</mask> 
    </item0> 
  </cidr_mask> 
  <requests_available>10000</requests_available> 
</response>
SSL API use case

Online security is becoming tremendously important every single passing day. If commerce and businesses are going online, we can’t transfer the locks and alarm systems they have in their brick and mortar stores. We have to create new technologies that do that.

With our SSL API you can check the certificates of any domain name in the world and see it’s expiry date. Either offer your clients the installation of a certificate, or alert them in time when it’s time to renew or switch to another provider!

 

SSL API

Let’s make an example request:
http://api.whoapi.com/?domain=whoapi.com&r=cert&apikey=demokey
Output in JSON format:
{
  "status": "0",
  "status_desc": "Successfully processed",
  "certondomain": true,
  "category": "Private Organization",
  "organization": "WhoAPI Inc.",
  "street": "444 Castro Street",
  "city": "Mountain View",
  "state": "California",
  "postalcode": "94041",
  "country": "US",
  "other": "US",
  "issuer": "COMODO CA Limited",
  "date_issued": "2015-01-09 00:00:00",
  "date_expires": "2016-01-09 23:59:59",
  "requests_available": 100
}

 

http://api.whoapi.com/?domain=whoapi.com&r=cert&apikey=demokey&asxml

Output in XML format:
<?xml version="1.0"?>
<response>
  <status>0</status>
  <status_desc>Successfully processed</status_desc>
  <certondomain>1</certondomain>
  <category>Private Organization</category>
  <organization>WhoAPI Inc.</organization>
  <street>444 Castro street</street>
  <city>Mountain View</city>
  <state>California</state>
  <postalcode>94041</postalcode>
  <country>US</country>
  <other>
    <item0>US</item0>
    <item1>Delaware</item1>
  </other>
  <issuer>COMODO CA Limited</issuer>
  <date_issued>2017-02-01 00:00:00</date_issued>
  <date_expires>2018-04-02 23:59:59</date_expires>
  <requests_available>100</requests_available>
</response>