API Documentation

All of our services are also available via a REST-API for developers to automate your infrastructure administration.


Register, Transfer & Manage your domains from a third-party interface via our powerful REST API.

POST Parameters
Parameter Type Possible values Description Required
service string "Domain" Choose one of our services Yes
action string "Register", "Transfer", "Renew", "RequestEPP", "UpdateLockingStatus", "UpdateNameservers", "UpdateWhoisInfo", "GetLockingStatus", "GetWhoisInfo", "GetNameservers" Service action Yes
domain string Ex: "domain.com" Your new domain to be registered, transferred Yes* ("Register", "Transfer")
regperiod num 1-5 Domain registration period in years. No
domainandrenewperiod string[] array('domain.com' => '1') Domain renew period in years. Yes* ("Renew")
eppcode string Ex: "1uH8d8h7Y!4" Domain Auth Code Yes* ("Transfer")
nameserver1 string Ex: "ns1.illyhosting.com" Name server 1 for new domain. No
nameserver2 string Ex: "ns2.illyhosting.com" Name server 2 for new domain. No
nameserver3 string Ex: "ns3.illyhosting.com" Name server 3 for new domain. No
nameserver4 string Ex: "ns4.illyhosting.com" Name server 4 for new domain. No
promocode string Ex: "20OFF20SALE" Apply promo code for this order. No
domainid int Ex: "5" Your domain id Yes* ("RequestEPP", "UpdateLockingStatus", "UpdateNameservers", "UpdateWhoisInfo", "GetLockingStatus", "GetWhoisInfo", "GetNameservers")
domainwhois_xml string Find example below this table. Domain whois information Yes* ("UpdateWhoisInfo")
lockstatus bool "true", "false" Should the domain lock be turned on or off Yes* ("UpdateLockingStatus")

Domain Whois Example (domainwhois_xml):

<contactdetails><Registrant><Name>Test Client</Name><Email>test@testemail.com</Email><Company>WHMCS</Company><Address1>123 Test Street</Address1><Address2></Address2><Address3></Address3><City>Test</City><State>Test</State><Zip>TE5 5ST</Zip><Country>GB</Country><Tel_Country_Code>44</Tel_Country_Code><Telephone>1234567890</Telephone></Registrant></contactdetails>

Example Request (PHP Curl)
//API Endpoint 
$apiurl = "https://api.illyhosting.com/"; //API ENDPOINT URL with Trailing Slash 

//Your API credentials generated in our control panel
$api_identifier = "your_api_credential_identifier";
$api_secret = "your_api_credential_secret";

//Post values
$postfields = array(
	'api_identifier' => $api_identifier,
	'api_secret' => $api_secret,
	'service' => 'Domain',
	'action' => 'Register',
	'domain' => 'domain.com',
	'regperiod' => '1',
	'ns1' => 'ns1.illyhosting.com',
	'ns2' => 'ns2.illyhosting.com',
	//'domainandrenewperiod' => array('domain.com' => '1')
	//'eppcode' => 'AAAXXXCCCDDD',
	//'domainid' => '72',
	//'domainwhois_xml' => '', 
	//'lockstatus' => true,
	//'promocode' => '',

//Call the API 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiurl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
$response = curl_exec($ch);
if (curl_error($ch)) {
    die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch));

// Decode response
$jsonData = json_decode($response, true);

// Dump array structure

Example Response (JSON)
	"result": "success", 
	"message": "Domain Registered", 
	"orderdetails": { 
		"id": 1, 
		"regtype": "Register", 
		"domainname": "domain.com", 
		"regperiod": 1, 
		"regdate": "2020-04-25", 
		"nextduedate": "2021-04-25", 
		"dnsmanagement": 0, 
		"emailforwarding": 0, 
		"idprotection": 0, 
		"donotrenew": 0 } 

Possible Error Responses
  • Incorrect Domain Format
  • Domain can not be empty
  • Domain registration period can not be more than 5 years (Allowed values: 1-5)
  • Registration period on domain transfer can not be more than 5 years (Allowed values: 1-5)
  • Renew period value must be numeric
  • Required for domain renew: "domainandrenewperiod" field can not be empty
  • Required for domain transfer: EPP Code can not be empty
  • Your account do not have enough credit balance.
  • Unable to add order, your account status is closed
  • Other error message

Note: Be careful when updating name servers, if nameservers are not set, domain name servers will be removed.

If you are using WHMCS, click here to download our WHMCS Plugin.