This REST API enables users to lookup for a 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, registrant information and so on. Please see below for the technical details.

REST API

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

Request

Parameter Description
key (required) Key.
Enter free value for unlimited calls. Free usage policy applies.
domain (required) Domain name.

Response

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.
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.
GET v1
curl "https://api.ip2whois.com/v1?key=free&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