Overview
-
Live Whois Lookup
Live Whois Lookup provides real-time whois domain data. -
Historical Whois API
Whois history API helps to get historical domain whois records. -
Reverse Whois API
Reverse whois lookup API lets you get whois records by keyword, email, registrant name or company. -
Bulk Domain Lookup
Bulk domain whois lookup allows you to query multiple domains in one request. You can do bulk Whois search through an API upto 100 domains in JSON / XML formats in single request. If you want to query bulk whois upto 3M, you are required to upload files via our billing portal. We'll send you an email with a link to download your whois file as soon as crawling completes.
Authorization
You can make authorized requests to our API by passing API key as a query parameter. To get your API key, login to our billing dashboard and get your API key! If your API key has been compromised, you can change it by clicking on reset button in billing dashboard.
Live Whois Lookup
API

Input parameters: required
apiKey Get your API key from our billing dashboard.
whois For getting live or historical or reverse whois.
domainName The domainName for requested whois.
Input parameters: optional
format Two formats are available JSON, XML. If you don't pass 'format' parameter, default format is JSON.
Code Snippets
curl --location --request GET 'https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY'
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY',
'headers': {
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY")
.method("GET", null)
.build();
Response response = client.newCall(request).execute();
import http.client
conn = http.client.HTTPSConnection("api.whoisfreaks.com")
payload = ''
headers = {}
conn.request("GET", "/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
require "uri"
require "net/http"
url = URI("https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
response = https.request(request)
puts response.read_body
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch("https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, "https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var semaphore = DispatchSemaphore (value: 0)
var request = URLRequest(url: URL(string: "https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apiKey=API_KEY")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
semaphore.signal()
return
}
print(String(data: data, encoding: .utf8)!)
semaphore.signal()
}
task.resume()
semaphore.wait()
Response
Live Whois API provides response in JSON/XML formats. You can pass format as parameter to consume API in your required format. Default format is JSON. ICANN grant authority to registrant to put WHOIS GUARD which will hide their personal information like name, email etc. In that case you will get REDACTED FOR PRIVACY or some text like this. Different registrars put different text for WHOIS GUARD. We crawl data as ICANN registry provide us. In some cases, registrar / registrant show limited information, you will observe missing fields in our response in that case. Following is the complete Whois data response format.
{
"status": true,
"domain_name": "whoisfreaks.com",
"query_time": "2022-10-19 07:50:41",
"whois_server": "whois.verisign-grs.com",
"domain_registered": "yes",
"create_date": "2019-03-19",
"update_date": "2022-02-17",
"expiry_date": "2023-03-19",
"domain_registrar": {
"iana_id": "1068",
"registrar_name": "NAMECHEAP INC",
"whois_server": "whois.namecheap.com",
"website_url": "http://www.namecheap.com",
"email_address": "abuse@namecheap.com",
"phone_number": "+1.9854014545"
},
"registrant_contact": {
"name": "Redacted for Privacy",
"company": "Privacy service provided by Withheld for Privacy ehf",
"street": "Kalkofnsvegur 2",
"city": "Reykjavik",
"state": "Capital Region",
"zip_code": "101",
"country_name": "Iceland",
"country_code": "IS",
"email_address": "b8e54d7b11b347b285b60992e0889dde.protect@withheldforprivacy.com",
"phone": "+354.4212434"
},
"administrative_contact": {
"name": "Redacted for Privacy",
"company": "Privacy service provided by Withheld for Privacy ehf",
"street": "Kalkofnsvegur 2",
"city": "Reykjavik",
"state": "Capital Region",
"zip_code": "101",
"country_name": "Iceland",
"country_code": "IS",
"email_address": "b8e54d7b11b347b285b60992e0889dde.protect@withheldforprivacy.com",
"phone": "+354.4212434"
},
"technical_contact": {
"name": "Redacted for Privacy",
"company": "Privacy service provided by Withheld for Privacy ehf",
"street": "Kalkofnsvegur 2",
"city": "Reykjavik",
"state": "Capital Region",
"zip_code": "101",
"country_name": "Iceland",
"country_code": "IS",
"email_address": "b8e54d7b11b347b285b60992e0889dde.protect@withheldforprivacy.com",
"phone": "+354.4212434"
},
"name_servers": [
"dns8.cloudns.net",
"dns4.cloudns.net",
"dns3.cloudns.net",
"dns7.cloudns.net"
],
"domain_status": [
"clientTransferProhibited"
],
"whois_raw_domain": "\n Domain Name: WHOISFREAKS.COM\n Registry Domain ID: 2370976244_DOMAIN_COM-VRSN\n Registrar WHOIS Server: whois.namecheap.com\n Registrar URL: http://www.namecheap.com\n Updated Date: 2022-02-17T09:01:41Z\n Creation Date: 2019-03-19T18:24:27Z\n Registry Expiry Date: 2023-03-19T18:24:27Z\n Registrar: NameCheap, Inc.\n Registrar IANA ID: 1068\n Registrar Abuse Contact Email: abuse@namecheap.com\n Registrar Abuse Contact Phone: +1.6613102107\n Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited\n Name Server: DNS3.CLOUDNS.NET\n Name Server: DNS4.CLOUDNS.NET\n Name Server: DNS7.CLOUDNS.NET\n Name Server: DNS8.CLOUDNS.NET\n DNSSEC: unsigned\n URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/\n>>> Last update of whois database: 2022-10-19T07:50:26Z <<<\n\nFor more information on Whois status codes, please visit https://icann.org/epp\n\nNOTICE: The expiration date displayed in this record is the date the\nregistrar's sponsorship of the domain name registration in the registry is\ncurrently set to expire. This date does not necessarily reflect the expiration\ndate of the domain name registrant's agreement with the sponsoring\nregistrar. Users may consult the sponsoring registrar's Whois database to\nview the registrar's reported date of expiration for this registration.\n\nTERMS OF USE: You are not authorized to access or query our Whois\ndatabase through the use of electronic processes that are high-volume and\nautomated except as reasonably necessary to register domain names or\nmodify existing registrations; the Data in VeriSign Global Registry\nServices' (\"VeriSign\") Whois database is provided by VeriSign for\ninformation purposes only, and to assist persons in obtaining information\nabout or related to a domain name registration record. VeriSign does not\nguarantee its accuracy. By submitting a Whois query, you agree to abide\nby the following terms of use: You agree that you may use this Data only\nfor lawful purposes and that under no circumstances will you use this Data\nto: (1) allow, enable, or otherwise support the transmission of mass\nunsolicited, commercial advertising or solicitations via e-mail, telephone,\nor facsimile; or (2) enable high volume, automated, electronic processes\nthat apply to VeriSign (or its computer systems). The compilation,\nrepackaging, dissemination or other use of this Data is expressly\nprohibited without the prior written consent of VeriSign. You agree not to\nuse electronic processes that are automated and high-volume to access or\nquery the Whois database except as reasonably necessary to register\ndomain names or modify existing registrations. VeriSign reserves the right\nto restrict your access to the Whois database in its sole discretion to ensure\noperational stability. VeriSign may restrict or terminate your access to the\nWhois database for failure to abide by these terms of use. VeriSign\nreserves the right to modify these terms at any time.\n\nThe Registry database contains ONLY .COM, .NET, .EDU domains and\nRegistrars.\nDomain name: whoisfreaks.com\nRegistry Domain ID: 2370976244_DOMAIN_COM-VRSN\nRegistrar WHOIS Server: whois.namecheap.com\nRegistrar URL: http://www.namecheap.com\nUpdated Date: 2022-02-17T09:01:41.82Z\nCreation Date: 2019-03-19T18:24:27.00Z\nRegistrar Registration Expiration Date: 2023-03-19T18:24:27.00Z\nRegistrar: NAMECHEAP INC\nRegistrar IANA ID: 1068\nRegistrar Abuse Contact Email: abuse@namecheap.com\nRegistrar Abuse Contact Phone: +1.9854014545\nReseller: NAMECHEAP INC\nDomain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited\nRegistry Registrant ID: \nRegistrant Name: Redacted for Privacy\nRegistrant Organization: Privacy service provided by Withheld for Privacy ehf\nRegistrant Street: Kalkofnsvegur 2 \nRegistrant City: Reykjavik\nRegistrant State/Province: Capital Region\nRegistrant Postal Code: 101\nRegistrant Country: IS\nRegistrant Phone: +354.4212434\nRegistrant Phone Ext: \nRegistrant Fax: \nRegistrant Fax Ext: \nRegistrant Email: b8e54d7b11b347b285b60992e0889dde.protect@withheldforprivacy.com\nRegistry Admin ID: \nAdmin Name: Redacted for Privacy\nAdmin Organization: Privacy service provided by Withheld for Privacy ehf\nAdmin Street: Kalkofnsvegur 2 \nAdmin City: Reykjavik\nAdmin State/Province: Capital Region\nAdmin Postal Code: 101\nAdmin Country: IS\nAdmin Phone: +354.4212434\nAdmin Phone Ext: \nAdmin Fax: \nAdmin Fax Ext: \nAdmin Email: b8e54d7b11b347b285b60992e0889dde.protect@withheldforprivacy.com\nRegistry Tech ID: \nTech Name: Redacted for Privacy\nTech Organization: Privacy service provided by Withheld for Privacy ehf\nTech Street: Kalkofnsvegur 2 \nTech City: Reykjavik\nTech State/Province: Capital Region\nTech Postal Code: 101\nTech Country: IS\nTech Phone: +354.4212434\nTech Phone Ext: \nTech Fax: \nTech Fax Ext: \nTech Email: b8e54d7b11b347b285b60992e0889dde.protect@withheldforprivacy.com\nName Server: dns3.cloudns.net\nName Server: dns4.cloudns.net\nName Server: dns7.cloudns.net\nName Server: dns8.cloudns.net\nDNSSEC: unsigned\nURL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/\n>>> Last update of WHOIS database: 2022-10-18T16:49:22.15Z <<<\nFor more information on Whois status codes, please visit https://icann.org/epp",
"registry_data": {
"domain_name": "WHOISFREAKS.COM",
"query_time": "2022-10-19 07:50:41",
"whois_server": "whois.verisign-grs.com",
"domain_registered": "yes",
"domain_registrar": {
"iana_id": "1068",
"registrar_name": "NameCheap, Inc.",
"whois_server": "whois.namecheap.com",
"website_url": "http://www.namecheap.com",
"email_address": "abuse@namecheap.com",
"phone_number": "+1.6613102107"
},
"name_servers": [
"dns8.cloudns.net",
"dns4.cloudns.net",
"dns3.cloudns.net",
"dns7.cloudns.net"
],
"domain_status": [
"clientTransferProhibited"
],
"whois_raw_registery": "\n Domain Name: WHOISFREAKS.COM\n Registry Domain ID: 2370976244_DOMAIN_COM-VRSN\n Registrar WHOIS Server: whois.namecheap.com\n Registrar URL: http://www.namecheap.com\n Updated Date: 2022-02-17T09:01:41Z\n Creation Date: 2019-03-19T18:24:27Z\n Registry Expiry Date: 2023-03-19T18:24:27Z\n Registrar: NameCheap, Inc.\n Registrar IANA ID: 1068\n Registrar Abuse Contact Email: abuse@namecheap.com\n Registrar Abuse Contact Phone: +1.6613102107\n Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited\n Name Server: DNS3.CLOUDNS.NET\n Name Server: DNS4.CLOUDNS.NET\n Name Server: DNS7.CLOUDNS.NET\n Name Server: DNS8.CLOUDNS.NET\n DNSSEC: unsigned\n URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/\n>>> Last update of whois database: 2022-10-19T07:50:12Z <<<\n\nFor more information on Whois status codes, please visit https://icann.org/epp\n\nNOTICE: The expiration date displayed in this record is the date the\nregistrar's sponsorship of the domain name registration in the registry is\ncurrently set to expire. This date does not necessarily reflect the expiration\ndate of the domain name registrant's agreement with the sponsoring\nregistrar. Users may consult the sponsoring registrar's Whois database to\nview the registrar's reported date of expiration for this registration.\n\nTERMS OF USE: You are not authorized to access or query our Whois\ndatabase through the use of electronic processes that are high-volume and\nautomated except as reasonably necessary to register domain names or\nmodify existing registrations; the Data in VeriSign Global Registry\nServices' (\"VeriSign\") Whois database is provided by VeriSign for\ninformation purposes only, and to assist persons in obtaining information\nabout or related to a domain name registration record. VeriSign does not\nguarantee its accuracy. By submitting a Whois query, you agree to abide\nby the following terms of use: You agree that you may use this Data only\nfor lawful purposes and that under no circumstances will you use this Data\nto: (1) allow, enable, or otherwise support the transmission of mass\nunsolicited, commercial advertising or solicitations via e-mail, telephone,\nor facsimile; or (2) enable high volume, automated, electronic processes\nthat apply to VeriSign (or its computer systems). The compilation,\nrepackaging, dissemination or other use of this Data is expressly\nprohibited without the prior written consent of VeriSign. You agree not to\nuse electronic processes that are automated and high-volume to access or\nquery the Whois database except as reasonably necessary to register\ndomain names or modify existing registrations. VeriSign reserves the right\nto restrict your access to the Whois database in its sole discretion to ensure\noperational stability. VeriSign may restrict or terminate your access to the\nWhois database for failure to abide by these terms of use. VeriSign\nreserves the right to modify these terms at any time.\n\nThe Registry database contains ONLY .COM, .NET, .EDU domains and\nRegistrars."
}
}
HTTP Error Codes
Below mentioned possible type of error and desc.
Historical Whois API
API

Input parameters: required
apiKey Get your API key on our billing dashboard.
whois For getting live or historical or reverse whois.
domainName The domainName for requested whois.
Input parameters: optional
format Two formats are available JSON, XML. If you don't pass format parameter, default format is JSON
Code Snippets
curl --location --request GET 'https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY'
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY',
'headers': {
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY")
.method("GET", null)
.build();
Response response = client.newCall(request).execute();
import http.client
conn = http.client.HTTPSConnection("api.whoisfreaks.com")
payload = ''
headers = {}
conn.request("GET", "/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
require "uri"
require "net/http"
url = URI("https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
response = https.request(request)
puts response.read_body
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch("https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, "https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var semaphore = DispatchSemaphore (value: 0)
var request = URLRequest(url: URL(string: "https://api.whoisfreaks.com/v1.0/whois?whois=historical&domainName=jfreaks.com&apiKey=API_KEY")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
semaphore.signal()
return
}
print(String(data: data, encoding: .utf8)!)
semaphore.signal()
}
task.resume()
semaphore.wait()
Response
{
"status": true,
"whois": "historical",
"total_records": "2",
"whois_domains_historical": [
{
"num": 1,
"status": true,
"domain_name": "Google.com",
"query_time": "2022-07-23 18:56:27",
"create_date": "1997-09-15",
"update_date": "2019-09-09",
"expiry_date": "2028-09-13",
"domain_registrar": {
"iana_id": "292",
"registrar_name": "MarkMonitor, Inc.",
"whois_server": "whois.markmonitor.com",
"website_url": "http://www.markmonitor.com"
},
"registrant_contact": {
"company": "google llc",
"state": "CA",
"country_name": "United States",
"country_code": "US",
"email_address": "select request email form at https://domains.markmonitor.com/whois/google.com"
},
"administrative_contact": {
"company": "Google LLC",
"state": "CA",
"country_name": "United States",
"country_code": "US",
"email_address": "Select Request Email Form at https://domains.markmonitor.com/whois/google.com"
},
"technical_contact": {
"company": "Google LLC",
"state": "CA",
"country_name": "United States",
"country_code": "US",
"email_address": "Select Request Email Form at https://domains.markmonitor.com/whois/google.com"
},
"name_servers": [
"ns1.google.com",
"NS2.GOOGLE.COM",
"NS1.GOOGLE.COM",
"NS4.GOOGLE.COM"
],
"domain_status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"serverDeleteProhibited",
"serverTransferProhibited"
]
},
{
"num": 2,
"status": true,
"domain_name": "google.com",
"create_date": "2017-01-30",
"expiry_date": "2020-09-14",
"domain_registrar": {
"registrar_name": "MarkMonitor Inc."
},
"registrant_contact": {
"name": "Dns Admin",
"company": "Google Inc.",
"city": "Mountain View",
"state": "CA",
"zip_code": "94043",
"country_name": "United States",
"country_code": "US",
"email_address": "dns-admin@google.com",
"phone": "+1.6502530000",
"mailing_address": "Please contact contact-admin@google.com, 1600 Amphitheatre Parkway"
}
}
]
}
HTTP Error Codes
Below mentioned possible type of error and desc.
Reverse Whois API
API
Reverse Whois lookup API lets you query in two modes.
1. Default Mode.
2. Mini
Mode.
Reverse Whois search
API allows you access data in pagination.






Input parameters: required
apiKey Get your API key on our billing dashboard.
whois For getting live or historical or reverse whois.
keyword The domain keyword for requested whois.
or
email The email for requested whois.
or
owner The owner Name for requested whois.
or
company The company Name for requested whois.
Input parameters: optional
mode Two modes are available mini, default
page For getting next or desired page whois info
format Two formats are available JSON, XML. If you don't pass format parameter, default format is JSON
Code Snippet
curl --location --request GET 'https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY'
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY',
'headers': {
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY")
.method("GET", null)
.build();
Response response = client.newCall(request).execute();
import http.client
conn = http.client.HTTPSConnection("api.whoisfreaks.com")
payload = ''
headers = {}
conn.request("GET", "/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
require "uri"
require "net/http"
url = URI("https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
response = https.request(request)
puts response.read_body
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch("https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, "https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var semaphore = DispatchSemaphore (value: 0)
var request = URLRequest(url: URL(string: "https://api.whoisfreaks.com/v1.0/whois?whois=reverse&keyword=youtube&apiKey=API_KEY")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
semaphore.signal()
return
}
print(String(data: data, encoding: .utf8)!)
semaphore.signal()
}
task.resume()
semaphore.wait()
Response
default mode response(You can get upto 50 whois record per page)
{
"total_Result": 323,
"total_Pages": 7,
"current_Page": 1,
"whois_domains_historical": [
{
"num": 1,
"status": true,
"domain_name": "youtube.ovh",
"query_time": "2020-04-06 15:16:34",
"create_date": "2016-08-01",
"expiry_date": "2020-08-01",
"domain_registrar": {
"registrar_name": "OVH",
"website_url": "http://www.ovh.com"
},
"registrant_contact": {
"name": "REDACTED FOR PRIVACY",
"city": "REDACTED FOR PRIVACY",
"zip_code": "REDACTED FOR PRIVACY",
"country_name": "France",
"country_code": "FR",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.",
"phone": "REDACTED FOR PRIVACY",
"fax": "REDACTED FOR PRIVACY"
},
"administrative_contact": {
"name": "REDACTED FOR PRIVACY",
"company": "REDACTED FOR PRIVACY",
"city": "REDACTED FOR PRIVACY",
"state": "REDACTED FOR PRIVACY",
"zip_code": "REDACTED FOR PRIVACY",
"country_name": "REDACTED FOR PRIVACY",
"country_code": "REDACTED FOR PRIVACY",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.",
"phone": "REDACTED FOR PRIVACY",
"fax": "REDACTED FOR PRIVACY"
},
"technical_contact": {
"name": "REDACTED FOR PRIVACY",
"company": "REDACTED FOR PRIVACY",
"city": "REDACTED FOR PRIVACY",
"state": "REDACTED FOR PRIVACY",
"zip_code": "REDACTED FOR PRIVACY",
"country_name": "REDACTED FOR PRIVACY",
"country_code": "REDACTED FOR PRIVACY",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.",
"phone": "REDACTED FOR PRIVACY",
"fax": "REDACTED FOR PRIVACY"
},
"billing_contact": {},
"name_servers": [
"dave.ns.cloudflare.com",
"vera.ns.cloudflare.com"
],
"domain_status": [
"clientDeleteProhibited",
"clientTransferProhibited"
]
},
{
"num": 2,
"status": true,
"domain_name": "youtube.ovh",
"create_date": "2016-08-01",
"expiry_date": "2017-08-01",
"domain_registrar": {
"registrar_name": "OVH"
},
"registrant_contact": {
"name": "chebiri mohamed",
"city": "Roubaix Cedex 1",
"zip_code": "59053",
"country_name": "FRANCE",
"email_address": "s04z2azkjpbmg75jsjli@z.o-w-o.info",
"phone": "33972101007",
"mailing_address": "youtube.ovh, office #9657345|c/o Owo, Bp80157"
}
},
{
"num": 3,
"status": true,
"domain_name": "youtube.ovh",
"create_date": "2015-06-05",
"expiry_date": "2016-06-05",
"domain_registrar": {
"registrar_name": "OVH"
},
"registrant_contact": {
"name": "Harry Spink",
"company": "Sandbox Media",
"city": "Bristol",
"zip_code": "BS3 1TF",
"country_name": "UNITED KINGDOM",
"email_address": "2oc70dbb602lmt04jyzy@z.o-w-o.info",
"phone": "4.41179E+11",
"mailing_address": "Tobacco Factory,|Bristol"
}
},
.
.
.
.
{
"num": 50,
"status": true,
"domain_name": "youtube.capetown",
"query_time": "2020-04-01 20:26:50",
"create_date": "2014-09-30",
"expiry_date": "2020-09-30",
"domain_registrar": {
"registrar_name": "MarkMonitor",
"website_url": "markmonitor.com"
},
"registrant_contact": {
"name": "REDACTED",
"city": "REDACTED",
"state": "CA",
"zip_code": "REDACTED",
"country_name": "United States",
"country_code": "US",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin or Tech contacts of the domain name.",
"phone": "REDACTED",
"fax": "REDACTED"
},
"administrative_contact": {
"name": "REDACTED",
"company": "REDACTED",
"city": "REDACTED",
"state": "REDACTED",
"zip_code": "REDACTED",
"country_name": "REDACTED",
"country_code": "REDACTED",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin or Tech contacts of the domain name.",
"phone": "REDACTED",
"fax": "REDACTED"
},
"technical_contact": {
"name": "REDACTED",
"company": "REDACTED",
"city": "REDACTED",
"state": "REDACTED",
"zip_code": "REDACTED",
"country_name": "REDACTED",
"country_code": "REDACTED",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin or Tech contacts of the domain name.",
"phone": "REDACTED",
"fax": "REDACTED"
},
"billing_contact": {
"name": "REDACTED",
"company": "REDACTED",
"city": "REDACTED",
"state": "REDACTED",
"zip_code": "REDACTED",
"country_name": "REDACTED",
"country_code": "REDACTED",
"email_address": "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin or Tech contacts of the domain name.",
"phone": "REDACTED",
"fax": "REDACTED"
},
"name_servers": [
"ns1.google.com",
"ns2.google.com",
"ns3.google.com",
"ns4.google.com"
],
"domain_status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"clientUpdateProhibited"
]
}
]
}
Mini mode response(You can get upto 100 whois record per page)
{
"total_Result": 323,
"total_Pages": 4,
"current_Page": 1,
"whois_domains_historical": [
{
"num": 1,
"domain_name": "youtube.ovh",
"create_date": "2016-08-01",
"expiry_date": "2020-08-01",
"name": "redacted for privacy",
"email": "please query the rdds service of the registrar of record identified in this output for information on how to contact the registrant, admin, or tech contact of the queried domain name.",
"company_name": ""
},
{
"num": 2,
"domain_name": "youtube.ovh",
"create_date": "2016-08-01",
"expiry_date": "2017-08-01",
"name": "redacted for privacy",
"email": "please query the rdds service of the registrar of record identified in this output for information on how to contact the registrant, admin, or tech contact of the queried domain name.",
"company_name": ""
},
{
"num": 3,
"domain_name": "youtube.ovh",
"create_date": "2015-06-05",
"expiry_date": "2016-06-05",
"name": "redacted for privacy",
"email": "please query the rdds service of the registrar of record identified in this output for information on how to contact the registrant, admin, or tech contact of the queried domain name.",
"company_name": ""
},
.
.
.
.
{
"num": 100,
"domain_name": "youtube.la",
"create_date": "2014-08-03",
"expiry_date": "2020-08-03",
"name": "",
"email": "https://whois.nic.la/contact/youtube.la/registrant",
"company_name": ""
}
]
}
HTTP Error Codes
Below mentioned possible type of error and desc
Bulk Domain Lookup
You can use this API to query live bulk whois upto 100 domains. Bulk domain search is available for live and historical whois record. You can upload file with one domain per line on our billing dashboard. We'll send you an email with a link to download whois file in CSV format.
API

{
"domainNames":[
"google.com",
"abc.com",
"google.uk",
"google.us"
]
}
Input parameters: required
apiKey Get your API key on our billing dashboard.
Input parameters: optional
format Two formats are available JSON, XML. If you don't pass 'format' parameter, default format is JSON.
Code Snippet
curl -d '{"domainNames":["google.com","abc.com","google.uk","google.us"]}' -H "Content-Type: application/json" -X POST https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({"domainNames": ["google.com", "abc.com", "google.uk", "google.us"]})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"domainNames\":[\"google.com\",\"abc.com\",\"google.uk\",\"google.us\"]}");
Request request = new Request.Builder()
.url("https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
import http.client
import json
conn = http.client.HTTPSConnection("api.whoisfreaks.com")
payload = json.dumps({"domainNames": ["google.com", "abc.com", "google.uk","google.us"]})
headers = {'Content-Type': 'application/json'}
conn.request("POST", "/v1.0/bulkwhois?apiKey=API_KEY", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"domainNames":[
"google.com",
"abc.com",
"google.uk",
"google.us"
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
require "uri"
require "json"
require "net/http"
url = URI("https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"domainNames": [
"google.com",
"abc.com",
"google.uk",
"google.us"
]
})
response = https.request(request)
puts response.read_body
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"domainNames": [
"google.com",
"abc.com",
"google.uk",
"google.us"
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
var client = new RestClient("https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@" ""domainNames"":[" + "\n" +
@" ""google.com""," + "\n" +
@" ""abc.com""," + "\n" +
@" ""google.uk""," + "\n" +
@" ""google.us""" + "\n" +
@" ]" + "\n" +
@"}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY"
method := "POST"
payload := strings.NewReader(`{
"domainNames":[
"google.com",
"abc.com",
"google.uk",
"google.us"
]
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, "https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\n \"domainNames\":[\n \"google.com\",\n \"abc.com\",\n \"google.uk\",\n \"google.us\"\n ]\n}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var semaphore = DispatchSemaphore (value: 0)
let parameters = "{\n \"domainNames\":[\n \"google.com\",\n \"abc.com\",\n \"google.uk\",\n \"google.us\"\n ]\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://api.whoisfreaks.com/v1.0/bulkwhois?apiKey=API_KEY")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
semaphore.signal()
return
}
print(String(data: data, encoding: .utf8)!)
semaphore.signal()
}
task.resume()
semaphore.wait()
Response
{
"bulk_whois_response": [
{
"status": true,
"domain_name": "google.com",
"query_time": "2022-10-07 07:01:52",
"whois_server": "whois.verisign-grs.com",
"domain_registered": "yes",
"create_date": "1997-09-15",
"update_date": "2019-09-09",
"expiry_date": "2028-09-13",
"domain_registrar": {
"iana_id": "292",
"registrar_name": "MarkMonitor, Inc.",
"whois_server": "whois.markmonitor.com",
"website_url": "http://www.markmonitor.com",
"email_address": "abusecomplaints@markmonitor.com",
"phone_number": "+1.2083895770"
},
"registrant_contact": {...},
"administrative_contact": {...},
"technical_contact": {...},
"name_servers": [
"ns1.google.com",
"NS2.GOOGLE.COM",
"NS1.GOOGLE.COM",
"NS4.GOOGLE.COM",
"NS3.GOOGLE.COM",
"ns2.google.com",
"ns3.google.com",
"ns4.google.com"
],
"domain_status": [...],
"registry_data": {...},
.
.
.
},
{
"status": true,
"domain_name": "abc.com",
"query_time": "2022-10-07 07:01:52",
"whois_server": "whois.verisign-grs.com",
"domain_registered": "yes",
"create_date": "1996-05-22",
"update_date": "2022-04-10",
"expiry_date": "2023-05-23",
"domain_registrar": {
"iana_id": "299",
"registrar_name": "CSC CORPORATE DOMAINS, INC.",
"whois_server": "whois.corporatedomains.com",
"website_url": "www.cscprotectsbrands.com",
"email_address": "domainabuse@cscglobal.com",
"phone_number": "+1.8887802723"
},
"registrant_contact": {...},
"administrative_contact": {...},
"technical_contact": {...},
"name_servers": [
"ns-1869.awsdns-41.co.uk",
"NS-318.AWSDNS-39.COM",
"ns-1368.awsdns-43.org",
"NS-736.AWSDNS-28.NET",
"NS-1368.AWSDNS-43.ORG",
"ns-318.awsdns-39.com",
"NS-1869.AWSDNS-41.CO.UK",
"ns-736.awsdns-28.net"
],
"domain_status": [...],
"registry_data": {...},
.
.
.
},
{
"status": true,
"domain_name": "google.uk",
"query_time": "2022-10-07 07:01:51",
"whois_server": "whois.nic.uk",
"domain_registered": "yes",
"create_date": "2014-06-11",
"update_date": "2022-05-10",
"expiry_date": "2023-06-11",
"domain_registrar": {
"registrar_name": "Markmonitor Inc. [Tag = MARKMONITOR]",
"website_url": "https://www.markmonitor.com"
},
"name_servers": [
"ns1.googledomains.com",
"ns3.googledomains.com",
"ns2.googledomains.com",
"ns4.googledomains.com"
],
.
.
.
},
{
"status": true,
"domain_name": "google.us",
"query_time": "2022-10-07 07:01:51",
"whois_server": "whois.nic.us",
"domain_registered": "yes",
"create_date": "2002-04-19",
"update_date": "2022-03-22",
"expiry_date": "2023-04-18",
"domain_registrar": {
"iana_id": "292",
"registrar_name": "MarkMonitor, Inc.",
"whois_server": "whois.markmonitor.com",
"website_url": "www.markmonitor.com",
"email_address": "abusecomplaints@markmonitor.com",
"phone_number": "+1.2083895740"
},
"registrant_contact": {...},
"administrative_contact": {...},
"technical_contact": {...},
"name_servers": [
"ns1.google.com",
"ns2.google.com",
"ns3.google.com",
"ns4.google.com"
],
"domain_status": [...],
.
.
.
}
]
}
HTTP Error Codes
Below mentioned possible type of error and descCredits Usage API
You need credits in order to use Whoisfreaks API. Live Whois service will charge 1 credit per successfull query for a domain. Historical Whois service will charge 2 credits per domain. Reverse whois service will charge 4 credtis per page. Surcharge requests are only allowed to credits subscribers. You can fetch credits usage and remaining credits information through an API with a time lag of 8 minutes.

Input parameters: required
apiKey Get your API key from our billing dashboard.
Input parameters: optional
format Two formats are available JSON, XML. If you don't pass 'format' parameter, default format is JSON.
Response
You can get API key from our billing dashboard.
{
"apiKey": "API_KEY",
"apiCredits": {
"totalCredits": 1020079,
"servedRequest": 1533
},
"apiSubscription": {
"subscriptionStatus": "deactivated",
"requestLimit": 0,
"servedRequests": 18,
"surchargeRequestLimit": 0,
"servedSurchargeRequests": 0
}
}
FAQs
What is Whois API and how does it work?
Whois API contains a big and well parsed Whois record data that provides all of the Whois information data to a wide-variety of industries against any domain name, such as domain registration details, domain owner email address and many more in JSON/XML formats. Live whois Lookup API crawl whois data in real time. We do not cache live whois records. Historical and reverse whois APIs provide data from our whois database.
Which TLDs are supported by your system?
You can check the current supported TLDs list.
Do you have notification service when API credits are near to an end?
Yes, we will inform you via an email. We send notification email on 80%,90%,100% usage. You can get credits/ subscription usage information from our billing portal or through API.
What happened if API credits have been utilized and my system is using whois API?
We provide surcharge requests on all active API credits subscriptions. You can fetch credits and surcharge requests information through our API. Each subscription plan has different surcharge requests limit.
Do you charge credit on 4xx error status codes in response?
No, We do not charge credits on 4xx status codes in response. All Whois APIs follow same rule for 4xx status codes in response.
How Old You Have Historical records?
We are providing Historical Whois data from 1986.
Is each Whois Record in historical database unique?
Yes, each whois record will be unique. We only save unique whois record of the domains.
What is the minimum number of domain names required for bulk whois?
Bulk whois API can support upto 100 domains. Bulk whois search through our billing dashboard by uploading file with one domain per line can support minimmum of 100 domains and maximum of 3M domains.
Will you charge on failed domains in bulk whois search utility?
We do not charge for failed domains. We only charge for found domains and charge for not found domains in case of live lookup.