close page icon

API Documentation

WhoAPI is a RESTful based API. Communication is made through a normal HTTP requests.
Requests are made as strings using HTTP GET method. All outputs are provided as a JSON formatted response.


Authentication is needed in order to use the API, and for this a WhoAPI account is required. You'll need your API key every time you make a request. You have the option to limit API requests by a certain IP addresses in your account settings.

You can find your unique API key inside the "My account" section on the left once you register.

Setting up input request

  • Get requests should provide their parameters as a request string, part of the URL.
  • GET
  • We suggest you test the API requests via the API console before you start your implementation.
  • You have to be logged in to access the API console at:
  • When you make an API request, you have to specify the value of these parameters:
full domain name, including the tld e.g.
type of the request are explained separately on API page
your private unique api key
rr *optional
returns your request in json result (useful for testing your scripts)
ip *optional
ip address for API functions like ping, not mandatory
port *optional
port number, additional field for API function pingservice
fullurl *optional
some functions allow full URL e.g. ranks


Example: In the professional package you can either make 8 whois queries per minute OR 50 queries on any other API. We don't measure the number of queries you make in a month.

Whois API Standard Professional Enterprise
2 / min 8 / min 30 / min
Whois requests / month 86,400 345,600 1,296,000
Console Check icon Check icon Check icon
Register without a credit card Check icon Check icon Check icon
Money back guarantee Check icon Check icon Check icon

$49 / Month
$499 / Year
$199 / Month
$1999 / Year
$499 / Month
$4999 / Year
Order now Order now Order now

Default output variables

You will always get these fields in the response:
status code for your request, check all the codes here
description of the status in the plain english
Let's make an example request: (check domain availiability for
Output in the JSON format:
 "status_desc":"Request successful!",
 "taken": "1",
 "method": "whois",
 "ip": ""

Result is stored in the "taken" value which is in this case "1", same as "Domain not available for registration".
Each function has a set of its own resulting variables.


status code description
0 Request successful!
1 Invalid characters in domain name.
2 Use of double dot in domain name.
3 Domain name starting or ending with dash or dot.
4 TLD does not exist.
5 Too many characters in domain name (without TLD), maximum length is 64.
6 Too many characters in TLD.
7 Whois server not yet supported. We are adding new servers on a weekly basis.
8 Missing request type in 'r' parameter.
9 Invalid request type in 'r' parameter.
10 API key invalid.
11 Invalid characters in 'port' parameter.
12 Invalid API account.
13 Account suspended.
14 Account canceled.
15 IP not whitelisted in Account settings.
16 Too many tries, your IP has been blocked for a minute.
17 Query limit exceeded.
18 Query high usage limit exceeded.
19 Missing domain name in 'domain' parameter.
20 Invalid IP address in 'ip' parameter.
21 Invalid 'fullurl' parameter, must be fully qualified URI.
22 Invalid node data, only numeric characters allowed.
23 Missing 'port' parameter.
24 Missing valid TLD in domain name.
25 Unknown output type.
26 Timeout getting the result from a node.
27 Fatal error detected in result from a node.
28 Unknown error detected in result from a node.
29 Cannot resolve domain name, IP needed.
30 Problem with the WHOIS server, please try again later.
31 WHOIS limit reached for used WhoAPI node. Please make a new request.
32 Cannot resolve domain availability by using the requested method.
Scroll to top