IP2WHOIS information lookup REST API helps users to obtain domain information, WHOIS record, by using a domain name. The API returns a comprehensive WHOIS data such as creation date, updated date, expiration date, domain age, the contact information of the registrant, mailing address, phone number, email address, nameservers the domain is using and much more. Please see below for the technical details.

REST API

GET https://api.ip2whois.com/v1

Request Parameter

Parameter Description
key (required) API license key.
domain (required) Domain name.
format (optional) Returns the API response in json (default) or xml format. Valid values: json | xml

Response Parameter

Parameter Description
domain Domain name.
domain_id Domain name ID.
status Domain name status.
create_date Domain name creation date.
update_date Domain name updated date.
expire_date Domain name expiration date.
domain_age Domain name age in day(s).
whois_server WHOIS server name.
registrar_iana_id Registrar IANA ID.
registrar_name Registrar name.
registrar_url Registrar URL.
registrant_name Registrant name.
registrant_organization Registrant organization.
registrant_street_address Registrant street address.
registrant_city Registrant city.
registrant_region Registrant region.
registrant_zip_code Registrant ZIP Code.
registrant_country Registrant country.
registrant_phone Registrant phone number.
registrant_fax Registrant fax number.
registrant_email Registrant email address.
admin_name Admin name.
admin_organization Admin organization.
admin_street_address Admin street address.
admin_city Admin city.
admin_region Admin region.
admin_zip_code Admin ZIP Code.
admin_country Admin country.
admin_phone Admin phone number.
admin_fax Admin fax number.
admin_email Admin email address.
tech_name Tech name.
tech_organization Tech organization.
tech_street_address Tech street address.
tech_city Tech city.
tech_region Tech region.
tech_zip_code Tech ZIP Code.
tech_country Tech country.
tech_phone Tech phone number.
tech_fax Tech fax number.
tech_email Tech email address.
billing_name Billing name.
billing_organization Billing organization.
billing_street_address Billing street address.
billing_city Billing city.
billing_region Billing region.
billing_zip_code Billing ZIP Code.
billing_country Billing country.
billing_phone Billing phone number.
billing_fax Billing fax number.
billing_email Billing email address.
name_servers Name servers
error_code Error code in this query.
error_message More information about the error of this query.

Error Codes

error_code error_message
100 Missing parameter.
101 API key not found.
102 API key disabled.
103 API key expired.
104 Insufficient credits.
105 Unknown error.
106 No data found.
107 Invalid domain.

Result

GET v1
curl "https://api.ip2whois.com/v1?key={your_license_key}&domain={domain_name}"

Sample codes for other languages

RESPONSE
{
    "domain": "greendot.com",
    "domain_id": "600750_DOMAIN_COM-VRSN",
    "status": "registered",
    "create_date": "1997-11-03T00:00:00Z",
    "update_date": "2019-10-29T01:25:57Z",
    "expire_date": "2021-11-02T05:00:00Z",
    "domain_age": 8103,
    "whois_server": "whois.corporatedomains.com",
    "registrar": {
        "iana_id": "299",
        "name": "CSC CORPORATE DOMAINS, INC.",
        "url": "www.cscprotectsbrands.com"
    },
    "registrant": {
        "name": "Admin Role",
        "organization": "Green Dot Corporation",
        "street_address": "",
        "city": "Pasadena",
        "region": "CA",
        "zip_code": "91107",
        "country": "US",
        "phone": "+1.8664120548",
        "fax": "+1.8664120548",
        "email": "adminrole@greendotcorp.com"
    },
    "admin": {
        "name": "Admin Role",
        "organization": "Green Dot Corporation",
        "street_address": "",
        "city": "Pasadena",
        "region": "CA",
        "zip_code": "91107",
        "country": "US",
        "phone": "+1.8664120548",
        "fax": "+1.8664120548",
        "email": "adminrole@greendotcorp.com"
    },
    "tech": {
        "name": "Admin Role",
        "organization": "Green Dot Corporation",
        "street_address": "",
        "city": "Pasadena",
        "region": "CA",
        "zip_code": "91107",
        "country": "US",
        "phone": "+1.8664120548",
        "fax": "+1.8664120548",
        "email": "adminrole@greendotcorp.com"
    },
    "billing": {
        "name": "",
        "organization": "",
        "street_address": "",
        "city": "",
        "region": "",
        "zip_code": "",
        "country": "",
        "phone": "",
        "fax": "",
        "email": ""
    },
    "nameservers": "ns1.greendotdns.com, ns2.greendotdns.com",
    "error_code": "",
    "error_message": ""
}

