NAV

Introduction

Welcome to the SupportHost API documentation for domain reselling!

With our APIs, you can easily and quickly manage all operations related to domain registration, transfer, and management directly from your own system. You can use our WHMCS module or access the APIs directly.

You will find clear and well-structured endpoints to integrate our services into your software or control panels.

The documentation includes example calls in various programming languages to make development easier.

If you are looking for practical guides and step-by-step tutorials, visit our tutorial section on the SupportHost website.

Happy integrating!

Authentication

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/account/balance',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

To access the SupportHost API, you must use a personal API Key.

You can create your API Key and authorize the allowed IP addresses directly from your client area.
See the detailed guide in our tutorial section: How to create an API Key and authorize an IP.

The API Key must be sent in every HTTP request in the header field X-Api-Key as in the example. You must also send the email you use in the client area in the X-Email header.

Account

This section contains all the endpoints to manage your reseller account.

Here you will find methods to check the available credit, count active domains, list domain details, and perform other operations related to your reseller account.

GET /account/balance

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/account/balance',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows querying the system to obtain the currently available credit associated with the user account.

Request limit

300 requests every 10 minutes.

Request parameters

None, only login data is required.

{
  "result": "success",
  "data": {
    "credit": "3.00",
    "currency": "EUR"
  }
}

Response parameters

Parameter Type Description
result string Response status (e.g., "success" or "error")
data object Contains details of the available credit
credit string Amount of available credit (e.g., "3.00")
currency string Currency of the credit (e.g., "EUR")

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.

GET /account/domaincount

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/account/alldomains',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;
?>

Description

This endpoint allows querying the system to obtain a count of all active domains, divided by extension, as well as a total count.

Request limit

300 requests every 10 minutes.

Request parameters

None, only login data is required.

{
  "result": "success",
  "count": 36,
  "domains": {
    "it": 22,
    "com": 6,
    "net": 3,
    "eu": 2,
    "uk": 1,
    "us": 1,
    "xyz": 1
  }
}

Response parameters

Parameter Type Description
result string The result of the operation: success or error
count int Total number of active domains
domains json JSON object containing the count per extension

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.

GET /account/alldomains

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/account/alldomains',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows querying the system to obtain a list of only active domains with their related information. Only active domains are shown.

Request limit

300 requests every 10 minutes.

Request parameters

None, only login data is required.

{
    "result": "success",
    "count": 57,
    "domains": [
        {
            "supporthost.com": {
                "domain": "supporthost.com",
                "status": "Active",
                "recurringamount": "9.84",
                "registrationperiod": 1,
                "registrationdate": "2014-02-15",
                "expirydate": "2026-07-03",
                "nextduedate": "2026-07-03",
                "donotrenew": 0
            },
            "supporthost.com": ...
        }
    ]
}

Response parameters

Parameter Type Description
result string The result of the operation: success or error
count int Total number of domains
domains json JSON object containing the list and details of all domains present in the account

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.

GET /account/activedomains

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/account/activedomains',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows querying the system to obtain a list of only active domains with their related information. Only active domains are shown.

Request limit

300 requests every 10 minutes.

Request parameters

None, only login data is required.

{
    "result": "success",
    "count": 36,
    "domains": [
        {
            "supporthost.com": {
                "domain": "supporthost.com",
                "status": "Active",
                "recurringamount": "9.84",
                "registrationperiod": 1,
                "registrationdate": "2014-02-15",
                "expirydate": "2026-07-03",
                "nextduedate": "2026-07-03",
                "donotrenew": 0
            },
            "supporthost.com": ...
        }
    ]
}

Response parameters

Parameter Type Description
result string The result of the operation: success or error
count int Total number of active domains
domains json JSON object containing the list and details of all domains present in the account

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.

GET /account/tldprices

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/account/tldprices',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows querying the system to obtain domain prices for your reseller account. Prices vary depending on the number of active domains in your account. In addition to the price, the currency is indicated in the JSON response.

Request limit

300 requests every 10 minutes.

Request parameters

None, only login data is required.

