View our
Domain Availability 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. We will check if the domain name “whoapi.com” is available for registration.
<?php
// Prepare vars
$domain = "whoapi.com"; // domain to check
$r = "taken"; // 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\" is: ".($output['taken'] == 1 ? "Taken" : "Not taken");
// API error
} elseif (!empty($output['status_desc'])) {
echo "API reports error: ".$output['status_desc'];
// Unknown error
} else {
echo "Unknown error";
}
?>
JavaScript Code Example
We’re going to use our Domain Availability API to check if the domain name “whoapi.com” is available for registration.
<script type="text/javascript">
var domain = "whoapi.com"; // domain name you want to check
var r = "taken"; // 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 is: " + (json.taken == 1 ? "Taken" : "Not taken");
} 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
We’re going to check if the domain name “whoapi.com” is available for registration.
require 'open-uri'
require 'json'
domain = "whoapi.com" # domain to check
r = "taken" # 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 is: " + (output["taken"].to_i == 1 ? "Taken" : "Not taken")
elsif !output["status_desc"].nil?
puts "API reports error: " + output["status_desc"]
else
puts "Unknown error"
end
Python Code Example
We’re going to use our Domain Availability API to check if the domain name “whoapi.com” is available for registration.
#!/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 is: " + "Taken" if int(data['taken']) == 1 else "Not taken")
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 = 'taken' # API request type
apikey = 'demokey' # key
whoapi_request(domain, r, apikey)
Objective C Code Example
We’re going to use our Domain Availability API to check if the domain name “whoapi.com” is available for registration.
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
NSString *domain = @"whoapi.com"; // domain to check
NSString *r = @"taken"; // 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[@"taken"] isEqualToNumber:@1])
{
NSLog(@"Success. Domain is: Taken\n");
} else {
NSLog(@"Success. Domain is: Not taken\n");
}
} 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
We’re going to use our Domain Availability API to check if the domain name “whoapi.com” is available for registration.
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;
public class Program
{
public static void Main()
{
string apiType = "taken"; // 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.Value<int>("taken") == 1)
{
Console.WriteLine("Success. Domain is: Taken");
}
else
{
Console.WriteLine("Success. Domain is: Not taken");
}
}
else
{
Console.WriteLine(String.Format("API reports error: {0}. ", json["status_desc"]));
}
}
}
Java Code Example
We’re going to use our Domain Availability API to check if the domain name “whoapi.com” is available for registration.
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 = "taken"; // 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;
}
int taken = myResponse.getInt("taken");
System.out.println("Success. Domain is: " + (taken == 1 ? "Taken" : "Not taken"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Summary
The provided code examples demonstrate how to use WhoAPI’s Domain Availability API to check if a domain name is available for registration. The code examples cover different programming languages and use various HTTP client libraries to send HTTP GET requests to the WhoAPI Domain Availability API endpoint.
Here’s the general flow of the code:
- Set up the necessary variables, including the domain name to check, the API request type (taken), and the API key.
- Construct the API request URL with the appropriate parameters.
- Send an HTTP GET request to the API endpoint using the provided HTTP client library.
- Receive the API response and process it.
- Handle different scenarios based on the response status.
For example, if the response status is 0, indicating success, the code may display whether the domain is taken or not. If the response status is non-zero, indicating an error, the code may display an error message with the corresponding status description.
Please note that the API key (demokey) used in these examples is for demonstrative purposes only and can be used to check the availability of the “whoapi.com” domain. To use the WhoAPI service 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, keep in mind that the availability of a domain name may change over time, so the results obtained through these code examples reflect only the current availability status of a domain at the time of execution.