Development Guides Home >> Guide to Transfer and Restore API Functions
The planning process sets up the transfer session.
- For
rootsessions, retrieve the transfer modules and schema. - For user transfer sessions, use the
AccountRemoteUseruser-based transfer session.
In this example, the following statements are true:
remote.example.comandlocal.example.comrepresent the remote server and the local server.- You logged in to the local server with the
cpsess##########security token. - The
exampleaccount ownsexample.com, and you want to transfer it from the remote server to the local server. - The
example.comdomain contains 123,456,789 bytes. - You want to transfer the
package1package from the remote server to the local server. luggage12345represents therootpassword for the remote server.
To retrieve a list of the transfer modules available on your server, run the WHM API 1 available_transfer_modules function.
Select the method by which you wish to call the function:
https://hostname.example.com:2087/cpsess##########/json-api/available_transfer_modules?api.version=1include_once '../xmlapi.php';
$ip = getenv('REMOTE_HOST');
$root_user = getenv('REMOTE_USER');
$root_pass = getenv('REMOTE_PASSWORD');
$xmlapi = new xmlapi($ip , $root_user , $root_pass);
$xmlapi->set_output('json');
$settings = array('api.version'=>1);
$_result = $xmlapi->xmlapi_query('available_transfer_modules' , $settings);
print $_result;This example will return the following list of transfer modules:
{
"data": {
"modules": {
"LegacyAccountBackup": "6000",
"FeatureListRemoteRoot": "1000",
"PackageRemoteRoot": "2000",
"AccountLocal": "5000",
"AccountRemoteRoot": "3000",
"AccountRemoteUser": "4000"
}
},
"metadata": {
"version": 1,
"reason": "OK",
"result": "1",
"command": "available_transfer_modules"
}
}You can preserve features and modules between transfers. Use the following features to transfer features, module lists, and accounts:
FeatureListRemoteRoot— Transfers the feature lists.PackageRemoteRoot— Transfers packages.AccountRemoteRoot— Transfers the accounts.
The schema of each transfer module formats the data for transfer.
The WHM API 1 transfer_module_schema function retrieves the following schemas:
To retrieve the schema for the FeatureListRemoteRoot module, run the following browser-based function:
https://hostname.example.com:2087/cpsess##########/json-api/transfer_module_schema?api.version=1&module=FeatureListsRemoteRootTo retrieve the schema for the PackageRemoteRoot module, run the following browser-based function:
https://hostname.example.com:2087/cpsess##########/json-api/transfer_module_schema?api.version=1&module=PackageRemoteRootTo retrieve the schema for the AccountRemoteRoot module, run the following browser-based function:
https://hostname.example.com:2087/cpsess##########/json-api/transfer_module_schema?api.version=1&module=AccountRemoteRootThe schema will resemble the following example:
{
"data": {
"schema": {
"keys": {
"detected_remote_user": {
"def": "char(255) DEFAULT NULL"
},
"ip": {
"def": "int(1) DEFAULT 0"
},
"skipbwdata": {
"def": "int(1) DEFAULT 0"
},
"customip": {
"def": "char(255) DEFAULT NULL"
},
"size": {
"def": "BIGINT UNSIGNED DEFAULT 1"
},
"shared_mysql_server": {
"def": "int(1) DEFAULT 0"
},
"domain": {
"def": "char(255) DEFAULT NULL"
},
"cpmovefile": {
"def": "text"
},
"skiphomedir": {
"def": "int(1) DEFAULT 0"
},
"user": {
"def": "char(255) DEFAULT NULL"
},
"skipacctdb": {
"def": "int(1) DEFAULT 0"
},
"skipres": {
"def": "int(1) DEFAULT 0"
},
"reseller": {
"def": "int(1) DEFAULT 0"
},
"skipaccount": {
"def": "int(1) DEFAULT 0"
},
"copypoint": {
"def": "text"
},
"force": {
"def": "int(1) DEFAULT 0"
},
"live_transfer": {
"def": "int(1) DEFAULT 0"
},
"xferpoint": {
"def": "int(1) DEFAULT 0"
},
"replaceip": {
"def": "char(255) DEFAULT NULL"
},
"localuser": {
"def": "char(255) DEFAULT NULL"
}
},
"required": [
"user",
"localuser"
],
"primary": [
"user"
],
"prerequisite": "user"
}
},
"metadata": {
"version": 1,
"reason": "OK",
"result": "1",
"command": "transfer_module_schema"
}
}To retrieve the schema for the FeatureListRemoteRoot module, add the following code to your PHP script:
include_once '../xmlapi.php';
$ip = getenv('REMOTE_HOST');
$root_user = getenv('REMOTE_USER');
$root_pass = getenv('REMOTE_PASSWORD');
$xmlapi = new xmlapi($ip , $root_user , $root_pass);
$xmlapi->set_output('json');
$settings = array('api.version'=>1, 'module' => 'FeatureListRemoteRoot');
$_result = $xmlapi->xmlapi_query('transfer_module_schema' , $settings);
print $_result;To retrieve the schema for the PackageRemoteRoot module, add the following code to your PHP script:
include_once '../xmlapi.php';
$ip = getenv('REMOTE_HOST');
$root_user = getenv('REMOTE_USER');
$root_pass = getenv('REMOTE_PASSWORD');
$xmlapi = new xmlapi($ip , $root_user , $root_pass);
$xmlapi->set_output('json');
$settings = array('api.version'=>1, 'module' => 'PackageRemoteRoot');
$_result = $xmlapi->xmlapi_query('transfer_module_schema' , $settings);
print $_result;To retrieve the schema for the AccountRemoteRoot module, add the following code to your PHP script:
include_once '../xmlapi.php';
$ip = getenv('REMOTE_HOST');
$root_user = getenv('REMOTE_USER');
$root_pass = getenv('REMOTE_PASSWORD');
$xmlapi = new xmlapi($ip , $root_user , $root_pass);
$xmlapi->set_output('json');
$settings = array('api.version'=>1, 'module' => 'AccountRemoteRoot');
$_result = $xmlapi->xmlapi_query('transfer_module_schema' , $settings);
print $_result;The schema will resemble the following example:
{
"data": {
"schema": {
"keys": {
"detected_remote_user": {
"def": "char(255) DEFAULT NULL"
},
"ip": {
"def": "int(1) DEFAULT 0"
},
"skipbwdata": {
"def": "int(1) DEFAULT 0"
},
"customip": {
"def": "char(255) DEFAULT NULL"
},
"size": {
"def": "BIGINT UNSIGNED DEFAULT 1"
},
"shared_mysql_server": {
"def": "int(1) DEFAULT 0"
},
"domain": {
"def": "char(255) DEFAULT NULL"
},
"cpmovefile": {
"def": "text"
},
"skiphomedir": {
"def": "int(1) DEFAULT 0"
},
"user": {
"def": "char(255) DEFAULT NULL"
},
"skipacctdb": {
"def": "int(1) DEFAULT 0"
},
"skipres": {
"def": "int(1) DEFAULT 0"
},
"reseller": {
"def": "int(1) DEFAULT 0"
},
"skipaccount": {
"def": "int(1) DEFAULT 0"
},
"copypoint": {
"def": "text"
},
"force": {
"def": "int(1) DEFAULT 0"
},
"live_transfer": {
"def": "int(1) DEFAULT 0"
},
"xferpoint": {
"def": "int(1) DEFAULT 0"
},
"replaceip": {
"def": "char(255) DEFAULT NULL"
},
"localuser": {
"def": "char(255) DEFAULT NULL"
}
},
"required": [
"user",
"localuser"
],
"primary": [
"user"
],
"prerequisite": "user"
}
},
"metadata": {
"version": 1,
"reason": "OK",
"result": "1",
"command": "transfer_module_schema"
}
}