View our

Domain Score API Code Examples

Please read the API documentation before you start using our APIs in production.
The API key used in these examples is for demonstrative purposes and can be used only to check whoapi.com

PHP Code Example

Basic PHP example using cURL. First, we will send domain “whoapi.com” for the scoring.

<?php
// Prepare vars
$domain    = "whoapi.com";     // domain to check
$r         = "domainscore";    // API request type
$apikey    = "demokey";        // your API key

// API call
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.whoapi.com/?domain=$domain&r=$r&apikey=$apikey");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = json_decode(curl_exec($ch), true);
curl_close($ch);

// Success
if (isset($output['status']) && $output['status'] == 0) {
    echo "Success. Domain \"$domain\" was sent for the scoring.";
    
// API error
} elseif (!empty($output['status_desc'])) {
    echo "API reports error: ".$output['status_desc'];
    
// Unknown error
} else {
    echo "Unknown error";
}
?>

Second, we will request the scoring result.

<?php
// Prepare vars
$domain    = "whoapi.com";          // domain to check
$r         = "domainscore-check";   // API request type
$apikey    = "demokey";             // your API key

// API call
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.whoapi.com/?domain=$domain&r=$r&apikey=$apikey");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = json_decode(curl_exec($ch), true);
curl_close($ch);

// Success
if (isset($output['status']) && $output['status'] == 0) {
    // The result is not yet ready
    if (!isset($output['results'][0]['overall_score'])) {
        echo "Success. Domain \"$domain\" is not yet scored. Try again later";
    } else {
        echo "Success. Domain \"$domain\" was scored: ".$output['results'][0]['overall_score'];
    }
    
// API error
} elseif (!empty($output['status_desc'])) {
    echo "API reports error: ".$output['status_desc'];
    
// Unknown error
} else {
    echo "Unknown error";
}
?>

Javascript Code Example

First, we will send domain “whoapi.com” for the scoring.

<script type="text/javascript">
var domain     = "whoapi.com";      // domain name you want to check
var r          = "domainscore";     // API request type
var apikey     = "demokey";         // your API key

var xhr = new XMLHttpRequest();
xhr.open("GET", 'https://api.whoapi.com/?domain='+domain+'&r='+r+'&apikey='+apikey, true);
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        if (json.status == 0) {
            document.getElementById("result").innerHTML = "Success. Domain was sent for the scoring.";
        } else {
            document.getElementById("result").innerHTML = "API reports error: " + json.status_desc;
        }
    } else {
        document.getElementById("result").innerHTML = "Unknown error";
    }
};
xhr.send();
</script>
<div id="result">please wait...</div>

Second, we will request the scoring result.

<script type="text/javascript">
var domain     = "whoapi.com";            // domain name you want to check
var r          = "domainscore-check";     // API request type
var apikey     = "demokey";               // your API key

var xhr = new XMLHttpRequest();
xhr.open("GET", 'https://api.whoapi.com/?domain='+domain+'&r='+r+'&apikey='+apikey, true);
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        if (json.status == 0) {
            // The result is not yet ready
            if (!json?.results[0]?.overall_score) {
                document.getElementById("result").innerHTML = "Success. Domain is not yet scored. Try again later";
            } else {
                document.getElementById("result").innerHTML = "Success. Domain was scored: " + json.results[0].overall_score;
            }
        } else {
            document.getElementById("result").innerHTML = "API reports error: " + json.status_desc;
        }
    } else {
        document.getElementById("result").innerHTML = "Unknown error";
    }
};
xhr.send();
</script>
<div id="result">please wait...</div>

Ruby Code Example

First, we will send domain “whoapi.com” for the scoring.

require 'open-uri'
require 'json'

domain     = "whoapi.com"   # domain to check
r          = "domainscore"  # API request type
apikey     = "demokey"      # your API key

output = JSON.parse(URI.open("https://api.whoapi.com/?domain=#{domain}&r=#{r}&apikey=#{apikey}").read)

if output["status"].to_i == 0
 puts "Success. Domain was sent for the scoring."
