Before you can start using the client API you first need to enable API access. This needs to be done by logging into the client area, clicking on 'Hello, <NAME>', then 'Client API', then the 'API Status' tab and finally the 'Enable API' button.
Each API request should be directed to:
https://customer.ndchost.com/index.php
The client API accepts parameters using either POST or GET. We always recommend using POST!
The following parameters are always required when making a API request.
Below are a list of modules and it's corresponding functions.
client
Below shows how one could make a simple API request using curl to retrieve your current client details
curl https://customer.ndchost.com/whmcs/index.php \ -d m=clientapi \ -d apikey=supersecretkey \ -d apimodule=client \ -d apifunction=getdetails
<?PHP // Required Parameters $post['m'] = 'clientapi'; $post['apikey'] = 'supersecretkey'; $post['apimodule'] = 'client'; $post['apifunction'] = 'getdetails'; // Curl Init $ch = curl_init(); if($ch === false) die('Curl Error: curl_init failed'); // Curl Options curl_setopt($ch, CURLOPT_URL, 'https://customer.ndchost.com/whmcs/index.php' ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Curl Result $result = curl_exec($ch); if($result === false) die(curl_error($ch)); // Result Info $curlinfo = @curl_getinfo($ch); if($curlinfo['content_type'] != 'application/json') die("api response was not JSON\n"); // Decode JSON into an array $result = @json_decode($result, true); if(!is_array($result)) die("failed to decode JSON response\n"); // Print out result print_r($result);
{ "status":"success", "message":"successfully retrieved client details", "data":{ "id":"1", "firstname":"Test", "lastname":"Client", "companyname":"", "email":"testclient@domain.com", "address1":"1001 Ave Pico", "address2":"", "city":"San Clemente", "state":"Ca", "postcode":"92673", "country":"US", "phonenumber":"123-456-7890", "defaultgateway":"paypal", "credit":"0.00", "billingcid":"0", "lastlogin":"2012-08-01 18:30:56", "ip":"204.10.36.76", "host":"staff.ndchost.com", "status":"Active" } }