{
    "result": "success",
    "currency": {
        "id": 1,
        "code": "EUR",
        "prefix": "",
        "suffix": "€",
        "format": 3,
        "rate": "1.00000"
    },
    "pricing": {
        "it": {
            "categories": [
                "Other"
            ],
            "addons": {
                "dns": true,
                "email": true,
                "idprotect": false
            },
            "group": "",
            "register": {
                "1": "5.99",
                "2": "11.98",
                "3": "17.97",
                "4": "23.96",
                "5": "29.95",
                "6": "35.94",
                "7": "41.93",
                "8": "47.92",
                "9": "53.91",
                "10": "59.90"
            },
            "transfer": {
                "1": "5.99",
                "2": "11.98",
                "3": "17.97",
                "4": "23.96",
                "5": "29.95",
                "6": "35.94",
                "7": "41.93",
                "8": "47.92",
                "9": "53.91",
                "10": "59.90"
            },
            "renew": {
                "1": "6.49",
                "2": "12.98",
                "3": "19.47",
                "4": "25.96",
                "5": "32.45",
                "6": "38.94",
                "7": "45.43",
                "8": "51.92",
                "9": "58.41",
                "10": "64.90"
            },
            "grace_period": {
                "days": 10,
                "price": "0.00"
            },
            "grace_period_days": 10,
            "grace_period_fee": "0.00",
            "redemption_period": {
                "days": 30,
                "price": "7.00"
            },
            "redemption_period_days": 30,
            "redemption_period_fee": "7.00"
        },
        "eu": ...
    }
}

Response parameters

Parameter Type Description
result string Response status (e.g. "success" or "error")
currency json JSON object containing details related to your account's currency
pricing json. JSON object listing all available extensions and their respective prices

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.

Domain

This section contains the endpoints for managing domains, including registration, transfer, renewal, and domain data modification.

You will find the main functions to operate on domains via API in a simple and fast way.

GET /domain/availability

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/availability?domain=domain.com',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to query the system to obtain the availability of a specific domain. The fact that a domain is available means it is free for registration.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name to check Required
{
    "result": "success",
    "domain": "domain.com",
    "status": "available",
    "whois": null
}

Response parameters

Parameter Type Description
result string The result of the operation: success or error
domain string The domain we are checking
status json The status of the domain: available or unavailable
whois string/null null if the domain is free, a text string containing WHOIS information if the domain is already registered

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
The domain field is required.

GET /domain/info

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/info?domain=supporthost.com&whois=yes&nameservers=yes&lockstatus=yes&epp=yes',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to query the system to obtain information about a domain in your account.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The full name of the domain to query Yes
whois string Indicates whether to include WHOIS information ("yes" or "no") No
nameservers string Indicates whether to include nameservers ("yes" or "no") No
lockstatus string Indicates whether to include the domain lock status ("yes" or "no") No
epp string Indicates whether to include the EPP code ("yes" or "no") No
{
    "result": "success",
    "domain": "supporthost.com",
    "data": {
        "domain": "supporthost.com",
        "status": "Active",
        "recurringamount": "9.84",
        "registrationperiod": 1,
        "registrationdate": "2014-02-15",
        "expirydate": "2026-07-03",
        "nextduedate": "2026-07-03",
        "donotrenew": 0
    },
    "whoisData": {
        "result": "success",
        "Registrant": {
            "Name": "xxxxxxxxxx",
            "Company": "xxxxxxxxxx",
            "City": "xxxxxxxxxx",
            "State": "xxxxxxxxxx",
            "Country": "xxxxxxxxxx",
            "Postcode": "xxxxxxxxxx",
            "Phone_Number": "xxxxxxxxxx",
            "Email": "xxxxxxxxxx",
            "Address": "xxxxxxxxxx",
            "entityType": "1",
            "itNationality": "IT",
            "regCode": "xxxxxxxxxx",
            "consentForPublishing": "false"
        },
        "Admin": {
            "Name": "xxxxxxxxxx",
            "Company": "xxxxxxxxxx",
            "City": "xxxxxxxxxx",
            "State": "xxxxxxxxxx",
            "Country": "xxxxxxxxxx",
            "Postcode": "xxxxxxxxxx",
            "Phone_Number": "xxxxxxxxxx",
            "Email": "xxxxxxxxxx",
            "Address": "xxxxxxxxxx3"
        },
        "Tech": {
            "Name": "xxxxxxxxxx",
            "Company": "xxxxxxxxxx",
            "City": "xxxxxxxxxx",
            "State": "xxxxxxxxxx",
            "Country": "xxxxxxxxxx",
            "Postcode": "xxxxxxxxxx",
            "Phone_Number": "xxxxxxxxxx",
            "Email": "xxxxxxxxxx",
            "Address": "xxxxxxxxxx3"
        }
    },
    "nameservers": {
        "result": "success",
        "ns1": "glen.ns.cloudflare.com",
        "ns2": "jamie.ns.cloudflare.com"
    },
    "lockstatus": {
        "result": "success",
        "lockstatus": "Unknown"
    },
    "epp": {
        "result": "success",
        "eppcode": "xxxxxxxxxx5"
    }
}