elsif !output["status_desc"].nil?
 puts "API reports error: " + output["status_desc"]
else
 puts "Unknown error"
end

Second, we will request the scoring result.

require 'open-uri'
require 'json'

domain     = "whoapi.com"           # domain to check
r          = "domainscore-check"    # API request type
apikey     = "demokey"              # your API key

output = JSON.parse(URI.open("https://api.whoapi.com/?domain=#{domain}&r=#{r}&apikey=#{apikey}").read)

if output["status"].to_i == 0
 if output["results"][0]["overall_score"].nil?
  puts "Success. Domain is not yet scored. Try again later"
 elsif
  puts "Success. Domain was scored: " + output["results"][0]["overall_score"].to_s
 end
elsif !output["status_desc"].nil?
 puts "API reports error: " + output["status_desc"]
else
 puts "Unknown error"
end

Python Code Example

First, we will send domain “whoapi.com” for the scoring.

#!/usr/bin/env python
import requests


def whoapi_request(domain, r, apikey) -> None:

    res = requests.get('https://api.whoapi.com', dict(
        domain=domain,
        r=r,
        apikey=apikey))

    if res.status_code == 200:
        data = res.json()
        if int(data['status']) == 0:
            print("Success. Domain was sent for the scoring.")
        else:
            print("API reports error: " + data['status_desc'])
    else:
        raise Exception('Unexpected status code %d' % res.status_code)


domain = 'whoapi.com'   # domain to check
r = 'domainscore'       # API request type
apikey = 'demokey'      # key

whoapi_request(domain, r, apikey)

Second, we will request the scoring result.

#!/usr/bin/env python
import requests


def whoapi_request(domain, r, apikey) -> None:

    res = requests.get('https://api.whoapi.com', dict(
        domain=domain,
        r=r,
        apikey=apikey))

    if res.status_code == 200:
        data = res.json()
        if int(data['status']) == 0:
            if data["results"][0]["overall_score"] is None:
                print("Success. Domain is not yet scored. Try again later")
            else:
                print("Success. Domain was scored: " + str(data["results"][0]["overall_score"]))
        else:
            print("API reports error: " + data['status_desc'])
    else:
        raise Exception('Unexpected status code %d' % res.status_code)


domain = 'whoapi.com'   # domain to check
r = 'domainscore-check' # API request type
apikey = 'demokey'      # key

whoapi_request(domain, r, apikey)

Objective C Code Example

First, we will send domain “whoapi.com” for the scoring.

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    NSString *domain   = @"whoapi.com";     // domain to check
    NSString *r        = @"domainscore";    // API request type
    NSString *apikey   = @"demokey";        // your API key
    
    NSString *urlAsString = [NSString stringWithFormat:@
    "https://api.whoapi.com/?domain=%@&r=%@&apikey=%@", domain, r, apikey];
    
    NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlAsString]];
    [urlRequest setHTTPMethod:@"GET"];
    NSURLSession *session = [NSURLSession sharedSession];
    
    // Semaphore used only for the debug purpose
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
    {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
        if(httpResponse.statusCode == 200)
        {
            NSError *parseError = nil;
            NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
            
            NSNumber *status;
            if([responseDictionary[@"status"] isKindOfClass:[NSString class]]) {
                NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
                f.numberStyle = NSNumberFormatterDecimalStyle;
                status = [f numberFromString:responseDictionary[@"status"]];
            } else {
                status = responseDictionary[@"status"];
            }
            if([status isEqualToNumber:@0])
            {
                NSLog(@"Success. Domain was sent for the scoring.");
            } else {
                NSLog(@"API reports error: %@", responseDictionary[@"status_desc"]);
            }
        }
        else
        {
            NSLog(@"Unexpected status code\n");
        }
        
        // Semaphore used only for the debug purpose
        dispatch_semaphore_signal(sema);
    }];
    [dataTask resume];
    
    // Semaphore used only for the debug purpose
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    
    return 0;
}

