All Category

Account information

This API endpoint retrieves account and usage information for a user based on POSTed username.

Endpoint

POST https://<server_ip_or_hostname>:<port>/api/

Request Headers

  • username: Admin username (optional if using POST username)
  • password: Admin password

Response

Returns JSON object containing user package, usage, and limits:

{
    "package_name": "Basic Plan",
    "disk_limit": "10GB",
    "disk_used": "2GB",
    "email_disk_used": "100MB",
    "db_disk_used": "500MB",
    "email_limit": 5,
    "email_used": 2,
    "db_limit": 3,
    "db_used": 1,
    "ftp_limit": 2,
    "ftp_used": 1,
    "domain_limit": 2,
    "domain_used": 1,
    "server_ip": "192.168.1.100",
    "main_domain": "example.com",
    "user_id": 123,
    "email": "user@example.com",
    "full_name": "John Doe"
}

Error Responses

  • { "error": "POST method required" } – if not POST
  • { "error": "Username is required" } – if username missing
  • { "error": "User not found" } – if username invalid
  • { "error": "Package not found" } – if user has no package
  • { "error": "Invalid credentials" } – if authentication fails

Add Domain

This API endpoint allows an authenticated user to add a new domain or subdomain to their hosting account. The request requires authentication via API key or password in headers, and domain details in the POST body.

Endpoint

POST https://<server_ip_or_hostname>:<port>/api/add_domain/

Request Headers

  • username: Account username
  • password: Account password

Request Body (POST)

[
    "domain": "example.com",
    "php_version": "8.2",
    "path": "public_html" // Optional, defaults to public_html
]

Successful Response

Returns JSON confirming successful addition of the domain:

{
    "success": true,
    "message": "Domain 'example.com' added successfully!",
    "domain_id": 123
}

Error Responses

  • { "success": false, "message": "Authentication required." } – if not authenticated
  • { "success": false, "message": "User 'username' not found." } – if the username does not exist
  • { "success": false, "message": "Domain and PHP version are required." } – if any required field is missing
  • { "success": false, "message": "Invalid domain format." } – if the domain format is invalid
  • { "success": false, "message": "The domain 'example.com' already exists." } – if domain already exists
  • { "success": false, "message": "Domain add limit exceeded." } – if domain limit is reached
  • { "success": false, "message": "Subdomain add limit exceeded." } – if subdomain limit is reached
  • { "success": false, "message": "Failed to add mapping for 'example.com'." } – if listener mapping fails
  • { "success": false, "message": "Failed to add virtual host for 'example.com'." } – if vhost setup fails
  • { "success": false, "message": "Failed to set folder permissions for 'example.com'." } – if permission setup fails

List Domains

This API endpoint retrieves all domains associated with the authenticated user. API key is not required; only username and password (or POST username) authentication is needed.

Endpoint

POST https://<server_ip_or_hostname>:<port>/api/domain_list/

Request Headers

  • username: Account username (required)
  • password: Account password (required)

Request Body (POST)

[
    "username": "exampleuser"
]

Successful Response

Returns JSON array of domains belonging to the user:

[
  {
    "id": 1,
    "domain": "example.com",
    "path": "/home/exampleuser/public_html"
  },
  {
    "id": 2,
    "domain": "sub.example.com",
    "path": "/home/exampleuser/public_html/sub"
  }
]

Error Responses

  • { "error": "POST method required" } – if request method is not POST
  • { "error": "Username and password required" } – if authentication headers are missing
  • { "error": "Invalid credentials" } – if username/password is incorrect
  • { "success": false, "message": "User 'exampleuser' not found." } – if the POST username does not exist

Issue SSL for Domain

This API endpoint allows an admin to issue an SSL certificate for a specific domain. The domain must exist in the system before requesting SSL issuance.

Endpoint

POST https://<server_ip_or_hostname>:<port>/api/domain_issue_ssl/

Request Headers

  • username: Admin username
  • password: Admin password

Request Body (POST)

[
    "domain": "example.com"   // required
]

Response

Returns a JSON object indicating success or failure:

{
  "success": true,
  "message": "SSL issued successfully for 'example.com'."
}

Error Responses

  • { "success": false, "message": "POST method required" } – if not POST
  • { "success": false, "message": "Domain name is required." } – if domain parameter is missing
  • { "success": false, "message": "Domain 'example.com' not found." } – if domain does not exist
  • { "success": false, "message": "Failed to issue SSL for 'example.com'." } – if SSL issuance fails

Create Database User API

This API endpoint allows an admin to create a new database user for a specific existing account. The username must exist in the system.

Endpoint

POST https://<server_ip_or_hostname>:<port>/api/db_make/

Request Headers

  • username: Admin username
  • password: Admin password

Request Body (POST)

[
  "db": "mydatabase",           // required, database name
  "dbuser": "dbuser1",          // required, new database username
  "dbpass": "strongpassword",   // required, password for database user
  "dbpassc": "strongpassword"   // required, confirm password
]

Response

Returns a JSON object indicating success or failure:

{
  "success": true,
  "message": "Database user created successfully for johndoe."
}

Error Responses

  • { "success": false, "error": "POST method required" } – if not POST
  • { "success": false, "error": "All fields are required." } – if any field is missing
  • { "success": false, "error": "Username 'johndoe' does not exist." } – if username does not exist
  • { "success": false, "error": "Database username must be at least 2 characters long." } – if dbuser is too short
  • { "success": false, "error": "Password must be at least 8 characters long." } – if password is too short
  • { "success": false, "error": "Passwords do not match." } – if passwords mismatch
  • { "success": false, "error": "Some error message from database creation function" } – if creation fails

Add Cron Job

This API endpoint allows an authenticated user to add a cron job for their account. All fields must be provided in the POST request.

Endpoint

POST https://<server_ip_or_hostname>:<port>/api/cronjob_add/

Request Headers

  • username: Your account username (authentication required)
  • password: Your account password (plain text) or apikey (encoded, optional)

Request Body (POST)

[
    "minute": "*",
    "hour": "*",
    "day": "*",
    "month": "*",
    "weekday": "*",
    "comm": "/usr/bin/php /home/username/public_html/cron.php"
]

Response

Returns JSON indicating success or failure of the cron job addition:

{
    "success": true,
    "message": "Cron job added successfully."
}

Error Responses

  • { "success": false, "error": "Invalid request method." } – if not POST
  • { "success": false, "error": "All fields are required." } – if any cron field is missing
  • { "success": false, "error": "Cron job already exists." } – if the cron job already exists
  • { "success": false, "error": "Error message here" } – if any other exception occurs

Exampe Add domain by php

PHP Example

<?php
$api_url = "http://<server_ip_or_hostname>:<port>/api/add_domain/";

$post_data = [
    "domain"   => "example.com",
    "php_version" => "8.2",
    "path"  => "public_html",
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Set admin headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "username: accountusername",
    "password: accountpass",
    "Content-Type: application/x-www-form-urlencoded"
]);

$response = curl_exec($ch);
if(curl_errno($ch)){
    echo "cURL Error: " . curl_error($ch);
} else {
    echo $response;
}
curl_close($ch);
?>