Our research on four-letter .net domains

As you may know, back in December 2013 we did a large domain availability research and proved that all 4-letter .com domain names are registered (at least the ones consisting only of consonants and vowels of the English alphabet). Here’s a quote:

We used our domain availability API to check all the 4 letter combinations .com domains. For example

AAAA.COM
AAAB.COM
AAAC.COM
AAAD.COM
up to….
ZZZX.COM
ZZZY.COM
ZZZZ.COM

What we confirmed was that all the four-letter .com domains are registered. We haven’t tried numbers, dashes or IDNs, just 26 letters of the English alphabet. This takes us to 456,976 combinations, or domains.

Today, we asked ourselves if there are any four-letter .net domain names available for registration. Here’s what we found.

There are still four-letter .net domains available for registration!

Similar to our four-letter .com research, we checked 26 letters of the English alphabet and all 456,976 combinations.

From
AAAA.NET
AAAB.NET
AAAC.NET
AAAD.NET
up to….
ZZZX.NET
ZZZY.NET
ZZZZ.NET

We didn’t check any numbers, dashes or IDNs, just letters. As you might have guessed, there are some popular brands that registered their .net counterparts and redirected this to their main .com domain name. Here are a few:

  • WSJE.NET (The Wall Street Journal)
  • MTVU.NET (MTV)
  • CAVS.NET (The Cleveland Cavaliers- NBA)
  • SUNS.NET (The Phoenix Suns – NBA)

We also found that soap.net is redirecting to abc.com. So sope is not actually “sope-sope”, it’s sope/TV series. But, I digress… It’s not a surprise that most great four-letter .net domain names are registered. Here are a few of them:

  • CARS.NET
  • CATS.NET
  • DOGS.NET
  • COOL.NET
  • FILM.NET
  • HERO.NET
  • HUGE.NET
  • LOGO.NET
  • LUCK.NET
  • WINE.NET

As you can see in the image below, on list of recent sales, ICON.NET sold for $11,200 back in 17th September.

Out of 456,976 four-letter .net that we checked, there are still 177,717 four-letter .net domain names that are available for registration.

Available four-letter .net domains

If you would like to purchase this list of available four-letter .net domains, please contact us (chat in the bottom right corner). If there are enough interested parties we may add this option as a product to our shop for easier purchasing in the future.

Otherwise, you can use our Domain Availability API, and make these checks yourself. You can find the instructions below.

Examples of four-letter .net domains that are available for registration:

  • FZMO.NET
  • IEQK.NET
  • AUWH.NET

Are these domain names worth anything? It’s hard to say, but we can look into more recent four-letter .net domain name sales on namebio.com.

Recent sales of four-letter .net domain names

Recent sales of four-letter .net domain names [source: namebio.com]

How to code a bulk domain availability checker with PHP

To check all 456,976 four-letter .net domains we used WhoAPI Domain Availability API also known as Taken API. So you will need to have a working account with an API key. Also, if you are going to check thousands of domain names, you will need to upgrade your account with a paid package.

The following PHP function below will return taken API result for a single domain:

<?php
/**
* WhoAPI request to Taken API
* 
* @param string Domain name
* @return array Result
*/
function request_api($domain_name) {   
    /*
        Settings
    */

    // WhoAPI url
    $url = "https://api.whoapi.com/?"
        ."r=taken"
        ."&apikey=".YOUR_API_KEY
        ."&domain=".$domain_name
        ;

    /*
        Request
    */

    $curl = curl_init($url);

    // Curl settings
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FAILONERROR, true);
    curl_setopt($curl, CURLOPT_TIMEOUT, 60);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);

    // Make request
    $result = curl_exec($curl);
    $error = curl_error($curl);
    curl_close($curl);

    /*
        Validate
    */

    // Error while processing?
    if (!empty($error)) {
        throw new Exception("API error:\n".$url."\n".$error);
    }

    // Empty result
    if (empty($result)) {
        throw new Exception("API reply is empty:\n".$url);
    }

    // Decode the reply
    $result_decoded = json_decode($result, true);

    // Error while decoding?
    if (empty($result_decoded)) {
        throw new Exception("API decoding failed:\n".$url."\n".$result);
    }

    // Status is missing?
    if (!isset($result_decoded['status'])) {
        throw new Exception("API status is missing:\n".$url."\n".var_export($result_decoded, true));
    }

    // Status is invalid?
    if ((int)$result_decoded['status'] !== 0) {
        throw new Exception("API status is invalid:\n".$url."\n".var_export($result_decoded, true));
    }

    // Missing taken field?
    if (!isset($result_decoded['taken'])) {
        throw new Exception("Missing taken field in API status:\n".$url."\n".var_export($result_decoded, true));
    }

    /*
        Return result
    */

    return $result_decoded;
}
?>

Here is an example of how to use this function for an array of domains:

<?php
// Array of domains
$domains = ['test.net'];

foreach ($domains as $current_domain) {
    try {
        $api_result = request_api($current_domain);
    } catch (Exception $e) {
        // Here should be your error processing
    }

    if ((int)$api_result['taken'] === 1) {
        echo "Domain '$current_domain' is taken\n";
    } else {
        echo "Domain '$current_domain' is NOT taken\n";
    }
}
?>

Post a Comment