< All Topics

accounts/wwwacct

Description

Creates a new SPanel account.

Parameters

Additional parameters:

FieldTypeRequiredDescription
tokenstringYesAuthorizing API token – check API Basics for more information.
actionstringYesThe category and function being executed.
domainstringYesMain domain for the account.
usernamestringYesAccount username. between 1 and 30 alphanumeric symbols.
passwordstringYesThe password for the account, should be at least 8 or more symbols.
packagestringNoName of the package to use. Note that if a package is selected, the fields below become optional.
quotaintNoDefault: unlimited. If set, quota limit in MB Minimum limit is 100.
inodesintNoDefault: unlimited. If set, inodes limit in number of inodes Minimum limit is 10000.
domainsintNoDefault: unlimited. If set, number of additional domains the user can add. Set 0 to disable additional domains.
emailsintNoDefault: unlimited. If set, number of email accounts the user can create. Set 0 to disable email accounts creation.
databasesintNoDefault: unlimited. If set, number of databases the user can create. Set 0 to disable databases creation.
permissionsstring|arrayNoDefault: 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:
  • If you use [ 'email' => 'all' ], all pages under server category will be included in the newly created user permissions list;
  • If you use [ 'domains' => [ 'domains', 'redirects' ] ], the newly created user will access only the pages specified.
Check the full API call example below for further clarification.

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"
        ]
    }
}
Previous accounts/listaccounts
Next accounts/changeuserpassword
Table of Contents