Second, we will request the scoring result.

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    NSString *domain   = @"whoapi.com";         // domain to check
    NSString *r        = @"domainscore-check";  // API request type
    NSString *apikey   = @"demokey";            // your API key
    
    NSString *urlAsString = [NSString stringWithFormat:@
    "https://api.whoapi.com/?domain=%@&r=%@&apikey=%@", domain, r, apikey];
    
    NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlAsString]];
    [urlRequest setHTTPMethod:@"GET"];
    NSURLSession *session = [NSURLSession sharedSession];
    
    // Semaphore used only for the debug purpose
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
    {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
        if(httpResponse.statusCode == 200)
        {
            NSError *parseError = nil;
            NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
            
            NSNumber *status;
            if([responseDictionary[@"status"] isKindOfClass:[NSString class]]) {
                NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
                f.numberStyle = NSNumberFormatterDecimalStyle;
                status = [f numberFromString:responseDictionary[@"status"]];
            } else {
                status = responseDictionary[@"status"];
            }
            if([status isEqualToNumber:@0])
            {
                if (responseDictionary[@"results"][0][@"overall_score"] == nil)
                {
                    NSLog(@"Success. Domain is not yet scored. Try again later\n");
                } else {
                    NSLog(@"Success. Domain was scored: %@", responseDictionary[@"results"][0][@"overall_score"]);
                }
            } else {
                NSLog(@"API reports error: %@", responseDictionary[@"status_desc"]);
            }
        }
        else
        {
            NSLog(@"Unexpected status code\n");
        }
        
        // Semaphore used only for the debug purpose
        dispatch_semaphore_signal(sema);
    }];
    [dataTask resume];
    
    // Semaphore used only for the debug purpose
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    
    return 0;
}

C#(.NET) Code Example

First, we will send domain “whoapi.com” for the scoring.

using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;

public class Program
{
    public static void Main()
    {
        string apiType = "domainscore"; // API request type
        string domain = "whoapi.com"; // domain to check
        string apiKey = "demokey"; // api key

        WebRequest request = WebRequest.Create(String.Format("https://api.whoapi.com/?domain={0}&r={1}&apikey={2}", domain, apiType, apiKey));
        WebResponse response = request.GetResponse();

        StreamReader reader = new StreamReader(response.GetResponseStream());
        string responseFromServer = reader.ReadToEnd();

        JObject json = JObject.Parse(responseFromServer);

        if (json.Value<int>("status") == 0)
        {
            Console.WriteLine("Success. Domain was sent for the scoring.");
        }
        else
        {
            Console.WriteLine(String.Format("API reports error: {0}. ", json["status_desc"]));
        }
    }
}

Second, we will request the scoring result.

using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;

public class Program
{
    public static void Main()
    {
        string apiType = "domainscore-check"; // API request type
        string domain = "whoapi.com"; // domain to check
        string apiKey = "demokey"; // api key

        WebRequest request = WebRequest.Create(String.Format("https://api.whoapi.com/?domain={0}&r={1}&apikey={2}", domain, apiType, apiKey));
        WebResponse response = request.GetResponse();

        StreamReader reader = new StreamReader(response.GetResponseStream());
        string responseFromServer = reader.ReadToEnd();

        JObject json = JObject.Parse(responseFromServer);

        if (json.Value<int>("status") == 0)
        {
            if (json["results"][0]["overall_score"].Type == JTokenType.Null)
            {
                Console.WriteLine("Success. Domain is not yet scored. Try again later");
            }
            else
            {
                Console.WriteLine(String.Format("Success. Domain was scored: {0}. ", json["results"][0]["overall_score"]));
            }
        }
        else
        {
            Console.WriteLine(String.Format("API reports error: {0}. ", json["status_desc"]));
        }
    }
}

Java Code Example

First, we will send domain “whoapi.com” for the scoring.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;

