### Example Request (Local API) Source: https://developers.whmcs.com/api-reference/createssotoken Shows how to generate an SSO token using the local WHMCS API function. This method is suitable for use within your WHMCS installation. ```php $command = 'CreateSsoToken'; $postData = array( 'client_id' => '1', 'destination' => 'clientarea:product_details', 'service_id' => '1', ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### GetProducts via cURL Source: https://developers.whmcs.com/api-reference/getproducts Use this cURL example to make a GET request to the WHMCS API to retrieve product information. Ensure you replace placeholder credentials with your actual username and password. ```bash $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'GetProducts', // See https://developers.whmcs.com/api/authentication 'username' => 'IDENTIFIER_OR_ADMIN_USERNAME', 'password' => 'SECRET_OR_HASHED_PASSWORD', 'pid' => '1', 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); ``` -------------------------------- ### Complete Language Override File Source: https://developers.whmcs.com/languages/overrides This example shows a complete language override file containing multiple customized language strings. Ensure the file starts with a PHP tag. ```php '1', ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Example theme.yaml Configuration Source: https://developers.whmcs.com/themes/theme-parameters This example demonstrates how to configure a child theme, specifying its name, author, parent theme, and asset dependencies. ```yaml name: "Example" description: "My Company's Branding" author: "Hosting Company, L.L.C." config: parent: twenty-one dependencies: bootstrap: 4.5.2 provides: jquery: 1.12 fontawesome: 5 ``` -------------------------------- ### Sample Addon Module Output Function Source: https://developers.whmcs.com/modules/module-class-autoloading Demonstrates how to use the 'HelloWorld' class within the main output function of a sample addon module. It instantiates the class and calls its 'printHello' method. ```php use WHMCS\Module\Addon\SampleAddonModule\HelloWorld; // Other code goes here... function sample_addon_module_output() { $hello = new HelloWorld(); $hello->printHello(); } ``` -------------------------------- ### Get Clients Addons via Local API Source: https://developers.whmcs.com/api-reference/getclientsaddons This example demonstrates how to call the GetClientsAddons function locally within your WHMCS installation. The admin username is optional for WHMCS 7.2 and later. ```php $command = 'GetClientsAddons'; $postData = array( 'clientid' => '1', ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Get Support Departments via Local API Source: https://developers.whmcs.com/api-reference/getsupportdepartments This example demonstrates how to call the GetSupportDepartments API action directly within your WHMCS installation. The admin username is optional for WHMCS 7.2 and later. ```php $command = 'GetSupportDepartments'; $postData = array( ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Example Activate Function for Addon Module Source: https://developers.whmcs.com/addon-modules/installation-uninstallation Use this function to create custom database tables and schema when a module is activated. It returns a status and description message. ```php function addonmodule_activate() { // Create custom tables and schema required by your module try { Capsule::schema() ->create( 'mod_addonexample', function ($table) { /** @var \Illuminate\Database\Schema\Blueprint $table */ $table->increments('id'); $table->text('demo'); } ); return [ // Supported values here include: success, error or info 'status' => 'success', 'description' => 'This is a demo module only. ' . 'In a real module you might report a success or instruct a ' . 'user how to get started with it here.', ]; } catch (\Exception $e) { return [ // Supported values here include: success, error or info 'status' => "error", 'description' => 'Unable to create mod_addonexample: ' . $e->getMessage(), ]; } } ``` -------------------------------- ### Get Cancelled Packages via Local API Source: https://developers.whmcs.com/api-reference/getcancelledpackages This example demonstrates how to call the GetCancelledPackages API function locally within your WHMCS installation. The admin username is optional for WHMCS 7.2 and later. ```php $command = 'GetCancelledPackages'; $postData = array( ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### HelloWorld Class Definition Source: https://developers.whmcs.com/modules/module-class-autoloading Example of a 'HelloWorld' class stored in the 'lib' directory of a sample addon module. It includes a 'printHello' method. ```php namespace WHMCS\Module\Addon\SampleAddonModule; /** * Hello World Class * * @copyright Copyright (c) * @license http://www.whmcs.com/license/ WHMCS Eula */ class HelloWorld { /** * Print hello world. */ public function printHello() { print 'Hello World'; } } ``` -------------------------------- ### Get Project Details via Local API Source: https://developers.whmcs.com/api-reference/getproject This example demonstrates how to retrieve project information using the local API function within WHMCS. It's suitable for use within your WHMCS installation. ```php $command = 'GetProject'; $postData = array( 'projectid' => '1', ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Example Success Response Source: https://developers.whmcs.com/api-reference/setconfigurationvalue This is a sample JSON response indicating a successful modification of a configuration value. ```json { "result": "success", "value_changed": "true" } ``` -------------------------------- ### Get Promotions using Local API Source: https://developers.whmcs.com/api-reference/getpromotions This example demonstrates how to call the GetPromotions action using the WHMCS Local API. It's suitable for use within your WHMCS installation's PHP files. ```php $command = 'GetPromotions'; $postData = array( ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Example Success Response Source: https://developers.whmcs.com/api-reference/addprojectmessage This is a sample JSON response indicating that the project message was successfully added. ```json { "result": "success", "message": "Message has been added" } ``` -------------------------------- ### Get Support Statuses via Local API Source: https://developers.whmcs.com/api-reference/getsupportstatuses This example demonstrates how to call the GetSupportStatuses API function directly within your WHMCS installation using the localAPI function. The admin username is optional for WHMCS 7.2 and later. ```php $command = 'GetSupportStatuses'; $postData = array( ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Example MetricProvider Class Source: https://developers.whmcs.com/provisioning-modules/usage-metrics Implements the ProviderInterface to define available metrics, retrieve server-wide usage, and fetch usage for a specific tenant. Place this class in modules/servers/mymodule/lib/MyMetricsProvider.php. ```php namespace WHMCS\Module\Server\Mymodule; /** * The above namespace is automatically registered for autoloading classes within * a "lib" sub-directory relative to your module directory. So, place this class * in modules/servers/mymodule/lib/MyMtricsProvider.php. */ use WHMCS\UsageBilling\Contracts\Metrics\MetricInterface; use WHMCS\UsageBilling\Contracts\Metrics\ProviderInterface; use WHMCS\UsageBilling\Metrics\Metric; use WHMCS\UsageBilling\Metrics\Units\Accounts; use WHMCS\UsageBilling\Metrics\Usage; class MyMetricsProvider implements ProviderInterface { private $moduleParams = []; public function __construct($moduleParams) { // A sample `$params` array may be defined as: // // ``` // array( // "server" => true // "serverid" => 1 // "serverip" => "11.111.4.444" // "serverhostname" => "my.testserver.tld" // "serverusername" => "root" // "serverpassword" => "" // "serveraccesshash" => "ZZZZ1111222333444555AAAA" // "serversecure" => true // "serverhttpprefix" => "https" // "serverport" => "77777" // ) // ``` $this->moduleParams = $moduleParams; } public function metrics() { return [ new Metric( 'emailaddr', 'Email Mailboxes', MetricInterface::TYPE_SNAPSHOT, new Accounts('Mailboxes') ), ]; } public function usage() { $serverData = $this->apiCall('stats'); $usage = []; foreach ($serverData as $data) { $usage[$data['username']] = $this->wrapUserData($data); } return $usage; } public function tenantUsage($tenant) { $userData = $this->apiCall('user_stats'); return $this->wrapUserData($userData); } private function wrapUserData($data) { $wrapped = []; foreach ($this->metrics() as $metric) { $key = $metric->systemName(); if ($data[$key]) { $value = $data[$key]; $metric = $metric->withUsage( new Usage($value) ); } $wrapped[] = $metric; } return $wrapped; } private function apiCall($action) { // make remote call with $moduleParams } } ``` -------------------------------- ### Example MetaData Function Source: https://developers.whmcs.com/provisioning-modules/meta-data-params Illustrates how to define a MetaData function to return an associative array of meta data configuration parameters for a provisioning module. ```php function mymodule_MetaData() { return array( 'DisplayName' => 'myModule', 'APIVersion' => '1.1', 'DefaultNonSSLPort' => '1234', 'DefaultSSLPort' => '4321', 'ServiceSingleSignOnLabel' => 'Login to myModule Client', 'AdminSingleSignOnLabel' => 'Login to myModule Admin', 'ListAccountsUniqueIdentifierDisplayName' => 'Domain', 'ListAccountsUniqueIdentifierField' => 'domain', 'ListAccountsProductField' => 'configoption1', ); } ``` -------------------------------- ### Get Ticket Notes via Local API Source: https://developers.whmcs.com/api-reference/getticketnotes This example demonstrates how to use the Local API function to fetch ticket notes. It's suitable for use within your WHMCS installation. The admin username is optional for WHMCS 7.2 and later. ```php $command = 'GetTicketNotes'; $postData = array( 'ticketid' => '1', ); $adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later $results = localAPI($command, $postData, $adminUsername); print_r($results); ``` -------------------------------- ### Get Ticket Attachment Example Source: https://developers.whmcs.com/api-reference/getticketattachment This example demonstrates how to retrieve a ticket attachment using its filename. The response includes the filename and the base64 encoded attachment data. ```APIDOC ## GET /api/v1/websites/developers_whmcs/tickets/{ticketId}/attachments/{attachmentId} ### Description Retrieves a specific ticket attachment. ### Method GET ### Endpoint `/api/v1/websites/developers_whmcs/tickets/{ticketId}/attachments/{attachmentId}` ### Parameters #### Path Parameters - **ticketId** (string) - Required - The ID of the ticket. - **attachmentId** (string) - Required - The ID of the attachment. ### Response #### Success Response (200) - **result** (string) - Indicates the status of the operation ('success' or 'error'). - **filename** (string) - The name of the attachment file. - **data** (string) - The base64 encoded content of the attachment. ### Response Example ```json { "result": "success", "filename": "whmcs_logo.png", "data": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAA+CAYAAAAClQafAAAABGdBTUEAALGOfPtRkwAAAAlwSFlzAAALEwAACxMBAJqcGAAABCVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOkNvbG9yRGVwdGg+ODwvdGlmZjpDb2xvckRlcHRoPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvL3RpZmY6WFBSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI1MDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE1LTAzLTA1VDEyOjAzOjI4PC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5QaXhlbG1hdG9yIDMuMy4xPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgptkcFuAAAsIUlEQVR4Ae2dCZgcVbn3T1Vvs0\/2hSwkIQtJgEASlkRAAwKCol4VPuUqufogqCCCsuj1KvF7UD5FBMUNRS8IPl6DyxVRQIQECEv2EExIQshGFrJOJrP1THdXfb9\/Tfeku6erl5kJa795\/qmus9ep83\/f95w6VWNMWco9UO6Bcg+Ue6DcA+UeKPdAuQfKPVDugbdAD1hvgTaWm1jugTdFD2zevLkiHo9\/msb8NNmgB5uami6bPn363jdFA\/M0IpgnrhxV7oF3ZA+4rmu\/8sorgzi6EyZM2EcnuOoI27YrLcuaVFNTYzo6OkwikRhbWVk5miiP6CS31q5d27+qqiqMQmggb0cqr\/K\/kWK\/kZWX6y73wBvVA65rrHSk2rF69er+W7duPT8QCNwDfrlixQoRWZ6v1d7ePoywSRBaJDfhcHgA58en8u7atWsUxP8u5\/ODweDc9evXH0XaNwXHyq576i6Vj++MHoDgX1tZMygWMENN3LUTrnGDjglEgy077pxu9r700ktzKyoqfghh67HaLngQfCkUCr1GB50HsX8EjsZiG8KibW1tv8J9v6F\/\/\/\/4hrP1tkUjkk+SPNDc3J8j3feK\/e8IJJzS80Z1bdt3f6DtQrv917YF595hI8\/Hup8IR6yMJ20SsuHFD1SZiR6t\/Pf7vLT8POsEALrp18OBBA6EtLPOFHB1I+0cs+Idp7Egse6rNFaQ9q76+\/gos\/EBIfkk0Go1AbikBh0QhFEBJxlTuP\/nkBWTnc1AkKrNH0lUYFdRTQkWeUjRPaQPNVOjNWfKkLToq6drUkUF15ypX85wm6owXXWgRCak3RDJdcyBHcrVD4c2gJdXB5BnAufL5SZQItbXHNyS94GQb+xHm5\/6pna3Up3Z6kuzPWk4ioOv+dsZm\/K\/+PEjeREboETihTepL9XUY5LrHqVpb+KHr6XH\/zVszuGZ\/U8K+89QDTVx9t7quX1I9DMb8rnqg+x6HK08kHFPZn0r3uv\/Y2xi9\/Bsj9nbE442PO44zmXYb2mIgsInFYnLVjUhOnNdexUFozd2NLLzS64hFl2v\/Kr8\/N3HixEfz9TF5KilM0PhXHwnig+6fRPdQ96oVaL2gEYiHGmtRyi6KF+kW\/UIyfhLk6mQNNBW4AGjFURX1lQyioK+AGSAG0m+O6n0Z3AFeAX0px1HYdWAgyL5mtaEG3Ad+B1q4IWrLTWAiSG8jp97NUBnPgp+Ag6BXQn26warrm4Ch6PU\/hy5RvEj6Z\/CrrtDOdl\/B+ZlABMtuq5IqrxaQfgBWgSMmyX7TPPYaMBJIcWeL2iPRtfwPOKSTUuTyZSZU6daOa25vubgybELXLqq\/53bTuCm7DCeYmBgMBYdHmxhsUXx2+OTGEiYW75gess3IMWMGP4P7vgpyT4TcAdrvkRurbqLRNo\/MKf2ZHqd6pABEegkk39DS0rJGJJ8\/f35gxowZNZzbKTeevP1INgK8C5wMdK+Hguok0g2KxpaILZLvB5vBGrCMctZz3Es9UpK+kk70naQ6zzdlZ8RgDn8CqqjXQiN1g0eDjyePucqcTeBjpN3MxeiCey2UpeueBS4pUNh84kUmido6B2jQ+onad7dfZInhqk9K8AOgKk\/eTVlxsgSngPdnhec6ZUHKvZJ+LZlYuQrzCdOY+TyY6xOfHixlLrIXLfNcYzc\/WzMo7pozg4HEZYGQdRYOZ0fQxAbdsGDAd74358D2VGEy0Nctt48LBE2\/dlbNI1admVYx1wTtCnOg6oVB7a45Yfmar+8OBsNS\/up\/T+gjz1LbqAU76VVb8NlmFIncWphTmpToN4Tvx+r7MSgNS0qDPn4P56F169bdPWnSpFrSfgycC8YAKfJCIis\/BEwApwEZW1l49dmD1PkYR13roVw80YBPyTJ+LAanpgJyHFXRNNAnRKcc1a+GS5P5iTSc2vQU6LWlTFai6zg5+dvvIEu3HKRbIGlVP5HHo8nb4Tvul7L4cCkZ3VA\/oqvO9PapZNWvdig8DPKJlMFSBsnPGByxfAl7Eke5UjofAv9RZH61obT+W4ibW299ujLifsVxrcGuesS2QoGQuTRR1+Fc81TVt+84s3WX6rceMPZ14+3jsLb9TcIyI0PvMseFP2EqrcEmFjpgEjWJL4as+rnBoHVcLBbvNM3K5xE8gNsX11ObTIfbTEgo2j80fH\/AilRG26Oa0nnuvUgu953+PB4v4A4UgazwGOb6Q+QhMJ+fQpqxxI8nPN1qq4hSRO7+qCTEj8+Ah8CvKf8Vys8wiulE14D6G1AmP5F2nkVBD1GQurS3ogE8FWhA+Ik6XO7N\/aCviD6SsgoRXUovu8PyDULF5YsnukeSr0y\/OvPlSW+ELMllYDVYCPpMGCOyiCeCL4NCCkf1+l2L4nylfVhtIBBNjIrUWIObsW+uVCM1B8OmOhDGi7ADHZD91o5Ea1OktnqscawTEk48HHEHm2Mi50JyOU2uCcX6m4qQNdlishPriHVZaJHc4d8B52WzI77E7HFWmSZ7hxNur112WsfVdw0JTRuOuTobUp9EQUNE8qQLH4bcx8uVpy88JaCLwPpfAHf0sy9FpD8uiVc5ChlGKZ3oIu4CIGvgRzxZ1+lAhPe0JMceSXIgjCCz3MxCMoUE48izgU7SreyxUIau+VgwNk8hquMFcChPmrdLlPr2GvplI327vQ8vahhlXQ8m9WGZ3YqKvNjU1Hp09dLWRhPDnQ65STsWx58JhN0awj4dqDK1VVbVFvh8hrHdaYbl9rjbbvYl1puRgdmmwurnWWsnDgFhAX3h1SOSd7hNZmPsYfNix+\/MgcQGNEjCBIJuS6wj8dSjOx5\/4OELTPumTZt+wyLdxSzMfQ1yD0+RXQt4EpUniOCa6ytci3hHSET6bnLYPelcSd9IipXdUmUGjOZU7ntvBd1pJgMpjkLSjwRngPpCCYuI1\/xL8\/OcHZLMv5\/jOtB5p5KBb9OD7sNZ4AoGY7ri7\/HlUo5G8afAR3tcSJEZ56018Vgk8BKWfFMo67lNArK7cbefZVuX2UH7Zqz8eTCuxiRCHoFfaL\/HvBT7g4m6DTgBLNEnCdlZtYUyaDWrO35rFrV\/x+xJ\/Aui2sznw8Z2Igctt2qpSK6048aN280uuB9D8O\/B5Z2Q3SN1qjwdRfC6ujozaNCgI0lyNUeqrpvL0EV0pUBkwR7xfvn\/dxRRct+7FeafJWeMvAO5diJeIdHAmQ00t+6tDKcATU\/ytV8KbwsaOGOe09uK38T5tTj0b2BmH7VRSvnaPiorfzE3yeUP7YCDS2yprCzRkzC584kO3GdombL4AWYTmm8va ``` -------------------------------- ### Example MetaData Function Source: https://developers.whmcs.com/domain-registrars/metadata-params Illustrates how to define metadata for a domain registrar module. This function returns an array of configuration parameters. ```php function mymodule_MetaData() { return array( 'DisplayName' => 'myModule', 'APIVersion' => '1.1', 'NonLinearRegistrationPricing' => false, ); } ``` -------------------------------- ### Example String with String Replacements Source: https://developers.whmcs.com/languages/translating Illustrates a language string using '%s' for string replacements. The number and order of '%s' placeholders must be preserved to ensure correct substitution of values. ```php $"_LANG['examplestring'] = \"Honor your house with a server for only %s a year! (%s a month)\"; ``` -------------------------------- ### Get WHMCS Installation Details Source: https://developers.whmcs.com/api-reference/whmcsdetails Use this cURL request to obtain details about your WHMCS installation, including its version. Ensure you replace placeholder credentials with your actual username and password. ```cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'WhmcsDetails', // See https://developers.whmcs.com/api/authentication 'username' => 'IDENTIFIER_OR_ADMIN_USERNAME', 'password' => 'SECRET_OR_HASHED_PASSWORD', 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); ``` -------------------------------- ### Example JSON Response for Get Emails Source: https://developers.whmcs.com/api-reference/getemails This is an example of the JSON response structure when successfully retrieving email data. It includes total results, pagination details, and a list of email objects. ```json { "result": "success", "totalresults": 1, "startnumber": 0, "numreturned": 1, "emails": { "email": [ { "id": 16, "userid": 7, "subject": "Five great years with Hosting Company, Inc.!", "message": "