Response parameters

Parameter Type Description
result string Operation status: "success" or "error"
domain string The domain checked
data json Object containing the basic domain information: status, renewal cost, registration, renewal and expiry dates, auto-renew status
whoisData json Object containing the domain's WHOIS data
nameservers json Object containing the domain's nameservers
lockstatus json Object containing the domain lock status
epp json Object containing the domain's EPP (auth code)

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
The domain field is required.
Domain not found in your account

POST /domain/register

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/register',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "xxxxx.com",
    "eppcode": "xxxxxx",
    "firstname": "xxxxxx",
    "lastname": "xxxxxx",
    "companyname": "xxxxxx",
    "contactemail": "[email protected]",
    "address1": "xxxxxx 123",
    "address2": "xxxxxx",
    "city": "xxxxxx",
    "state": "RM",
    "postcode": "12345",
    "country": "IT",
    "phonenumber": "+1.0000000000",
    "idnLanguage": "",
    "regperiod": "0",
    "nameserver1": "ns1.domain.com",
    "nameserver2": "ns2.domain.com",
    "idprotection": "",
    "additionalfields": {
        "entity": "1",
        "taxid": "xxxxxx",
        "itterms": "on",
        "whois": "on"
    }
}',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to register a new domain. If there have been errors, you can send the registration request multiple times; the new data will correct the data sent with previous requests. There is no limit on the number of times you can send the same registration request for the same domain.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name to register Yes
firstname string Registrant's first name Yes
lastname string Registrant's last name Yes
companyname string Company name. Required only if the domain is registered for a company No
contactemail string Registrant's email Yes
address1 string First line of the registrant's address Yes
address2 string Second line of the registrant's address No
city string City of the registrant's address Yes
state string State of the registrant's address. In case of an address in Italy, the province abbreviation Yes
postcode string Postal code of the registrant's address Yes
country string Country of the registrant's address, two letters Yes
phonenumber string Registrant's phone number in the format +1.0000000000 Yes
idnLanguage string If it is an IDN domain, specify the IDN language No
regperiod int Registration period expressed in years, from 1 to 10. Yes
nameserver1 string First nameserver of the domain, e.g., ns1.domain Yes
nameserver2 string Second nameserver of the domain, e.g., ns2.domain.it Yes
nameserver3 string Optional additional nameserver No
nameserver4 string Optional additional nameserver No
nameserver5 string Optional additional nameserver No
idprotection boolean false if you do not want to activate WHOIS privacy, true if you want to activate it Yes
additionalfields array An array containing additional fields for domains. Details in the table below No

Additional fields

Some domains have additional required fields necessary for registration.

Extension Additional field Description
.it entity An integer number from 1 to 7 as indicated by nic: 1 Italian and foreign natural persons, 2 Companies, 3 Sole proprietorships, freelancers / professional orders, 4 Non-profit entities, 5 Public entities, 6 Other subjects, 7 Foreign subjects equivalent to the previous except natural persons
.it taxid Tax code if “entity” is an Italian natural person. Document number if foreign natural person. VAT number (numbers only) in all other cases; in case of non-profit entities it can be n.a. (if they do not have VAT or numeric tax code)
.it whois true or false depending on whether you want to publish personal data or not. The choice is possible only for natural persons; for all other “entity” it must necessarily be true
.it itterms Acceptance of the nic.it terms, acceptance of the terms is required
{
    "result": "success",
    "domain": "supporthost.com",
    "message": "Domain registered successfully"
}

Response parameters

