accounts/wwwacct
Description
Creates a new SPanel account.
Parameters
Additional parameters:
Field | Type | Required | Description |
---|---|---|---|
token | string | Yes | Authorizing API token – check API Basics for more information. |
action | string | Yes | The category and function being executed. |
domain | string | Yes | Main domain for the account. |
username | string | Yes | Account username. between 1 and 30 alphanumeric symbols. |
password | string | Yes | The password for the account, should be at least 8 or more symbols. |
package | string | No | Name of the package to use. Note that if a package is selected, the fields below become optional. |
quota | int | No | Default: unlimited. If set, quota limit in MB Minimum limit is 100. |
inodes | int | No | Default: unlimited. If set, inodes limit in number of inodes Minimum limit is 10000. |
domains | int | No | Default: unlimited. If set, number of additional domains the user can add. Set 0 to disable additional domains. |
emails | int | No | Default: unlimited. If set, number of email accounts the user can create. Set 0 to disable email accounts creation. |
databases | int | No | Default: unlimited. If set, number of databases the user can create. Set 0 to disable databases creation. |
permissions | string|array | No | Default: all (full access to account features) Permissions array or ‘all’ string for full root permissions. When using a permissions array, you can set the category sub-array to ‘all’ string to include every child page available or use an array with every page that you wish to include, for example:
|
Info
The structure and an always up-to-date list of all available user permissions can be obtained by running the user/listuserpermissions API call. The list is pulled directly from SPanel’s system in real-time.
Example
$endpointUrl = 'https://123.123.123.123/spanel/api.php';
$postData = [
'token' => 'provided_auth_token', // Check API Basics for more information
'action' => 'accounts/wwwacct',
'domain' => 'testdomain.com',
'username' => 'testuser',
'password' => 'KExk80Ml5aG6M',
// Optional options
// 'package' => 'packagename' // Optional package field
'quota' => 10240, // 10GB disk space limit
'inodes' => 10000, // 10000 inodes limit
// 'domains' => false, // Unlimited addon domains
'emails' => 0, // No email accounts allowed
'databases' => false, // Unlimited databases
//'permissions' => 'all' //Set all permissions
'permissions' => [
'email' => 'all', //access every email page
'domain' => [ 'domains', 'redirects' ] //access only the 'domains' and 'redirects' pages
]
];
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $endpointUrl);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_POST, true);
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false);
$jsonOutput = curl_exec( $ch );
Output
{
"result": "success",
"msg": "Account Created Successfully",
"createdata": "####################################################<br\/># Account Creation Complete #<br\/>####################################################<br\/>| Domain Name\t: testdomain.com <br\/>| SPanel\/FTP User\t: testuser <br\/>| SPanel\/FTP Password\t: KExk80Ml5aG6M <br\/>| Disk Quota\t: 10000MB <br\/>| Max Inodes\t: 10000 <br\/>| Max Domains\t: 1 <br\/>| Max Emails\t: Unlimited <br\/>| Max Databases\t: Unlimited <br\/>| Document Root\t: \/home\/testuser\/public_html <br\/>| IP Address\t: 123.123.123.123 <br\/>| Nameserver 1\t: ns1.serverhostname.com <br\/>| Nameserver 2\t: ns2.serverhostname.com <br\/>| SMTP\/POP3\/FTP\t: dev.serverhostname.com <br\/>####################################################",
"username": "testuser",
"validationRules": {
"existingDomains": [
"spanel.io",
"anothertest.com",
"apitest.com"
],
"existingUsers": [
"spanel",
"testuser"
]
}
}