Sample Code

<?php
$apiKey = 'Enter_License_Key';
$params['domain'] = 'Enter_Domain_Name';

$query = '';

foreach($params as $key=>$value){
    $query .= '&' . $key . '=' . rawurlencode($value);
}

$result = file_get_contents('https://api.ip2whois.com/v1?key=' . $apiKey . $query);

$data = json_decode($result);

print_r($data);
?>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Hashtable;
import java.util.Map;

public class test {
    public static void main(String[] args) {
        try {
            String key = "Enter_License_Key";
            Hashtable<String, String> data = new Hashtable<String, String>();
            data.put("domain", "Enter_Domain_Name");
            
            String datastr = "";
            for (Map.Entry<String,String> entry : data.entrySet()) {
                datastr += "&" + entry.getKey() + "=" + URLEncoder.encode(entry.getValue(), "UTF-8");
            }
            URL url = new URL("https://api.ip2whois.com/v1?key=" + key + datastr);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("Accept", "application/json");
            
            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }
            
            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
            
            String output;
            
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }
            conn.disconnect();
        }
        catch (MalformedURLException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Imports System.Net
Imports System.IO
Imports System.Uri

Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim request As HttpWebRequest = Nothing
        Dim response As HttpWebResponse = Nothing

        Dim apiKey As String = "Enter_License_Key"
        Dim data As New Dictionary(Of String, String)

        data.Add("domain", "Enter_Domain_Name")
        Dim datastr As String = String.Join("&", data.[Select](Function(x) x.Key & "=" & EscapeDataString(x.Value)).ToArray())

        request = Net.WebRequest.Create("https://api.ip2whois.com/v1?key=" & apiKey & "&" & datastr)

        request.Method = "GET"
        response = request.GetResponse()

        Dim reader As System.IO.StreamReader = New IO.StreamReader(response.GetResponseStream())

        Page.Response.Write(reader.ReadToEnd)

    End Sub

End Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Net;
using System.IO;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            WebRequest request = null;
            WebResponse response = null;

            string apiKey = "Enter_License_Key";
            Dictionary<string, string> data = new Dictionary<string, string>();

            data.Add("domain", "Enter_Domain_Name");
            string datastr = string.Join("&", data.Select(x => x.Key + "=" + System.Uri.EscapeDataString(x.Value)).ToArray());

            request = System.Net.WebRequest.Create("https://api.ip2whois.com/v1?key=" + apiKey + "&" + datastr);

            request.Method = "GET";
            response = request.GetResponse();

            System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());

            Page.Response.Write(reader.ReadToEnd());
        }
    }
}
import httplib
import urllib
import hashlib

p = { 'key': 'Enter_License_Key', 'domain': 'Enter_Domain_Name' }

conn = httplib.HTTPConnection("api.ip2whois.com")
conn.request("GET", "/v1?" + urllib.urlencode(p))
res = conn.getresponse()
print res.read()
require 'uri'
require 'net/http'

uri = URI.parse("https://api.ip2whois.com/v1")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({
  'key' => 'Enter_License_Key',
  'domain' => 'Enter_Domain_Name'
})

response = http.request(request)

if response == nil
  return false
else
  return response
end

Try WHOIS Domain REST API to lookup domain information for FREE.