Parameter Type Description
result string The result of the operation: success or error
domain string The domain we are registering
message string The message, success or error

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Validations: for all mandatory fields we perform validations, if the validation fails you receive an error message.
The domain is not available for registration
Domain is already pending in your account. Go to the SupportHost clientarea and pay the invoice to register it
Domain is already in your account
Errors from the registry: if the registry returns an error we report it in the registration error

POST /domain/transfer

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/transfer',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "xxxxx.com",
    "eppcode": "xxxxxx",
    "firstname": "xxxxxx",
    "lastname": "xxxxxx",
    "companyname": "xxxxxx",
    "contactemail": "[email protected]",
    "address1": "xxxxxx 123",
    "address2": "xxxxxx",
    "city": "xxxxxx",
    "state": "RM",
    "postcode": "12345",
    "country": "IT",
    "phonenumber": "+1.0000000000",
    "idnLanguage": "",
    "regperiod": "0",
    "nameserver1": "ns1.domain.com",
    "nameserver2": "ns2.domain.com",
    "idprotection": "",
    "additionalfields": {
        "entity": "1",
        "taxid": "xxxxxx",
        "itterms": "on",
        "whois": "on"
    }
}',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to start the transfer of a new domain. If there have been errors, you can send the transfer request multiple times; the new data will correct the data sent with previous requests. There is no limit to the number of times you can send the same transfer request for the same domain.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The full domain name to use Yes
firstname string Registrant's first name Yes
lastname string Registrant's last name Yes
companyname string Company name (if applicable) No
contactemail string Registrant's email Yes
address1 string Address line 1 Yes
address2 string Address line 2 No
city string City Yes
state string State or province Yes
postcode string Postal code (ZIP) Yes
country string Country code (e.g. IT) Yes
phonenumber string Phone number in international format Yes
regperiod integer Registration period in years Yes
idprotection boolean WHOIS privacy activation Yes
additionalfields array Additional extension-specific fields No

Additional fields

Some domains have additional required fields necessary for registration.

Extension Additional field Description
.it entity An integer number from 1 to 7 as indicated by nic: 1 Italian and foreign natural persons, 2 Companies, 3 Sole proprietorships, freelancers / professional orders, 4 Non-profit entities, 5 Public entities, 6 Other subjects, 7 Foreign subjects equivalent to the previous except natural persons
.it taxid Tax code if “entity” is an Italian natural person. Document number if foreign natural person. VAT number (numbers only) in all other cases; in case of non-profit entities it can be n.a. (if they do not have VAT or numeric tax code)
.it whois true or false depending on whether you want to publish personal data or not. The choice is possible only for natural persons; for all other “entity” it must necessarily be true
.it itterms Acceptance of the nic.it terms, acceptance of the terms is required
{
    "result": "success",
    "domain": "supporthost.com",
    "message": "Domain transfer started successfully"
}

Response parameters

Parameter Type Description
result string The result of the operation: success or error
domain string The domain being transferred
message string The message, success or error

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Validations: for all required fields we perform validations, if the validation fails you will receive an error message.
The domain is not available for transfer
Domain is already pending in your account. Go to the SupportHost clientarea and pay the invoice to transfer it
Domain is already in your account
Registry errors: if the registry returns an error we report it in the registration error

POST /domain/renew

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/renew',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "domain.com",
    "regperiod": 1
}',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to renew a domain. If there is enough credit in the account, the invoice is automatically marked as paid.

Rate limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The name of the domain to renew Yes
regperiod int Number of years to renew (1-9) Yes
{
    "result": "success",
    "latestinvoiceid": 12345
}

Response parameters

Parameter Type Description
result string The result of the operation: "success" or "error"
latestinvoiceid int ID of the renewal invoice created. You can find it in the client area

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Domain not found in your account
The status of the domain doesn’t allow renewal
The domain has been cancelled. You need to restore it.
There is already a renewal invoice for this domain. Go to the SupportHost clientarea and pay it to renew

POST /domain/restore

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/restore?domain=domain.com',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));
$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to restore a deleted domain. Deleted domains can be restored following the payment of a recovery fee. If there is enough credit in the account, the invoice is marked as paid automatically.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name to be restored Yes
{
    "result": "success",
    "invoiceid": 12345
}

Response parameters