class Main {
    public static void main(String args[]) {
      try {
        // Set data
        String domain = "whoapi.com"; // domain to check
        String rtype = "domainscore"; // API request type
        String apikey = "demokey"; // your API key

        // Send request to API
        URL obj = new URL("https://api.whoapi.com/?domain=" + domain + "&r=" + rtype + "&apikey=" + apikey);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        
        // Validate HTTP response code
        int responseCode = con.getResponseCode();
        if (responseCode != 200) {
          System.out.println("HTTP request error, code: " + responseCode);
          return;
        }
        
        // Read API reply
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
          response.append(inputLine);
        }
        in.close();
        
        // Get JSON
        JSONObject myResponse = new JSONObject(response.toString());
        int status = myResponse.getInt("status");
        String statusDesc = myResponse.getString("status_desc");
        
        // Validate request status
        if (status != 0) {
          System.out.println("API reports error: " + statusDesc);
          return;
        }
        
        System.out.println("Success. Domain was sent for the scoring.");
        
      } catch (Exception e) {
          e.printStackTrace();
      }
    }
}

Second, we will request the scoring result.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
import org.json.JSONArray;

class Main {
    public static void main(String args[]) {
      try {
        // Set data
        String domain = "whoapi.com"; // domain to check
        String rtype = "domainscore-check"; // API request type
        String apikey = "demokey"; // your API key

        // Send request to API
        URL obj = new URL("https://api.whoapi.com/?domain=" + domain + "&r=" + rtype + "&apikey=" + apikey);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        
        // Validate HTTP response code
        int responseCode = con.getResponseCode();
        if (responseCode != 200) {
          System.out.println("HTTP request error, code: " + responseCode);
          return;
        }
        
        // Read API reply
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
          response.append(inputLine);
        }
        in.close();
        
        // Get JSON
        JSONObject myResponse = new JSONObject(response.toString());
        int status = myResponse.getInt("status");
        String statusDesc = myResponse.getString("status_desc");
        
        // Validate request status
        if (status != 0) {
          System.out.println("API reports error: " + statusDesc);
          return;
        }
        
        JSONArray results = myResponse.getJSONArray("results");
        
        if (results.getJSONObject(0).isNull("overall_score")) {
          System.out.println("Success. Domain is not yet scored. Try again later");
        } else {
          int overallScore = results.getJSONObject(0).getInt("overall_score");
          System.out.println("Success. Domain was scored: " + overallScore);
        }

      } catch (Exception e) {
          e.printStackTrace();
      }
    }
}

Summary

The provided code examples demonstrate how to use the WhoAPI’s Domain Score API to obtain a domain score for a given domain. The examples cover different programming languages and use various HTTP client libraries to send HTTP GET requests to the WhoAPI Domain Score API endpoint.

Here’s the general flow of the code:

  1. Set up the necessary variables, including the domain to check, the API request type (domainscore or domainscore-check) (domainscore or or domainscore-check), and the API key.
  2. Construct the API request URL with the appropriate parameters.
  3. Send an HTTP GET request to the API endpoint using the provided HTTP client library.
  4. Receive the API response and process it.
  5. Handle different scenarios based on the response status.

The first code example initiates the scoring process for the domain by sending a request with the domainscore request type. It checks for a successful response and displays a success message if the status is 0.

The second code example is used to retrieve the scoring result. It sends a request with the domainscore-check request type to get the scoring result for the domain. The code checks if the response status is 0 and if the scoring result is available in the response. If the result is not available yet, it displays a message indicating that the domain is not yet scored. Otherwise, it displays the overall score.

Please note that the API key used in these examples is for demonstrative purposes only and can be used to check the domain “whoapi.com.” To use the Domain Score API with your own domain names, you would need to obtain a valid API key from WhoAPI and replace the demokey value in the code examples with your own key.

It’s important to review the API documentation provided by WhoAPI to understand the available request types, response formats, and any specific requirements or limitations of the API.

Additionally, the scoring process and the scoring result are specific to the Domain Score API provided by WhoAPI. The scoring mechanism and criteria used to calculate the domain score may be specific to WhoAPI’s algorithms and methods. The results obtained through these code examples reflect the scoring process and result provided by WhoAPI for the given domain.