Developers are looking for parsed Whois JSON output for one simple reason. Its utility is extensive! In this article, I will explain what a Whois JSON output is, why it’s useful, what it looks like, and where you can get it. Let’s start by separating and explaining what each of these keywords is and what they mean. Whois – JSON – output.
What is a Whois?
When we say Whois, we really think of a Whois record. Few people know that there are two versions of Whois records. A thin whois (held by the registry) and a thick whois (held by the registrar). These Whois records show us (humans and computer systems) vast information about all the registered domain names.
The latest information shows us that there are over 300 million domain names registered. This automatically means that there are over 300 million whois records. Whois is a protocol similar to HTTP (Hypertext Transfer Protocol).
Whois about domain names vs Whois on IP addresses
You could make a whois request on domain names (the one I briefly described), and you could do a very similar whois check on any IP address. Different types of information will appear, but essential it works very similarly.
When you register a new IP address, you need to verify ownership (just like with a domain name). In the article you are reading, I will write about the first one, where we check Whois records for domain names, not IP addresses.
Whois, WHOIS, Who is, WhoIS
People around the world use different letters when it comes to the word Whois. Whois is not an acronym of 5 words forming Whois. It’s a single word that is pronounced the same as you would ask someone, “Who is?” it’s the same.
Whois is short for “Who is the owner.” And that’s exactly what we find, the owner’s information about a domain name and corresponding domain registrar, web hosting provider, and other data. Because of the shaky future of whois, at WhoAPI we decided to redact all owners’ private information, such as email addresses as well as physical addresses. Therefore, when it comes to our JSON Whois output, we do not deliver the owner’s information.
This is potentially a good thing because if lawyers come knocking on your door, you don’t have to explain how you acquired private information without the owner’s consent. Also, at WhoAPI we sleep better at night, knowing that spammers aren’t using our services to spam innocent domain owners.
What is a JSON?
Unlike Whois, JSON is an acronym. JavaScript Object Notation. The great thing about JSON is that it’s easy for humans to read and write. It is easy for machines to parse and generate. As you can see by another JSON Whois example below, even if you are not a developer, it’s very easy to read it.
Mayor difference between the Whois record I just described earlier and the JSON Whois below is that JSON Whois is easy for machines to parse and generate. When JSON.org website says “machines,” they really mean software and other applications. For example, a domain expiration monitoring service would be such a “machine.”
The screenshot you see above was taken from within the WhoAPI dashboard. This is an example of an API request, with the Whois JSON output example. In order to get a Whois JSON output, you need to make a Whois API request. If you want to know how to make a Whois Lookup API request, you can read the instructions here.
Similar to JSON output, there is also XML output. More on Whois XML output, read in this article.
JSON lets you and your application access each dataset that’s now parsed. Originally Whois record (the protocol described earlier) existed as a chunk of text. This original text isn’t readable by machines. Each text of the Whois record needs to be parsed after a Whois lookup. And then delivered in JSON format.
What Whois outputs do we have?
And lastly, let’s explain the “output” keyword in Whois JSON output. As I’ve just explained, Whois, in its original form, is a protocol. When you make a whois request via that protocol, as a response (output), you get a chunk of text (a whois record).
That’s OK if you are a human and you are checking a single domain name. But, if you have a cybersecurity application, and you need to white-flag, red-flag millions of domain names, and you need to check each, then it’s not going to work.
If you need to determine domain age for millions of domain names. Again, raw whois record checking one by one is not going to work.
In short, we could say that right now, we have three different Whois outputs.
- Original Whois record in textual format
- Parsed Whois in XML output
- Parsed Whois in JSON output
- Raw Whois in both XML and JSON output
Naturally, as some of you might have predicted, we could have a raw whois with unparsed data, which also shows up in JSON output or XML output. As a matter of fact, before all the privacy concerns, our Whois API also had both Raw Whois and parsed Whois. But as a company owner, I decided we wouldn’t be carrying sensitive information such as domain owner emails. It remains to be seen what will happen with Whois in the future, as this is still an evolving situation and outside the scope of this article.
Where can we find Whois JSON output?
If you missed it before, I’ll quickly reiterate. Whois JSON output is a response after making a Whois API request. In order to make an API request, you need to signup and get an API key. If you signup at WhoAPI, you are entitled to a complimentary one-time 10,000 API requests for testing purposes.
As shown in the screenshot above, you don’t need to write any code to see an example of Whois JSON output. Once you log in to WhoAPI dashboard, just type in the domain name you want to check, and with a click of a button, you will get a Whois JSON output for that domain name.
In case you do want to make Whois API checks programmatically, and need code examples in PHP, JavaScript, Ruby, Python, Java, Objective C, or C#(.NET), then you should check out our Whois API code examples.
Another important fact you might have missed is that Whois JSON output is used when you need to check millions of domain names programmatically. That’s when the parsed Whois comes in handy with its JSON output. With this JSON output, your application can then read the data. What exactly?
What do we get in Whois JSON output?
When you make a Whois API request, the following data arrives in a Whois JSON output:
{
"status": "0",
"whois_server": "whois.namebright.com",
"status_desc": "Successfully processed",
"limit_hit": false,
"registered": true,
"whois_raw": "Disabled due to GDPR",
"disclaimer": "",
"premium": false,
"generic_whois": true,
"registered_trusted": true,
"registry_domain_id": "1640154939_DOMAIN_COM-VRSN",
"registrar_iana_id": "1441",
"date_created": "2011-02-14 15:31:26",
"date_expires": "2025-02-14 15:31:26",
"date_updated": "2023-04-22 04:43:55",
"domain_status": [
"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": "Namebright",
"contacts": [
{
"type": "registrar",
"name": "",
"organization": "TurnCommerce, Inc. DBA NameBright.com",
"phone": "+1.7204960020",
"email": "abuse@NameBright.com",
"full_address": ""
},
{
"type": "admin",
"name": "Disabled due to GDPR",
"organization": "Redacted for GDPR privacy",
"street": "Disabled due to GDPR",
"city": "Disabled due to GDPR",
"zipcode": "Disabled due to GDPR",
"state": "Redacted for GDPR privacy",
"country": "Redacted for GDPR privacy",
"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": true,
"_cached_datetime": "2023-05-20 19:15:09",
"requests_available": 276
}
As you can see, when it comes to WhoAPI’s Whois JSON output, a lot of it has been removed due to GDPR, but also, California privacy rights act, Brazil passed the General Data Protection Law in 2018, and because of a negative sentiment of giving spammers more emails to spam. What do we get?
- Is the domain name registered?
- When the domain name is registered
- When the domain name expires
- Nameservers – which web hosting the domain name is pointed to
- Registrar name – where the domain name is registered
- In this particular Whois JSON output, we can also see if the data is cached or not
- Domain status (what is domain status is explained in the article I wrote about domain life cycles)
- Registrar information
- Other data
Conclusion
I hope this article made it a bit more clear and pointed you in the right direction on how to get what you are looking for. Whois protocol was invented in the 80s so that technology has been around since the dawn of the Internet. JSON, on the other hand, was invented in April 2001, which is also not that new, so a fair amount of developers have had contact with it.
That’s it for now. Keep coding and making API requests while we’ll keep parsing and returning the data.
Featured image created with the photo by Sigmund.