Parameter Type Description
result string The result of the operation: "success" or "error"
invoiceid int. ID of the created recovery invoice. You do not receive an email with the created invoice, but you can find it in the client area.

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Domain not found in your account
The status of the domain doesn’t allow restore
The domain has been cancelled. You need to restore it.
There is already a renewal invoice for this domain. Go to the SupportHost clientarea and pay it to renew

POST /domain/nameservers

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/nameservers',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "domain.com",
    "ns1": "ns1.supporthost.com",
    "ns2": "ns2.supporthost.com"
}',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to modify the nameservers of a domain.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name to be changed Yes
ns1 string First nameserver (e.g. ns1.domain.com) Yes
ns2 string Second nameserver (e.g. ns2.domain.com) Yes
ns3 string Third nameserver (optional) No
ns4 string Fourth nameserver (optional) No
ns5 string Fifth nameserver (optional) No
{
    "result": "success"
}

Response parameters

Parameter Type Description
result string The result of the operation: "success" or "error"

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Domain not found in your account
The status of the domain doesn’t allow nameservers change

POST /domain/idprotect

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/idprotect',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "colibri.com",
    "idprotect": false
}',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to enable or disable WHOIS privacy for a domain. This feature is not supported by all extensions.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name Yes
idprotect bool true to enable, false to disable Yes
{
    "result": "success"
}

Response parameters

Parameter Type Description
result string The result of the operation: "success" or "error"

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Domain not found in your account
This domain extension do not support ID protection

POST /domain/updatelockingstatus

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/updatelockingstatus',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "domain.com",
    "idprotect": false
}',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to enable or disable the transfer lock for a domain. This function is not supported by all extensions.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name Yes
lockstatus bool true to enable, false to disable Yes
{
    "result": "success"
}

Response parameters

Parameter Type Description
result string The result of the operation: "success" or "error"

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Domain not found in your account
This domain extension do not support lock

POST /domain/updatewhois

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://my.supporthost.com/domainapi.php/domain/updatewhois',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "domain": "colibri.com",
    "contactdetails": {
      "Registrant": {
        "Name": "xxxxxx"
        "Company": "xxxxxx"
        "City": "xxxxxx"
        "State": "xxxxxx"
        "Country": "EE"
        "Postcode": "12345"
        "Phone_Number": "+1.0000000000"
        "Email": "[email protected]"
        "Address": "xxxxxx"
        "entityType": "1"
        "itNationality": "IT"
        "regCode": "xxxxxx"
        "consentForPublishing": true
      }
      "Admin": {
        "Name": "xxxxxx"
        "Company": "xxxxxx"
        "City": "xxxxxx"
        "State": "xxxxxx"
        "Country": "EE"
        "Postcode": "12345"
        "Phone_Number": "+1.0000000000"
        "Email": "[email protected]"
        "Address": "xxxxxx"
      }
      "Tech": {
        "Name": "xxxxxx"
        "Company": "xxxxxx"
        "City": "xxxxxx"
        "State": "xxxxxx"
        "Country": "EE"
        "Postcode": "12345"
        "Phone_Number": "+1.0000000000"
        "Email": "[email protected]"
        "Address": "xxxxxx"
      }
    }
  }',
  CURLOPT_HTTPHEADER => array(
    'X-Email: your_email',
    'X-Api-Key: your_apikey'
  ),
));

curl_close($curl);
echo $response;
?>

Description

This endpoint allows you to send a command to update the domain contact details.

Request limit

300 requests every 10 minutes.

Request parameters

Parameter Type Description Required
domain string The domain name for which you want to modify the data Yes
contactdetails array An array containing all contact details, both those to update and those to keep. The data must be sent following the same schema as received from the /domain/info endpoint Yes
{
    "result": "success"
}

Response parameters

Parameter Type Description
result string The result of the operation: "success" or "error"

Error responses

Connection refused from unauthorized host. IP xxx.xxx.xxx.xxx is NOT allowed to access your account
Invalid email or not a reseller.
Invalid API key.
Domain not found in your account
Eventuali errori del registro dovuti ai nuovi dati dei contatti del dominio
Possible registry errors due to the new domain contact details

WHMCS Module

You can download the latest version of the SupportHost domain reseller WHMCS module from the following link:
Download the WHMCS module (ZIP)

For a complete guide to installing and configuring the module, please see our official tutorial:
How to install the WHMCS module for domain resellers

If you need assistance or support, do not hesitate to contact us.