Root API

Use these API actions to manage the server and its hosting accounts. Administrator access is required.

Where to find it: Documentation > Hosting Manager > API > Root API.

Available to: Root API identities.

Before you start

Have your API username and key ready. Replace the example server address with your own, keeping port 882. Check the account or website before sending a request that changes or deletes data.

Authentication

Send X-Api-User and X-Api-Key to the SHM Engine on port 882. JSON requests also send Content-Type: application/json. Your API key can only access the accounts and tools allowed for its user.

How to read each endpoint

Choose an action to see its fields and an example request. Required fields must be supplied; optional fields let you refine the request. Conditional fields are needed only for the choices described beside them. If you use the assistant instead, see AI Mode.

Root API endpoint reference (230)

Account Defaults

GET/v1/root/account-defaultsrootView the starting IP, nameserver and PHP settings for new accounts.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/account-defaults' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read shared IP and defaults
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/account-defaults/nameserversrootUpdate the default nameserver settings.

Who can use this

The server administrator (root).

Parameters (10)

default_ns1Required
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ns1.example.com

Primary default nameserver, e.g. ns1.example.com.

Validation and use:

default_ns2Required
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ns2.example.com

Secondary default nameserver, e.g. ns2.example.com.

Validation and use:

account_usersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
["demoacct"]

Account usernames whose domains should be synced. May be an array or a comma/newline-separated string. Aliases: accounts, usernames, account_user.

Validation and use:

all_existing_zonesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Set to 1 only when the user explicitly asks to update every managed DNS zone on the server.

Validation and use:

apply_existing_zonesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Set to 1 to update existing SHM-managed DNS zones as well as defaults. Aliases: sync_existing_zones, update_existing_zones.

Validation and use:

default_ns3Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DEFAULT_NS3_FROM_LIST_RESPONSE

Optional third default nameserver.

Validation and use:

default_ns4Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DEFAULT_NS4_FROM_LIST_RESPONSE

Optional fourth default nameserver.

Validation and use:

domainsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
["example.com","example.net"]

Managed DNS zone domains to sync. May be an array or a comma/newline-separated string. Aliases: zone_domains, zones, domain.

Validation and use:

sync_existing_zonesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

update_existing_zonesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_ns1": "ns1.example.com",
    "default_ns2": "ns2.example.com",
    "account_users": [
      "demoacct"
    ],
    "all_existing_zones": 1,
    "apply_existing_zones": 1,
    "default_ns3": "DEFAULT_NS3_FROM_LIST_RESPONSE",
    "default_ns4": "DEFAULT_NS4_FROM_LIST_RESPONSE",
    "domains": [
      "example.com",
      "example.net"
    ],
    "sync_existing_zones": 1,
    "update_existing_zones": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/account-defaults/nameservers' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"default_ns1":"ns1.example.com","default_ns2":"ns2.example.com"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Update defaults only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_ns1": "ns1.example.com",
    "default_ns2": "ns2.example.com"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Update defaults and selected domains
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_ns1": "ns1.example.com",
    "default_ns2": "ns2.example.com",
    "apply_existing_zones": 1,
    "domains": [
      "example.com",
      "example.net"
    ]
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Update defaults and account domains
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_ns1": "ns1.example.com",
    "default_ns2": "ns2.example.com",
    "apply_existing_zones": 1,
    "account_users": [
      "demoacct"
    ]
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/account-defaults/php-versionrootUpdate the default PHP version settings.

Who can use this

The server administrator (root).

Parameters (6)

default_opcacheOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable OPcache by default for newly created accounts.

Validation and use:

default_php_apply_to_child_domainsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Apply the default PHP runtime and OPcache state to newly created addon domains and subdomains.

Validation and use:

opcacheOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Alias of default_opcache.

Validation and use:

phpversionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
php82

Installed PHP runtime to use for new accounts, e.g. php82 or 8.2.

Validation and use:

setopcacheOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

OPcache toggle. Compatibility alias of default_opcache.

Validation and use:

setphpversionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SETPHPVERSION_FROM_LIST_RESPONSE

PHP version setting.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_opcache": 1,
    "default_php_apply_to_child_domains": 1,
    "opcache": 1,
    "phpversion": "php82",
    "setopcache": 1,
    "setphpversion": "SETPHPVERSION_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/account-defaults/php-version' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"phpversion":"php82","default_opcache":1,"default_php_apply_to_child_domains":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Set PHP and enable OPcache
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "phpversion": "php82",
    "default_opcache": 1,
    "default_php_apply_to_child_domains": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Enable OPcache only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_opcache": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/account-defaults/shared-iprootUpdate the default shared IP settings.

Who can use this

The server administrator (root).

Parameters (1)

sharedipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SHAREDIP_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "sharedip": "SHAREDIP_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/account-defaults/shared-ip' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"sharedip":"SHAREDIP_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "sharedip": "SHAREDIP_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/account-defaults/web-settingsrootUpdate default Web Settings for newly created accounts.

Who can use this

The server administrator (root).

Parameters (17)

default_apply_to_child_domainsOptional
Send in
JSON body
Type
string
Accepted values
1, 0, on, off
Example
1

Compatibility alias for default_web_apply_to_child_domains. Use an on/off or 1/0 value.

Validation and use:

default_cache_background_updateOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
on

Allow background cache refresh.

Validation and use:

default_cache_dynamic_enabledOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
on

Enable public dynamic page cache for new accounts.

Validation and use:

default_cache_force_publicOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
off

Force public cache headers for anonymous public pages.

Validation and use:

default_cache_mobile_bucketOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
on

Keep separate cache buckets for desktop and non-desktop requests such as phones, tablets, iPad, and TV browsers.

Validation and use:

default_cache_profileOptional
Send in
JSON body
Type
enum
Accepted values
static_only, smart_safe
Example
smart_safe

Legacy default cache profile. Prefer default_cache_static_enabled and default_cache_dynamic_enabled. Allowed values: static_only, smart_safe.

Validation and use:

default_cache_public_pathsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/news /blog

Newline-separated public URL paths that may be forced cacheable.

Validation and use:

default_cache_redirectsOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
on

Cache public redirects.

Validation and use:

default_cache_revalidateOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
on

Allow conditional backend revalidation.

Validation and use:

default_cache_safe_cookiesOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DEFAULT_CACHE_SAFE_COOKIES_FROM_LIST_RESPONSE

Comma or newline separated exact names for extra harmless analytics, attribution, or non-personal test cookies. Wildcards and language, consent, personalization, session, auth, cart, user, admin, token, or security names are rejected.

Validation and use:

default_cache_static_enabledOptional
Send in
JSON body
Type
on|off|0|1
Accepted values
on, off, 0, 1
Example
on

Enable static asset cache for new accounts.

Validation and use:

default_cache_static_ttlOptional
Send in
JSON body
Type
string|time
Accepted values
Any value matching string|time
Example
DEFAULT_CACHE_STATIC_TTL_FROM_LIST_RESPONSE

Static cache TTL. Use 1m through 30d, for example 10m, 6h, or 30d.

Validation and use:

default_cache_ttlOptional
Send in
JSON body
Type
string|time
Accepted values
Any value matching string|time
Example
DEFAULT_CACHE_TTL_FROM_LIST_RESPONSE

Dynamic cache TTL. Use 1m through 30d, for example 10m, 1h, or 30d.

Validation and use:

default_cache_use_staleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DEFAULT_CACHE_USE_STALE_FROM_LIST_RESPONSE

proxy_cache_use_stale tokens or off.

Validation and use:

default_modsecurityOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable ModSecurity by default for new accounts when ModSecurity is available.

Validation and use:

default_server_cacheOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable server-side cache by default for new accounts when cache support is available.

Validation and use:

default_web_apply_to_child_domainsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Apply Account Default cache and ModSecurity settings to newly created addon domains and subdomains.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_apply_to_child_domains": 1,
    "default_cache_background_update": "on",
    "default_cache_dynamic_enabled": "on",
    "default_cache_force_public": "off",
    "default_cache_mobile_bucket": "on",
    "default_cache_profile": "smart_safe",
    "default_cache_public_paths": "/news\n/blog",
    "default_cache_redirects": "on",
    "default_cache_revalidate": "on",
    "default_cache_safe_cookies": "DEFAULT_CACHE_SAFE_COOKIES_FROM_LIST_RESPONSE",
    "default_cache_static_enabled": "on",
    "default_cache_static_ttl": "DEFAULT_CACHE_STATIC_TTL_FROM_LIST_RESPONSE",
    "default_cache_ttl": "DEFAULT_CACHE_TTL_FROM_LIST_RESPONSE",
    "default_cache_use_stale": "DEFAULT_CACHE_USE_STALE_FROM_LIST_RESPONSE",
    "default_modsecurity": 1,
    "default_server_cache": 1,
    "default_web_apply_to_child_domains": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/account-defaults/web-settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"default_server_cache":1,"default_cache_static_enabled":"on","default_cache_dynamic_enabled":"on","default_cache_force_public":"off"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Enable cache defaults for new accounts
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_server_cache": 1,
    "default_cache_static_enabled": "on",
    "default_cache_dynamic_enabled": "on",
    "default_cache_force_public": "off"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Enable ModSecurity and child-domain web defaults
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_modsecurity": 1,
    "default_web_apply_to_child_domains": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

AI Mode

GET/v1/ai/settingsrootView the server's AI settings and usage limits.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/ai/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read global AI Mode settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/ai/settingsrootChange the available AI preferences, usage limits and instructions.

Who can use this

The server administrator (root).

Parameters (7)

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable or disable AI Mode platform-wide. When the setting is absent, an active licensed SHM installation defaults to enabled; an explicitly saved disabled value is preserved. License and role authorization still apply to every request.

Validation and use: Default: true.

instructionsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Prefer concise operational summaries and verify changed services.

Additional root workspace instructions applied only when they do not conflict with mandatory SHM safety and scope rules.

Validation and use: Maximum length 12000.

max_prompt_charsOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
20000

Maximum characters accepted in one prompt across all roles. Use 0 for unlimited.

Validation and use: Minimum 0.

max_requests_per_dayOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
500

Maximum prompts allowed per actor or account in one day. Use 0 for unlimited.

Validation and use: Minimum 0.

max_requests_per_hourOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
60

Maximum prompts allowed per actor or account in one hour. Use 0 for unlimited.

Validation and use: Minimum 0.

modelOptional
Send in
JSON body
Type
enum
Accepted values
synconix-ai, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna
Example
synconix-ai

Global model used by root, reseller, and account AI conversations. synconix-ai is the default and routes through the per-license OpenClaw agent, which may use deterministic skills locally or an approved external provider when needed. Explicit GPT-5.6 selections retain the direct OpenAI provider path.

Validation and use: Default: synconix-ai.

reasoning_effortOptional
Send in
JSON body
Type
enum
Accepted values
none, low, medium, high, xhigh, max
Example
medium

Model-compatible reasoning level for Synconix AI and the explicit GPT-5.6 models. All listed models accept every listed value.

Validation and use: Default: medium.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "enabled": 1,
    "instructions": "Prefer concise operational summaries and verify changed services.",
    "max_prompt_chars": 20000,
    "max_requests_per_day": 500,
    "max_requests_per_hour": 60,
    "model": "synconix-ai",
    "reasoning_effort": "medium"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/ai/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"enabled":1,"model":"synconix-ai","reasoning_effort":"medium","max_prompt_chars":20000,"max_requests_per_hour":60,"max_requests_per_day":500,"instructions":"Prefer concise operational summaries and verify changed services."}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Select Synconix AI with medium reasoning and global limits
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "enabled": 1,
    "model": "synconix-ai",
    "reasoning_effort": "medium",
    "max_prompt_chars": 20000,
    "max_requests_per_hour": 60,
    "max_requests_per_day": 500,
    "instructions": "Prefer concise operational summaries and verify changed services."
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Antivirus

POST/v1/root/antivirus/actions/{action}rootRun an antivirus scan or manage its settings and findings.

Before you start

Review the exact finding before cleaning, quarantining or restoring a file. Cleaning needs confirmation and a completed scan result for the current file.

Who can use this

The server administrator (root).

Parameters (31)

actionRequired
Send in
URL path
Type
enum
Accepted values
install_runtime, install-runtime, save_settings, update_rules_now, start_scan, stop_scan, scan_status, detections_dt, clear_findings, scan_log, view_file, view_quarantine, quarantine_list, quarantine_file, delete_file, restore_quarantine, delete_quarantine, clean_file
Example
start_scan

Action path parameter. Allowed values: install_runtime, install-runtime, save_settings, update_rules_now, start_scan, stop_scan, scan_status, detections_dt, clear_findings, scan_log, view_file, view_quarantine, quarantine_list, quarantine_file, delete_file, restore_quarantine, delete_quarantine, clean_file.

Validation and use: Required Replace this placeholder directly in the URL path.

account_userConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Account username for a single-account scan or account-local quarantine entry.

Validation and use: Needed when: required when scope=account; optional for account quarantine lookup.

accountsConditional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
ACCOUNTS_FROM_LIST_RESPONSE

Account usernames to scan. String input may be comma separated.

Validation and use: Needed when: required when scope=accounts.

auto_daily_scanOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable or disable the daily scan timer.

Validation and use: Needed when: optional for save settings.

daily_scan_timeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
60

Daily scan time in HH:MM format.

Validation and use: Needed when: optional for save settings.

drawOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

DataTables draw counter.

Validation and use: Needed when: optional for detections dt.

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable or disable Antivirus globally.

Validation and use: Needed when: optional for save settings.

explicit_confirmConditional
Send in
JSON body
Type
enum
Accepted values
1
Example
1

Explicit user confirmation gate. clear_findings changes only the selected view; file changes are never invoked automatically.

Validation and use: Needed when: required for supported finding changes and clear findings.

fileConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html/image.gif

Absolute file path for root-scoped file actions. view_file resolves the path against the selected persisted finding, hashes and reads one opened descriptor, and returns limited content. clean_file resolves the subject account from this path and stores the original in that account quarantine.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name. Needed when: required for view file and single-file clean/quarantine/delete.

filesOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
FILES_FROM_LIST_RESPONSE

Legacy absolute path list. Path-only changes are refused. Use findings to supply a separate scan and SHA-256 identity for each file; every change requires confirmed malware and current unchanged contents.

Validation and use: Needed when: legacy bulk alias; scan id, sha256 and explicit confirm are mandatory for changes.

filter_kindOptional
Send in
JSON body
Type
enum
Accepted values
all, malware, potential_vulnerability
Example
potential_vulnerability

Finding category, applied before pagination and alongside account/search filters. Defaults to all; potential vulnerabilities are review-only and are not confirmed infections.

Validation and use: Needed when: optional for detections dt.

filter_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Limit root findings or the clear scope to one resolved account username. Custom account home paths are resolved from account metadata, not inferred from /home naming.

Validation and use: Needed when: optional for detections dt and clear findings.

findingsConditional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
[{"file":"/home/demo/public_html/index.php","scan_id":"SCAN_ID_FROM_CONTEXT","sha256":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}]

One or more objects with required file, scan_id, and sha256. Every item is resolved to its subject account, revalidated independently, and returned with an independent result.

Validation and use: Needed when: required for supported bulk clean file/quarantine file/delete file.

idConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Quarantine entry identifier.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Needed when: required for one quarantine view/restore/delete.

idsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
IDS_FROM_LIST_RESPONSE

One or more quarantine entry identifiers.

Validation and use: Needed when: optional bulk alias for restore quarantine/delete quarantine.

lengthOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
50

DataTables page length.

Validation and use: Minimum 1. Maximum 200. Needed when: optional for detections dt.

max_size_mbOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Maximum candidate file size in MiB.

Validation and use: Minimum 1. Maximum 200. Needed when: optional for save settings.

pathConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute approved filesystem path to scan.

Validation and use: Needed when: required when scope=path.

quarantine_enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable supported quarantine actions.

Validation and use: Needed when: optional for save settings.

recovery_attemptOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Sequential recovery number. It must equal the interrupted scan recovery_attempt plus one. Repeating the same valid request returns the already linked replacement instead of starting a duplicate.

Validation and use: Minimum 1. Maximum 5. Needed when: optional for root-orchestrated start scan; requires recovery of scan id.

recovery_of_scan_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Terminal scan id whose exact interrupted_reason is runtime_restarted. The prior record must not already have a replacement. Intended for the automatic root scan supervisor.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned recovery_of_scan_id value. Needed when: optional for root-orchestrated start scan; requires recovery attempt.

scan_idConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Valid scan identifier returned by start_scan or context/history. For view_file it must be sent together with sha256 and selects server-persisted evidence; it is not authority by itself. Finding changes accept a successful report or a current non-stale live scan containing the same subject-account file and exact SHA-256.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned scan_id value. Needed when: required for stop scan, scan status, detections dt, scan log, clear findings, every finding change, and identity-aware view file.

scopeOptional
Send in
JSON body
Type
enum
Accepted values
all, account, accounts, path
Example
account

Scan target scope. Defaults to all.

Validation and use: Needed when: optional for start scan.

searchOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"value":""}

DataTables search object; search.value filters path, account, engine, rule, classification, and confidence.

Validation and use: Needed when: optional for detections dt.

sha256Conditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Lowercase SHA-256 from the selected completed or live confirmed finding. view_file disables saved highlights and returns changed_since_scan when current bytes differ; changes are refused.

Validation and use: Needed when: required with scan id for identity-aware view file and for every supported finding change.

startOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
0

DataTables result offset.

Validation and use: Minimum 0. Needed when: optional for detections dt.

storage_kindOptional
Send in
JSON body
Type
enum
Accepted values
root, account
Example
root

Select the server or account quarantine store. account also requires account_user.

Validation and use: Needed when: optional for root quarantine actions.

strict_scan_idOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

When 1, do not fall back to the latest report if scan_id is absent or unavailable.

Validation and use: Needed when: optional for detections dt.

threadsOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Maximum scanner worker threads.

Validation and use: Minimum 1. Maximum 16. Needed when: optional for save settings.

timeout_secondsOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
7200

Maximum allowed interval with no Antivirus file progress, in seconds.

Validation and use: Minimum 30. Maximum 86400. Needed when: optional for save settings.

triggerOptional
Send in
JSON body
Type
enum
Accepted values
on_demand, automatic
Example
on_demand

Scan origin. Defaults to on_demand. The SHM timer sends automatic; account endpoints always force on_demand.

Validation and use: Needed when: optional for root start scan.

Supported actions and option sets

action values (15)
install_runtimesave_settingsupdate_rules_nowstart_scanstop_scanscan_statusdetections_dtscan_logview_filequarantine_fileclean_fileclear_findingsdelete_filerestore_quarantinedelete_quarantine
Action-specific request bodies
{
  "install_runtime": [],
  "save_settings": {
    "scan_paths": [
      "/home"
    ],
    "exclude_paths": [
      "/proc",
      "/sys"
    ]
  },
  "update_rules_now": [],
  "start_scan": {
    "scope": "accounts",
    "accounts": [
      "demo"
    ]
  },
  "stop_scan": {
    "scan_id": "SCAN_ID_FROM_CONTEXT"
  },
  "scan_status": {
    "scan_id": "SCAN_ID_FROM_CONTEXT"
  },
  "detections_dt": {
    "scan_id": "SCAN_ID_FROM_CONTEXT"
  },
  "scan_log": {
    "scan_id": "SCAN_ID_FROM_CONTEXT"
  },
  "view_file": {
    "file": "/home/demo/public_html/index.php"
  },
  "quarantine_file": {
    "file": "/home/demo/public_html/index.php"
  },
  "clean_file": {
    "file": "/home/demo/public_html/index.php",
    "scan_id": "SCAN_ID_FROM_CONTEXT",
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "explicit_confirm": 1
  },
  "clear_findings": {
    "scan_id": "SCAN_ID_FROM_CONTEXT",
    "filter_user": "demo",
    "explicit_confirm": 1
  },
  "delete_file": {
    "file": "/home/demo/public_html/index.php"
  },
  "restore_quarantine": {
    "id": "QUARANTINE_ID_FROM_CONTEXT"
  },
  "delete_quarantine": {
    "id": "QUARANTINE_ID_FROM_CONTEXT"
  }
}

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "action": "start_scan"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "accounts": "ACCOUNTS_FROM_LIST_RESPONSE",
    "auto_daily_scan": 1,
    "daily_scan_time": 60,
    "draw": 1,
    "enabled": 1,
    "explicit_confirm": 1,
    "file": "/home/demo/public_html/image.gif",
    "files": "FILES_FROM_LIST_RESPONSE",
    "filter_kind": "potential_vulnerability",
    "filter_user": "demo",
    "findings": [
      {
        "file": "/home/demo/public_html/index.php",
        "scan_id": "SCAN_ID_FROM_CONTEXT",
        "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      }
    ],
    "id": 1,
    "ids": "IDS_FROM_LIST_RESPONSE",
    "length": 50,
    "max_size_mb": 1,
    "path": "/home/demo/public_html",
    "quarantine_enabled": 1,
    "recovery_attempt": 1,
    "recovery_of_scan_id": 1,
    "scan_id": 1,
    "scope": "account",
    "search": {
      "value": ""
    },
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "start": 0,
    "storage_kind": "root",
    "strict_scan_id": 1,
    "threads": 1,
    "timeout_seconds": 7200,
    "trigger": "on_demand"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/antivirus/actions/start_scan' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"scope":"account","account_user":"demo"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Start account scan
{
  "path_parameters": {
    "action": "start_scan"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "account",
    "account_user": "demo"
  }
}
List detected malware
{
  "path_parameters": {
    "action": "detections_dt"
  },
  "query_parameters": {},
  "json_body": {
    "scan_id": 1,
    "draw": 1,
    "start": 0,
    "length": 50,
    "search": {
      "value": ""
    }
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Review potential vulnerabilities
{
  "path_parameters": {
    "action": "detections_dt"
  },
  "query_parameters": {},
  "json_body": {
    "scan_id": 1,
    "filter_kind": "potential_vulnerability",
    "draw": 1,
    "start": 0,
    "length": 50
  }
}

Requires a value returned by another endpoint before QA can execute this request.

View exact saved finding evidence
{
  "path_parameters": {
    "action": "view_file"
  },
  "query_parameters": {},
  "json_body": {
    "file": "/home/demo/public_html/image.gif",
    "scan_id": 1,
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Clean one confirmed finding
{
  "path_parameters": {
    "action": "clean_file"
  },
  "query_parameters": {},
  "json_body": {
    "file": "/home/demo/public_html/index.php",
    "scan_id": 1,
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "explicit_confirm": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Clean selected confirmed findings
{
  "path_parameters": {
    "action": "clean_file"
  },
  "query_parameters": {},
  "json_body": {
    "findings": [
      {
        "file": "/home/demo/public_html/index.php",
        "scan_id": "SCAN_ID_FROM_CONTEXT",
        "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      }
    ],
    "explicit_confirm": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Clear one account finding view
{
  "path_parameters": {
    "action": "clear_findings"
  },
  "query_parameters": {},
  "json_body": {
    "scan_id": 1,
    "filter_user": "demo",
    "explicit_confirm": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
response_typestring; identity-aware view_file returns evidence_blob
pathstring; authorized absolute display path
sizeinteger; opened file size in bytes
limitinteger; rendered preview cap, currently 524288 bytes
scan_idstring; resolved persisted finding report id
sha256string; expected finding SHA-256
current_sha256string; SHA-256 from the same descriptor used for preview reads
rules_revisioninteger; report rules revision when available
changed_since_scanboolean; true disables saved evidence highlights
evidence_availableboolean; unchanged exact outer-file evidence can be highlighted
finding_evidenceobject[]; bounded exact, archive-member, or derived evidence metadata
windowsobject[]{offset:integer,length:integer,reason_code?:string,role?:string,segments:object[]{text:string,highlight:boolean,reason_code?:string,role?:string}}
binary_previewboolean; binary bytes were converted to printable escapes
truncatedboolean; preview or evidence windows reached a configured bound
finding_kindView classification: malware or potential_vulnerability. Also present on each detections_dt row.
remediation_policyguarded_remediation or review_only. Review-only files cannot be cleaned, quarantined or deleted through finding actions.
classification_statusconfirmed for malware; review for an unconfirmed potential vulnerability. Not a remote-exploitability assertion.
stats.confirmed_filesDistinct files classified as malware.
stats.review_filesDistinct review-only files, excluding files also classified as malware.
stats.detected_filesDistinct visible malware and review files combined.
errorsecurity_review_required refuses remediation of a review-only finding without changing its contents. Batch results carry a per-item error.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/antivirus/contextrootView server scans, findings, quarantined files and antivirus settings.

Who can use this

The server administrator (root).

Parameters (7)

compactOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Set to 1 to return compact report summaries and limited account status.

Validation and use:

history_limitOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
1

Maximum compact history summaries. Used only when compact=1; default 15.

Validation and use: Minimum 1. Maximum 50.

include_historyOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

Include scan history. Defaults to 1; set to 0 for faster overview requests.

Validation and use:

include_ignoreOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

Include aggregate account exclusion entries. Defaults to 0.

Validation and use:

include_last_scan_account_hitsOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Include per-account detected-malware counts in the compact last_scan summary. Defaults to 0.

Validation and use:

include_quarantineOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

Include the aggregate server/account quarantine list. Defaults to 1; set to 0 unless the list is needed.

Validation and use:

scan_idOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
1

Scan id query parameter. Valid scan identifier to project as files_scan/requested_scan_id. Omit for the latest report.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned scan_id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "compact": 1,
    "history_limit": 1,
    "include_history": 0,
    "include_ignore": 0,
    "include_last_scan_account_hits": 1,
    "include_quarantine": 0,
    "scan_id": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/antivirus/context?compact=1&history_limit=1&include_history=0&include_quarantine=0&include_ignore=0&include_last_scan_account_hits=1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Fast security overview
{
  "path_parameters": {},
  "query_parameters": {
    "compact": 1,
    "history_limit": 1,
    "include_history": 0,
    "include_quarantine": 0,
    "include_ignore": 0,
    "include_last_scan_account_hits": 1
  },
  "json_body": {}
}
History and exclusions
{
  "path_parameters": {},
  "query_parameters": {
    "compact": 1,
    "history_limit": 15,
    "include_history": 1,
    "include_quarantine": 0,
    "include_ignore": 1
  },
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
avx_rules_revRules revision of the running engine. Finding-type filters require revision 147 or newer; saved reports keep their original scan revision.
files_scan.stats.confirmed_filesDistinct confirmed-malware files in the selected report, excluding review-only findings.
files_scan.stats.review_filesDistinct potential-vulnerability files requiring review. These are not confirmed infections.
files_scan.stats.detected_filesDistinct files with either malware or review findings. A file with independent malware evidence is counted as malware, not counted twice.
last_scan.stats.review_filesPotential-vulnerability count in the latest report. The same separate counts are provided in history report statistics.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Audit

GET/v1/root/audit/contextrootView the filters and accounts available in the audit log.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/audit/context' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/audit/getrootView one audit record.

Who can use this

The server administrator (root).

Parameters (1)

fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
error.log

File path.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "file": "error.log"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/audit/get' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"file":"error.log"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "file": "error.log"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/audit/listrootList audit rows.

Who can use this

The server administrator (root).

Parameters (9)

drawOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

DataTables draw counter.

Validation and use:

filter_actionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_ACTION_FROM_LIST_RESPONSE

Validation and use:

filter_actorOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_ACTOR_FROM_LIST_RESPONSE

Validation and use:

filter_fromOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_FROM_FROM_LIST_RESPONSE

Validation and use:

filter_ownerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_OWNER_FROM_LIST_RESPONSE

Validation and use:

filter_toOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_TO_FROM_LIST_RESPONSE

Validation and use:

filter_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_TYPE_FROM_LIST_RESPONSE

Validation and use:

lengthOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
25

Page size.

Validation and use:

startOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
0

Row offset.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "filter_action": "FILTER_ACTION_FROM_LIST_RESPONSE",
    "filter_actor": "FILTER_ACTOR_FROM_LIST_RESPONSE",
    "filter_from": "FILTER_FROM_FROM_LIST_RESPONSE",
    "filter_owner": "FILTER_OWNER_FROM_LIST_RESPONSE",
    "filter_to": "FILTER_TO_FROM_LIST_RESPONSE",
    "filter_type": "FILTER_TYPE_FROM_LIST_RESPONSE",
    "length": 25,
    "start": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/audit/list' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"filter_from":"FILTER_FROM_FROM_LIST_RESPONSE","filter_to":"FILTER_TO_FROM_LIST_RESPONSE","filter_action":"FILTER_ACTION_FROM_LIST_RESPONSE","filter_actor":"FILTER_ACTOR_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "filter_from": "FILTER_FROM_FROM_LIST_RESPONSE",
    "filter_to": "FILTER_TO_FROM_LIST_RESPONSE",
    "filter_action": "FILTER_ACTION_FROM_LIST_RESPONSE",
    "filter_actor": "FILTER_ACTOR_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/audit/purgerootPurge matching audit records.

Who can use this

The server administrator (root).

Parameters (6)

filter_actionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account.create

Exact audit action value returned in actions[].value by GET /v1/root/audit/context. Omit to include every action. Object, array, and null values are rejected.

Validation and use: GET /v1/root/audit/context

filter_actorOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
root

Exact audit actor username. Omit to include every actor. The supplied value is normalized to the filesystem-safe actor segment used by audit storage and never broadens an explicit filter into an unfiltered purge. Object, array, and null values are rejected.

Validation and use:

filter_fromOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
FILTER_FROM_FROM_LIST_RESPONSE

Inclusive range start in server local time. Accepted values: YYYY-MM-DD, YYYY-MM-DDTHH:MM, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or a non-negative Unix timestamp. An empty or omitted value starts at the beginning of retained history; malformed non-empty values are rejected. Object, array, and null values are rejected.

Validation and use:

filter_ownerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
root

Exact dynamic owner value returned in owners[].value by GET /v1/root/audit/context. Use root for root-owned records. Omit to include every owner. Object, array, and null values are rejected.

Validation and use: GET /v1/root/audit/context

filter_toOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
FILTER_TO_FROM_LIST_RESPONSE

Inclusive range end in server local time. Accepted values: YYYY-MM-DD, YYYY-MM-DDTHH:MM, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or a non-negative Unix timestamp. An empty or omitted value uses the current server time; malformed non-empty values are rejected. Object, array, and null values are rejected.

Validation and use:

filter_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Exact resource type returned in types[].value by GET /v1/root/audit/context. Omit to include every resource type. Object, array, and null values are rejected.

Validation and use: GET /v1/root/audit/context

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "filter_action": "account.create",
    "filter_actor": "root",
    "filter_from": "FILTER_FROM_FROM_LIST_RESPONSE",
    "filter_owner": "root",
    "filter_to": "FILTER_TO_FROM_LIST_RESPONSE",
    "filter_type": "account"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/audit/purge' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"filter_from":"FILTER_FROM_FROM_LIST_RESPONSE","filter_to":"FILTER_TO_FROM_LIST_RESPONSE","filter_action":"account.create","filter_actor":"root","filter_type":"account","filter_owner":"root"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Purge one limited account-audit range
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "filter_from": "FILTER_FROM_FROM_LIST_RESPONSE",
    "filter_to": "FILTER_TO_FROM_LIST_RESPONSE",
    "filter_action": "account.create",
    "filter_actor": "root",
    "filter_type": "account",
    "filter_owner": "root"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

AutoSSL

POST/v1/root/autossl/logsrootView AutoSSL log content.

Who can use this

The server administrator (root).

Parameters (6)

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Filter output to one account username. Alias: user.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

actionOptional
Send in
JSON body
Type
enum
Accepted values
DownloadLog
Example
DownloadLog

Requested action name. Allowed values: DownloadLog. Omit the field for normal log-content fetch.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Domain name. Filter output to one domain.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

downloadOptional
Send in
JSON body
Type
enum
Accepted values
DownloadLog
Example
DownloadLog

Alias of action=DownloadLog. Allowed values: DownloadLog.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

linesOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
1200

Number of lines to return. Number of log lines to return. Default 1200; max 50000.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_user.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "action": "DownloadLog",
    "domain": "example.com",
    "download": "DownloadLog",
    "lines": 1200,
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/autossl/logs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","lines":1200}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read recent AutoSSL lines for one domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "lines": 1200
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Download AutoSSL log
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "DownloadLog"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/autossl/logs/filesrootList AutoSSL log files.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/autossl/logs/files' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/autossl/overviewrootView AutoSSL overview.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/autossl/overview' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/autossl/runrootRun AutoSSL.

Who can use this

The server administrator (root).

Parameters (7)

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Limit the run to one account username. Omit it to scan all eligible accounts. Alias: account_username.

Validation and use:

account_usernameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Account username. Alias of account_user.

Validation and use:

defer_consumer_reloadOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

Set to 1 only for an intermediate call in a controlled multi-call batch. The final call must send 0 so SHM performs the pending web, mail, and panel certificate-consumer reload. Default: 0.

Validation and use:

forceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Force certificate renewal and ignore the normal AutoSSL schedule. Alias: force_renewal. Default: 0.

Validation and use:

force_renewalOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Alias of force.

Validation and use:

ignore_scheduleOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Run eligible AutoSSL checks without waiting for the normal schedule. This does not force renewal unless force or force_renewal is also enabled. Default: 0.

Validation and use:

manualOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Mark the request as manual and ignore the normal schedule. Default: 1 for this root API wrapper.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "account_username": "demo",
    "defer_consumer_reload": 0,
    "force": 1,
    "force_renewal": 1,
    "ignore_schedule": 1,
    "manual": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/autossl/run' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"account_user":"demo","manual":1,"defer_consumer_reload":0}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Run AutoSSL safely for one account
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "manual": 1,
    "defer_consumer_reload": 0
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Backup

GET/v1/root/backup/configrootView server backup configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/backup/defaultrootSet the default end-user backup schedule.

Who can use this

The server administrator (root).

Parameters (1)

idOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Resource ID.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/default' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"id":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/logsrootList server backup logs.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/logs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
DELETE/v1/root/backup/logs/{log_name}rootDelete one server backup log.

Who can use this

The server administrator (root).

Parameters (1)

log_nameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Log name that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "log_name": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/backup/logs/demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "log_name": "demo"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/logs/{log_name}rootView one server backup log.

Who can use this

The server administrator (root).

Parameters (1)

log_nameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Log name that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "log_name": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/logs/demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "log_name": "demo"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/remote-configrootView remote backup configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/remote-config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/backup/remote-configrootSave remote backup configuration.

Who can use this

The server administrator (root).

Parameters (3)

backup_urlOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
https://example.com

Validation and use:

schedule_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: GET /v1/root/backup/config

showtoenduserOptional
Send in
JSON body
Type
enum
Accepted values
on, 1, true, yes
Example
on

Showtoenduser request field. Allowed values: on, 1, true, yes.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "backup_url": "https://example.com",
    "schedule_id": 1,
    "showtoenduser": "on"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/remote-config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"backup_url":"https://example.com","schedule_id":1,"showtoenduser":"on"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "backup_url": "https://example.com",
    "schedule_id": 1,
    "showtoenduser": "on"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/file-contentrootView backup browser file content.

Who can use this

The server administrator (root).

Parameters (5)

fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
error.log

File path.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name.

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

subpathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "file": "error.log",
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "subpath": "/home/demo/public_html",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/file-content' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE","user":"demo","subpath":"/home/demo/public_html"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo",
    "subpath": "/home/demo/public_html"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/itemsrootList backup browser items.

Who can use this

The server administrator (root).

Parameters (4)

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

subpathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "subpath": "/home/demo/public_html",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/items' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE","user":"demo","subpath":"/home/demo/public_html"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo",
    "subpath": "/home/demo/public_html"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/items/pagedrootList backup browser items with paging.

Who can use this

The server administrator (root).

Parameters (7)

drawOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

DataTables draw counter.

Validation and use:

lengthOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
25

Page size.

Validation and use:

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

startOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
0

Row offset.

Validation and use:

subpathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "length": 25,
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "start": 0,
    "subpath": "/home/demo/public_html",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/items/paged' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE","user":"demo","subpath":"/home/demo/public_html"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo",
    "subpath": "/home/demo/public_html"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/backup/restore-browser/on-demandrootDelete an on-demand backup archive.

Who can use this

The server administrator (root).

Parameters (1)

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Path value.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/backup/restore-browser/on-demand' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/on-demand/cleanuprootClean up an on-demand backup restore.

Who can use this

The server administrator (root).

Parameters (1)

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/on-demand/cleanup' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/on-demand/listrootList on-demand backup archives.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/on-demand/list' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/backup/restore-browser/on-demand/preparerootPrepare an on-demand backup restore.

Who can use this

The server administrator (root).

Parameters (1)

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Path value.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/on-demand/prepare' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/pointsrootList backup browser points.

Who can use this

The server administrator (root).

Parameters (1)

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/points' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/schedulesrootList backup browser schedules.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/schedules' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/backup/restore-browser/usersrootList backup browser users.

Who can use this

The server administrator (root).

Parameters (2)

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/users' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/backup/restore-browser/ziprootDelete a backup browser ZIP archive.

Who can use this

The server administrator (root).

Parameters (3)

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/backup/restore-browser/zip' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE","user":"demo"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/restore-browser/zip/downloadrootDownload a backup browser ZIP archive.

Who can use this

The server administrator (root).

Parameters (3)

pointOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

scheduleOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

userOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "user": "demo"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/restore-browser/zip/download?schedule=SCHEDULE_FROM_LIST_RESPONSE&point=POINT_FROM_LIST_RESPONSE&user=demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/zip/generaterootGenerate a backup browser ZIP archive.

Who can use this

The server administrator (root).

Parameters (3)

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/zip/generate' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE","user":"demo"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore-browser/zip/statusrootView backup browser ZIP status.

Who can use this

The server administrator (root).

Parameters (3)

pointOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POINT_FROM_LIST_RESPONSE

Validation and use:

scheduleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEDULE_FROM_LIST_RESPONSE

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "point": "POINT_FROM_LIST_RESPONSE",
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore-browser/zip/status' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"schedule":"SCHEDULE_FROM_LIST_RESPONSE","point":"POINT_FROM_LIST_RESPONSE","user":"demo"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "schedule": "SCHEDULE_FROM_LIST_RESPONSE",
    "point": "POINT_FROM_LIST_RESPONSE",
    "user": "demo"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore/jobsrootStart a server backup restore job.

Who can use this

The server administrator (root).

Parameters (1)

usersOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
USERS_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "users": "USERS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore/jobs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"users":"USERS_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "users": "USERS_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/restore/jobs/{restore_hash}rootView a server backup restore job status.

Who can use this

The server administrator (root).

Parameters (1)

restore_hashRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
restore-hash-from-backup-list

Restore hash that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/accounts/{username}/backup/remote/files/points

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "restore_hash": "restore-hash-from-backup-list"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/restore/jobs/restore-hash-from-backup-list' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "restore_hash": "restore-hash-from-backup-list"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/restore/jobs/{restore_hash}/abortrootAbort a server backup restore job.

Who can use this

The server administrator (root).

Parameters (1)

restore_hashRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
restore-hash-from-backup-list

Restore hash that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/accounts/{username}/backup/remote/files/points

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "restore_hash": "restore-hash-from-backup-list"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/restore/jobs/restore-hash-from-backup-list/abort' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "restore_hash": "restore-hash-from-backup-list"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/restore/jobs/{restore_hash}/logrootView a server backup restore job log.

Who can use this

The server administrator (root).

Parameters (1)

restore_hashRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
restore-hash-from-backup-list

Restore hash that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/accounts/{username}/backup/remote/files/points

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "restore_hash": "restore-hash-from-backup-list"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/restore/jobs/restore-hash-from-backup-list/log' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "restore_hash": "restore-hash-from-backup-list"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/schedulesrootCreate a server backup schedule.

Who can use this

The server administrator (root).

Parameters (20)

backup_cron_daysRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
*

Cron day-of-month expression or selector.

Validation and use:

backup_cron_hoursRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
2

Cron hour expression or selector.

Validation and use:

backup_cron_minutesRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
0

Cron minute expression or selector.

Validation and use:

backup_cron_monthsRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
*

Cron month expression or selector.

Validation and use:

backup_cron_weekdayRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
*

Cron weekday expression or selector.

Validation and use:

backup_nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
daily-local

Unique schedule name.

Validation and use:

backup_partitionRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/backup

Absolute destination path/partition for backup storage.

Validation and use:

backup_pointsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
7

Number of restore points to keep.

Validation and use:

backup_accountsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
BACKUP_ACCOUNTS_FROM_LIST_RESPONSE

Specific account usernames when backup_all_accounts is disabled.

Validation and use:

backup_all_accountsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Back up all accounts when enabled.

Validation and use:

backup_databasesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Include databases.

Validation and use:

backup_enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the schedule. Default: true.

Validation and use:

backup_excludesOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
BACKUP_EXCLUDES_FROM_LIST_RESPONSE

Newline or comma separated exclude patterns.

Validation and use:

backup_filesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Include account files.

Validation and use:

backup_mailOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Include mail data.

Validation and use:

backup_monthlyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable monthly retention.

Validation and use:

backup_monthly_pointsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Monthly restore points to keep when monthly retention is enabled.

Validation and use:

backup_typeOptional
Send in
JSON body
Type
enum
Accepted values
simple, advanced
Example
simple

Allowed values: simple, advanced. Default: simple.

Validation and use:

backup_weeklyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable weekly retention.

Validation and use:

backup_weekly_pointsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Weekly restore points to keep when weekly retention is enabled.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "backup_cron_days": "*",
    "backup_cron_hours": "2",
    "backup_cron_minutes": "0",
    "backup_cron_months": "*",
    "backup_cron_weekday": "*",
    "backup_name": "daily-local",
    "backup_partition": "/backup",
    "backup_points": 7,
    "backup_accounts": "BACKUP_ACCOUNTS_FROM_LIST_RESPONSE",
    "backup_all_accounts": 1,
    "backup_databases": 1,
    "backup_enabled": 1,
    "backup_excludes": "BACKUP_EXCLUDES_FROM_LIST_RESPONSE",
    "backup_files": 1,
    "backup_mail": 1,
    "backup_monthly": 1,
    "backup_monthly_points": 1,
    "backup_type": "simple",
    "backup_weekly": 1,
    "backup_weekly_points": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/schedules' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"backup_name":"daily-local","backup_type":"simple","backup_partition":"/backup","backup_cron_minutes":"0","backup_cron_hours":"2","backup_cron_days":"*","backup_cron_months":"*","backup_cron_weekday":"*","backup_files":1,"backup_databases":1,"backup_mail":1,"backup_points":7,"backup_all_accounts":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Create daily simple backup schedule
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "backup_name": "daily-local",
    "backup_type": "simple",
    "backup_partition": "/backup",
    "backup_cron_minutes": "0",
    "backup_cron_hours": "2",
    "backup_cron_days": "*",
    "backup_cron_months": "*",
    "backup_cron_weekday": "*",
    "backup_files": 1,
    "backup_databases": 1,
    "backup_mail": 1,
    "backup_points": 7,
    "backup_all_accounts": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/backup/schedules/{schedule_id}rootDelete a server backup schedule.

Who can use this

The server administrator (root).

Parameters (1)

schedule_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
1

Schedule id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/root/backup/config

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/backup/schedules/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/backup/schedules/{schedule_id}rootView a server backup schedule.

Who can use this

The server administrator (root).

Parameters (1)

schedule_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
1

Schedule id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/root/backup/config

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/backup/schedules/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/backup/schedules/{schedule_id}rootUpdate a server backup schedule.

Who can use this

The server administrator (root).

Parameters (1)

schedule_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
1

Schedule id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/root/backup/config

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/backup/schedules/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/schedules/{schedule_id}/actionrootStart or stop a server backup schedule.

Who can use this

The server administrator (root).

Parameters (1)

schedule_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
1

Schedule id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/root/backup/config

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/schedules/1/action' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "schedule_id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/backup/thresholdsrootSave server backup threshold settings.

Who can use this

The server administrator (root).

Parameters (2)

backup_disk_percent_limitOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Validation and use:

backup_load_limitOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "backup_disk_percent_limit": 1,
    "backup_load_limit": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/backup/thresholds' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"backup_load_limit":1,"backup_disk_percent_limit":1}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "backup_load_limit": 1,
    "backup_disk_percent_limit": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Configuration

GET/v1/root/apache/configrootView Apache configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/apache/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/apache/configrootSave Apache configuration.

Who can use this

The server administrator (root).

Parameters (45)

settingsRequired
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"keep_alive":"On","keep_alive_timeout":5,"max_keep_alive_requests":50,"timeout":300,"proxy_timeout":300,"service_nofile_limit":65535,"mpm_worker_server_limit":10,"mpm_worker_start_servers":1,"mpm_worker_thread_limit":64,"mpm_worker_min_spare_threads":32,"mpm_worker_max_spare_threads":640,"mpm_worker_threads_per_child":64,"mpm_worker_max_request_workers":640,"mpm_worker_max_connections_per_child":10000,"mpm_worker_graceful_shutdown_timeout":1,"mpm_event_server_limit":10,"mpm_event_start_servers":1,"mpm_event_thread_limit":64,"mpm_event_min_spare_threads":32,"mpm_event_max_spare_threads":640,"mpm_event_threads_per_child":64,"mpm_event_max_request_workers":640,"mpm_event_max_connections_per_child":10000,"mpm_event_graceful_shutdown_timeout":1,"mpm_prefork_start_servers":40,"mpm_prefork_min_spare_servers":10,"mpm_prefork_max_spare_servers":40,"mpm_prefork_server_limit":640,"mpm_prefork_max_clients":640,"mpm_prefork_max_request_workers":640,"mpm_prefork_max_connections_per_child":10000,"trace_enable":"Off","symlink_protection":"On","server_signature":"Off","server_tokens":"ONE_TIME_TOKEN","hostname_lookups":"Off","use_canonical_name":"Off","log_level":"warn","extended_status":"On","file_etag":"None","ssl_use_stapling":"Off"}

Full Apache settings object. Missing keys are rejected by the settings check.

Validation and use:

settings.extended_statusRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Controls ExtendedStatus.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.file_etagRequired
Send in
JSON body
Type
enum
Accepted values
None, All
Example
None

Allowed values: None, All. Controls FileETag.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.hostname_lookupsRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Controls reverse DNS lookups for client IPs.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.keep_aliveRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Controls Apache KeepAlive.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.keep_alive_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

KeepAliveTimeout in seconds. Allowed range: 1-60.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.log_levelRequired
Send in
JSON body
Type
enum
Accepted values
emerg, alert, crit, error, warn, notice, info, debug, trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8
Example
emerg

Allowed values: emerg, alert, crit, error, warn, notice, info, debug, trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.max_keep_alive_requestsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

MaxKeepAliveRequests. Allowed range: 0-100000. 0 means unlimited.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_graceful_shutdown_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM GracefulShutdownTimeout. Allowed range: 0-3600. Default: 1.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_max_connections_per_childRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM MaxConnectionsPerChild. Allowed range: 0-1000000. Default: 10000.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_max_request_workersRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM MaxRequestWorkers. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_max_spare_threadsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM MaxSpareThreads. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_min_spare_threadsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM MinSpareThreads. Allowed range: 1-200000. Default: 32.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_server_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM ServerLimit. Allowed range: 1-20000. Default: 10.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_start_serversRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM StartServers. Allowed range: 1-1024. Default: 1.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_thread_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM ThreadLimit. Allowed range: 1-4096. Default: 64.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_event_threads_per_childRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Event MPM ThreadsPerChild. Allowed range: 1-4096. Default: 64.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_max_clientsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM MaxClients legacy alias. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_max_connections_per_childRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM MaxConnectionsPerChild. Allowed range: 0-1000000. Default: 10000.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_max_request_workersRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM MaxRequestWorkers. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_max_spare_serversRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM MaxSpareServers. Allowed range: 1-20000. Default: 40.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_min_spare_serversRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM MinSpareServers. Allowed range: 1-20000. Default: 10.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_server_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM ServerLimit. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_prefork_start_serversRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Prefork MPM StartServers. Allowed range: 1-20000. Default: 40.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_graceful_shutdown_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM GracefulShutdownTimeout. Allowed range: 0-3600. Default: 1.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_max_connections_per_childRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM MaxConnectionsPerChild. Allowed range: 0-1000000. Default: 10000.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_max_request_workersRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM MaxRequestWorkers. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_max_spare_threadsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM MaxSpareThreads. Allowed range: 1-200000. Default: 640.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_min_spare_threadsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM MinSpareThreads. Allowed range: 1-200000. Default: 32.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_server_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM ServerLimit. Allowed range: 1-20000. Default: 10.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_start_serversRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM StartServers. Allowed range: 1-1024. Default: 1.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_thread_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM ThreadLimit. Allowed range: 1-4096. Default: 64.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.mpm_worker_threads_per_childRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Worker MPM ThreadsPerChild. Allowed range: 1-4096. Default: 64.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.proxy_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Apache ProxyTimeout in seconds. Allowed range: 1-600.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.server_signatureRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Controls Apache ServerSignature.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.server_tokensRequired
Send in
JSON body
Type
enum
Accepted values
Prod, ProductOnly, Minimal, Major, Minor, OS, Full
Example
ONE_TIME_TOKEN

Allowed values: Prod, ProductOnly, Minimal, Major, Minor, OS, Full. Controls version detail in server headers.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.service_nofile_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Open-file limit for httpd systemd LimitNOFILE and /etc/security/limits.d/10-apache.conf. Allowed range: 1024-1048576. Default: 65535.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.ssl_use_staplingRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Controls SSLUseStapling.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.symlink_protectionRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. On uses Nonfatal=Override and blocks customer .htaccess Options overrides without HTTP 500. Off disables SHM Apache symlink and Options protection, allowing customer .htaccess Options overrides including FollowSymLinks and ExecCGI when Apache handlers permit them. Off is unsafe unless the server owner accepts the symlink and CGI execution risk.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Apache Timeout in seconds. Allowed range: 1-600.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.trace_enableRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Keep Off for shared hosting.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.use_canonical_nameRequired
Send in
JSON body
Type
enum
Accepted values
On, Off
Example
On

Allowed values: On, Off. Controls UseCanonicalName.

Validation and use: Required Send this value at the documented nested JSON body path.

applyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Apply the root Apache configuration immediately after saving. Hosted domain configuration is not rebuilt by this flag.

Validation and use:

reload_onlyOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
RELOAD_ONLY_FROM_LIST_RESPONSE

Validation and use:

skip_unchanged_activationOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
SKIP_UNCHANGED_ACTIVATION_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "keep_alive": "On",
      "keep_alive_timeout": 5,
      "max_keep_alive_requests": 50,
      "timeout": 300,
      "proxy_timeout": 300,
      "service_nofile_limit": 65535,
      "mpm_worker_server_limit": 10,
      "mpm_worker_start_servers": 1,
      "mpm_worker_thread_limit": 64,
      "mpm_worker_min_spare_threads": 32,
      "mpm_worker_max_spare_threads": 640,
      "mpm_worker_threads_per_child": 64,
      "mpm_worker_max_request_workers": 640,
      "mpm_worker_max_connections_per_child": 10000,
      "mpm_worker_graceful_shutdown_timeout": 1,
      "mpm_event_server_limit": 10,
      "mpm_event_start_servers": 1,
      "mpm_event_thread_limit": 64,
      "mpm_event_min_spare_threads": 32,
      "mpm_event_max_spare_threads": 640,
      "mpm_event_threads_per_child": 64,
      "mpm_event_max_request_workers": 640,
      "mpm_event_max_connections_per_child": 10000,
      "mpm_event_graceful_shutdown_timeout": 1,
      "mpm_prefork_start_servers": 40,
      "mpm_prefork_min_spare_servers": 10,
      "mpm_prefork_max_spare_servers": 40,
      "mpm_prefork_server_limit": 640,
      "mpm_prefork_max_clients": 640,
      "mpm_prefork_max_request_workers": 640,
      "mpm_prefork_max_connections_per_child": 10000,
      "trace_enable": "Off",
      "symlink_protection": "On",
      "server_signature": "Off",
      "server_tokens": "ONE_TIME_TOKEN",
      "hostname_lookups": "Off",
      "use_canonical_name": "Off",
      "log_level": "warn",
      "extended_status": "On",
      "file_etag": "None",
      "ssl_use_stapling": "Off"
    },
    "settings.extended_status": "On",
    "settings.file_etag": "None",
    "settings.hostname_lookups": "On",
    "settings.keep_alive": "On",
    "settings.keep_alive_timeout": 1,
    "settings.log_level": "emerg",
    "settings.max_keep_alive_requests": 1,
    "settings.mpm_event_graceful_shutdown_timeout": 1,
    "settings.mpm_event_max_connections_per_child": 1,
    "settings.mpm_event_max_request_workers": 1,
    "settings.mpm_event_max_spare_threads": 1,
    "settings.mpm_event_min_spare_threads": 1,
    "settings.mpm_event_server_limit": 1,
    "settings.mpm_event_start_servers": 1,
    "settings.mpm_event_thread_limit": 1,
    "settings.mpm_event_threads_per_child": 1,
    "settings.mpm_prefork_max_clients": 1,
    "settings.mpm_prefork_max_connections_per_child": 1,
    "settings.mpm_prefork_max_request_workers": 1,
    "settings.mpm_prefork_max_spare_servers": 1,
    "settings.mpm_prefork_min_spare_servers": 1,
    "settings.mpm_prefork_server_limit": 1,
    "settings.mpm_prefork_start_servers": 1,
    "settings.mpm_worker_graceful_shutdown_timeout": 1,
    "settings.mpm_worker_max_connections_per_child": 1,
    "settings.mpm_worker_max_request_workers": 1,
    "settings.mpm_worker_max_spare_threads": 1,
    "settings.mpm_worker_min_spare_threads": 1,
    "settings.mpm_worker_server_limit": 1,
    "settings.mpm_worker_start_servers": 1,
    "settings.mpm_worker_thread_limit": 1,
    "settings.mpm_worker_threads_per_child": 1,
    "settings.proxy_timeout": 1,
    "settings.server_signature": "On",
    "settings.server_tokens": "ONE_TIME_TOKEN",
    "settings.service_nofile_limit": 1,
    "settings.ssl_use_stapling": "On",
    "settings.symlink_protection": "On",
    "settings.timeout": 1,
    "settings.trace_enable": "On",
    "settings.use_canonical_name": "On",
    "apply": true,
    "reload_only": "RELOAD_ONLY_FROM_LIST_RESPONSE",
    "skip_unchanged_activation": "SKIP_UNCHANGED_ACTIVATION_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/apache/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"settings":{"keep_alive":"On","keep_alive_timeout":5,"max_keep_alive_requests":50,"timeout":300,"proxy_timeout":300,"service_nofile_limit":65535,"mpm_worker_server_limit":10,"mpm_worker_start_servers":1,"mpm_worker_thread_limit":64,"mpm_worker_min_spare_threads":32,"mpm_worker_max_spare_threads":640,"mpm_worker_threads_per_child":64,"mpm_worker_max_request_workers":640,"mpm_worker_max_connections_per_child":10000,"mpm_worker_graceful_shutdown_timeout":1,"mpm_event_server_limit":10,"mpm_event_start_servers":1,"mpm_event_thread_limit":64,"mpm_event_min_spare_threads":32,"mpm_event_max_spare_threads":640,"mpm_event_threads_per_child":64,"mpm_event_max_request_workers":640,"mpm_event_max_connections_per_child":10000,"mpm_event_graceful_shutdown_timeout":1,"mpm_prefork_start_servers":40,"mpm_prefork_min_spare_servers":10,"mpm_prefork_max_spare_servers":40,"mpm_prefork_server_limit":640,"mpm_prefork_max_clients":640,"mpm_prefork_max_request_workers":640,"mpm_prefork_max_connections_per_child":10000,"trace_enable":"Off","symlink_protection":"On","server_signature":"Off","server_tokens":"ONE_TIME_TOKEN","hostname_lookups":"Off","use_canonical_name":"Off","log_level":"warn","extended_status":"On","file_etag":"None","ssl_use_stapling":"Off"},"apply":true,"settings.extended_status":"On","settings.file_etag":"None","settings.hostname_lookups":"On","settings.keep_alive":"On","settings.keep_alive_timeout":1,"settings.log_level":"emerg","settings.max_keep_alive_requests":1,"settings.mpm_event_graceful_shutdown_timeout":1,"settings.mpm_event_max_connections_per_child":1,"settings.mpm_event_max_request_workers":1,"settings.mpm_event_max_spare_threads":1,"settings.mpm_event_min_spare_threads":1,"settings.mpm_event_server_limit":1,"settings.mpm_event_start_servers":1,"settings.mpm_event_thread_limit":1,"settings.mpm_event_threads_per_child":1,"settings.mpm_prefork_max_clients":1,"settings.mpm_prefork_max_connections_per_child":1,"settings.mpm_prefork_max_request_workers":1,"settings.mpm_prefork_max_spare_servers":1,"settings.mpm_prefork_min_spare_servers":1,"settings.mpm_prefork_server_limit":1,"settings.mpm_prefork_start_servers":1,"settings.mpm_worker_graceful_shutdown_timeout":1,"settings.mpm_worker_max_connections_per_child":1,"settings.mpm_worker_max_request_workers":1,"settings.mpm_worker_max_spare_threads":1,"settings.mpm_worker_min_spare_threads":1,"settings.mpm_worker_server_limit":1,"settings.mpm_worker_start_servers":1,"settings.mpm_worker_thread_limit":1,"settings.mpm_worker_threads_per_child":1,"settings.proxy_timeout":1,"settings.server_signature":"On","settings.server_tokens":"ONE_TIME_TOKEN","settings.service_nofile_limit":1,"settings.ssl_use_stapling":"On","settings.symlink_protection":"On","settings.timeout":1,"settings.trace_enable":"On","settings.use_canonical_name":"On"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save secure shared-hosting defaults
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "keep_alive": "On",
      "keep_alive_timeout": 5,
      "max_keep_alive_requests": 50,
      "timeout": 300,
      "proxy_timeout": 300,
      "service_nofile_limit": 65535,
      "mpm_worker_server_limit": 10,
      "mpm_worker_start_servers": 1,
      "mpm_worker_thread_limit": 64,
      "mpm_worker_min_spare_threads": 32,
      "mpm_worker_max_spare_threads": 640,
      "mpm_worker_threads_per_child": 64,
      "mpm_worker_max_request_workers": 640,
      "mpm_worker_max_connections_per_child": 10000,
      "mpm_worker_graceful_shutdown_timeout": 1,
      "mpm_event_server_limit": 10,
      "mpm_event_start_servers": 1,
      "mpm_event_thread_limit": 64,
      "mpm_event_min_spare_threads": 32,
      "mpm_event_max_spare_threads": 640,
      "mpm_event_threads_per_child": 64,
      "mpm_event_max_request_workers": 640,
      "mpm_event_max_connections_per_child": 10000,
      "mpm_event_graceful_shutdown_timeout": 1,
      "mpm_prefork_start_servers": 40,
      "mpm_prefork_min_spare_servers": 10,
      "mpm_prefork_max_spare_servers": 40,
      "mpm_prefork_server_limit": 640,
      "mpm_prefork_max_clients": 640,
      "mpm_prefork_max_request_workers": 640,
      "mpm_prefork_max_connections_per_child": 10000,
      "trace_enable": "Off",
      "symlink_protection": "On",
      "server_signature": "Off",
      "server_tokens": "ONE_TIME_TOKEN",
      "hostname_lookups": "Off",
      "use_canonical_name": "Off",
      "log_level": "warn",
      "extended_status": "On",
      "file_etag": "None",
      "ssl_use_stapling": "Off"
    },
    "apply": true
  }
}
Disable Apache symlink and Options protection for compatibility
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "keep_alive": "On",
      "keep_alive_timeout": 5,
      "max_keep_alive_requests": 50,
      "timeout": 300,
      "proxy_timeout": 300,
      "service_nofile_limit": 65535,
      "mpm_worker_server_limit": 10,
      "mpm_worker_start_servers": 1,
      "mpm_worker_thread_limit": 64,
      "mpm_worker_min_spare_threads": 32,
      "mpm_worker_max_spare_threads": 640,
      "mpm_worker_threads_per_child": 64,
      "mpm_worker_max_request_workers": 640,
      "mpm_worker_max_connections_per_child": 10000,
      "mpm_worker_graceful_shutdown_timeout": 1,
      "mpm_event_server_limit": 10,
      "mpm_event_start_servers": 1,
      "mpm_event_thread_limit": 64,
      "mpm_event_min_spare_threads": 32,
      "mpm_event_max_spare_threads": 640,
      "mpm_event_threads_per_child": 64,
      "mpm_event_max_request_workers": 640,
      "mpm_event_max_connections_per_child": 10000,
      "mpm_event_graceful_shutdown_timeout": 1,
      "mpm_prefork_start_servers": 40,
      "mpm_prefork_min_spare_servers": 10,
      "mpm_prefork_max_spare_servers": 40,
      "mpm_prefork_server_limit": 640,
      "mpm_prefork_max_clients": 640,
      "mpm_prefork_max_request_workers": 640,
      "mpm_prefork_max_connections_per_child": 10000,
      "trace_enable": "Off",
      "symlink_protection": "Off",
      "server_signature": "Off",
      "server_tokens": "ONE_TIME_TOKEN",
      "hostname_lookups": "Off",
      "use_canonical_name": "Off",
      "log_level": "warn",
      "extended_status": "On",
      "file_etag": "None",
      "ssl_use_stapling": "Off"
    },
    "apply": true
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/cache/configrootView cache configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/cache/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read server cache settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/cache/configrootSave cache configuration.

Who can use this

The server administrator (root).

Parameters (22)

settingsRequired
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"nginx_dynamic_ttl":"15m","nginx_static_ttl":"7d","apache_ttl_seconds":900}

Server cache settings object. Recognized keys are validated and saved; omitted recognized keys keep their current/default values.

Validation and use:

applyOptional
Send in
JSON body
Type
enum
Accepted values
1, true, yes, on
Example
true

Atomic apply is mandatory and defaults to true. Explicit false/off/0 is rejected; use GET to inspect pending_apply.

Validation and use: Default: true.

settings.apache_debug_headersOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Controls Apache cache detail/debug response headers.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.apache_dir_lengthOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 1
Example
1

Apache CacheDirLength value. Range: 1-3.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 3. Default: 1.

settings.apache_dir_levelsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 2
Example
2

Apache CacheDirLevels value. Range: 1-4.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 4. Default: 2.

settings.apache_ignore_no_last_modOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Allows Apache to cache otherwise-safe responses without Last-Modified. private, no-store, no-cache, Set-Cookie, sensitive-path, authorization, and unsafe-method safeguards remain enforced for every profile.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.apache_lockOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Controls Apache CacheLock to prevent concurrent cache fills.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.apache_lock_max_ageOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 5
Example
5

Apache CacheLockMaxAge in seconds. Range: 1-60.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 60. Default: 5.

settings.apache_quick_handlerOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
off

Controls Apache CacheQuickHandler. Keep off unless the vhost behavior has been compatibility-tested.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: off.

settings.apache_stale_on_errorOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Controls serving stale Apache cache entries on backend errors.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.apache_ttl_secondsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 900
Example
900

Apache anonymous dynamic-response TTL in seconds. Range: 60-2592000.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 60. Maximum 2592000. Default: 900.

settings.nginx_background_updateOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Controls background refresh of expired Nginx cache entries while stale content may be served.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.nginx_cache_keys_zone_sizeOptional
Send in
JSON body
Type
size|string
Accepted values
Any value matching size|string; default: 128k
Example
128k

Nginx shared-memory keys_zone size per dynamic/static cache zone. This consumes RAM, not disk and is multiplied by dynamic/static zones across cached vhosts. Use k, m, or g; normalized range is 32 KB-128 MB. The high-cardinality default is 128k; raise it for unusually large individual sites.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 32k. Maximum 128m. Default: 128k.

settings.nginx_cache_max_sizeOptional
Send in
JSON body
Type
size|string
Accepted values
Any value matching size|string; default: 64m
Example
64m

Maximum Nginx disk cache size per dynamic/static cache zone. Use k, m, or g; normalized range is 64 MB-100 GB. The high-cardinality default is 64m per zone.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 64m. Maximum 100g. Default: 64m.

settings.nginx_cache_redirectsOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Whether Nginx also caches HTTP 301/302 responses in the dynamic zone.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.nginx_dynamic_ttlOptional
Send in
JSON body
Type
time|string
Accepted values
Any value matching time|string; default: 900s
Example
900s

Nginx anonymous dynamic-response TTL, inherited by domains without an explicit dynamic TTL. Use a unit suffix ms, s, m, h, d, or w; normalized duration must be 60-2592000 seconds. Default: 900s.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 60s. Maximum 30d. Default: 900s.

settings.nginx_lockOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Controls proxy_cache_lock to prevent concurrent cache fills for the same key.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.nginx_mobile_bucketOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Whether Nginx separates mobile/tablet/TV cache-key buckets from desktop.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.nginx_revalidateOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
on

Controls conditional upstream revalidation of Nginx cache entries.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: on.

settings.nginx_static_access_logOptional
Send in
JSON body
Type
enum
Accepted values
on, off, 1, 0, true, false, yes, no
Example
off

Default static asset access-log policy. Off reduces disk I/O; Cache Manager can override it per domain.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: off.

settings.nginx_static_ttlOptional
Send in
JSON body
Type
time|string
Accepted values
Any value matching time|string; default: 1d
Example
1d

Nginx static-asset TTL, inherited by domains without an explicit static TTL. Use a unit suffix ms, s, m, h, d, or w; normalized duration must be 60-2592000 seconds. Default: 1d.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 60s. Maximum 30d. Default: 1d.

settings.nginx_use_staleOptional
Send in
JSON body
Type
enum
Accepted values
off, error, timeout, invalid_header, updating, http_429, http_500, http_502, http_503, http_504
Example
off

Space-separated proxy_cache_use_stale conditions. Tokens are de-duplicated; unsupported tokens are rejected. Use off alone to disable stale delivery.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: error timeout invalid_header updating http_429 http_500 http_502 http_503 http_504.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "nginx_dynamic_ttl": "15m",
      "nginx_static_ttl": "7d",
      "apache_ttl_seconds": 900
    },
    "apply": true,
    "settings.apache_debug_headers": "on",
    "settings.apache_dir_length": 1,
    "settings.apache_dir_levels": 2,
    "settings.apache_ignore_no_last_mod": "on",
    "settings.apache_lock": "on",
    "settings.apache_lock_max_age": 5,
    "settings.apache_quick_handler": "off",
    "settings.apache_stale_on_error": "on",
    "settings.apache_ttl_seconds": 900,
    "settings.nginx_background_update": "on",
    "settings.nginx_cache_keys_zone_size": "128k",
    "settings.nginx_cache_max_size": "64m",
    "settings.nginx_cache_redirects": "on",
    "settings.nginx_dynamic_ttl": "900s",
    "settings.nginx_lock": "on",
    "settings.nginx_mobile_bucket": "on",
    "settings.nginx_revalidate": "on",
    "settings.nginx_static_access_log": "off",
    "settings.nginx_static_ttl": "1d",
    "settings.nginx_use_stale": "off"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/cache/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"settings":{"nginx_dynamic_ttl":"15m","nginx_static_ttl":"7d","apache_ttl_seconds":900},"apply":true}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Change inherited dynamic/static TTLs and apply safely
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "nginx_dynamic_ttl": "15m",
      "nginx_static_ttl": "7d",
      "apache_ttl_seconds": 900
    },
    "apply": true
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Change cache-zone capacity and apply atomically
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "nginx_cache_keys_zone_size": "128k",
      "nginx_cache_max_size": "256m"
    }
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/database/client-tools/installrootInstall tools that let SHM connect to a MariaDB server.

Before you start

This installs client tools, not a new local database server.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/client-tools/install' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Install remote-profile client tools
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/database/configrootView MariaDB configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/database/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read local MariaDB configuration
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/database/configrootSave MariaDB configuration.

Who can use this

The server administrator (root).

Parameters (1)

contentRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
[client] port=3306 [mysqld] max_connections=200

Complete MariaDB option-file content for /etc/my.cnf. Maximum 1 MB; empty content is rejected. Preserve required include/client/server sections from the GET response unless intentionally changing them.

Validation and use: Minimum length 1. Maximum length 1048576.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "content": "[client]\nport=3306\n\n[mysqld]\nmax_connections=200\n"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"content":"[client]\nport=3306\n\n[mysqld]\nmax_connections=200\n"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save the full MariaDB configuration returned by GET
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "content": "[client]\nport=3306\n\n[mysqld]\nmax_connections=200\n"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/database/config/recommendationrootPreview database settings suggested for your server's available resources.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/database/config/recommendation' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Preview the adaptive MariaDB configuration
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/database/config/recommendationrootApply the database settings returned by the preview.

Before you start

Review the preview first. Applying the settings can restart the database service; check the result before continuing.

Who can use this

The server administrator (root).

Parameters (2)

expected_current_sha256Required
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Exact current_sha256 returned by the immediately preceding GET recommendation preview. Prevents overwriting a configuration changed by another administrator or process.

Validation and use: Minimum length 64. Maximum length 64. Pattern: ^[a-f0-9]{64}$.

expected_generated_sha256Required
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Exact generated_sha256 returned by the immediately preceding GET recommendation preview. Prevents applying a recommendation after resource/version/output drift.

Validation and use: Minimum length 64. Maximum length 64. Pattern: ^[a-f0-9]{64}$.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "expected_current_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "expected_generated_sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/config/recommendation' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"expected_current_sha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","expected_generated_sha256":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Apply the exact validated MariaDB preview
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "expected_current_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "expected_generated_sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/database/local/sync-metadatarootCreate missing databases, users and permissions on a selected database server.

Before you start

This action does not copy the contents of database tables. Use profile copy when you need to move the data too.

Who can use this

The server administrator (root).

Parameters (5)

create_databasesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Create missing databases recorded in SHM metadata.

Validation and use: Default: true.

create_usersOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Create users from valid SHM mysql_native_password hashes after the target plugin capability gate passes.

Validation and use: Default: true.

grant_privilegesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Apply SHM-recorded database privileges for valid destination user hosts.

Validation and use: Default: true.

overwrite_usersOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Also ALTER existing destination users to the saved password hash. Defaults to false.

Validation and use: Default: false.

target_profileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: localhost
Example
localhost

Destination SQL Profile key. Defaults to localhost.

Validation and use: Default: localhost.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "create_databases": true,
    "create_users": true,
    "grant_privileges": true,
    "overwrite_users": false,
    "target_profile": "localhost"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/local/sync-metadata' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"target_profile":"localhost","create_databases":true,"create_users":true,"grant_privileges":true,"overwrite_users":false}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Repair missing local databases, users, and grants
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "target_profile": "localhost",
    "create_databases": true,
    "create_users": true,
    "grant_privileges": true,
    "overwrite_users": false
  }
}
Create only databases and grants on a remote profile
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "target_profile": "remote-main",
    "create_databases": true,
    "create_users": false,
    "grant_privileges": true,
    "overwrite_users": false
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/database/profile-copyrootCopy account databases and users between saved database server connections.

Before you start

Check the source and destination carefully. Replacing an existing destination database requires the appropriate overwrite choice.

Who can use this

The server administrator (root).

Parameters (7)

target_profileRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
remote-main

Destination SQL Profile key. It must resolve to a different normalized host+port endpoint.

Validation and use:

include_dataOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Copy database schema and table data using verified dump/import.

Validation and use: Default: true.

include_grantsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Apply SHM-recorded grants on the destination using the same limited destination-host mapping.

Validation and use: Default: true.

include_usersOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Copy source user definitions to limited destination hosts. Individual unsupported authentication/plugin definitions are reported per user.

Validation and use: Default: true.

overwrite_databasesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Replace an existing destination database only after source-object verification, validated source dump, and validated target backup. Empty source databases are refused for overwrite.

Validation and use: Default: false.

overwrite_usersOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Replace an existing destination user only after snapshotting its exact SHOW CREATE USER and SHOW GRANTS state; both definition and grants are restored if replacement fails.

Validation and use: Default: false.

source_profileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: localhost
Example
localhost

Source SQL Profile key. Defaults to localhost.

Validation and use: Default: localhost.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "target_profile": "remote-main",
    "include_data": true,
    "include_grants": true,
    "include_users": true,
    "overwrite_databases": false,
    "overwrite_users": false,
    "source_profile": "localhost"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/profile-copy' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"source_profile":"localhost","target_profile":"remote-main","include_data":true,"include_users":true,"include_grants":true,"overwrite_users":false,"overwrite_databases":false}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Copy local profile to remote profile without overwriting target DBs
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_profile": "localhost",
    "target_profile": "remote-main",
    "include_data": true,
    "include_users": true,
    "include_grants": true,
    "overwrite_users": false,
    "overwrite_databases": false
  }
}
Overwrite remote profile from local profile after explicit confirmation
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_profile": "localhost",
    "target_profile": "remote-main",
    "include_data": true,
    "include_users": true,
    "include_grants": true,
    "overwrite_users": true,
    "overwrite_databases": true
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/database/serverrootView the active database connection and the database tools installed on the server.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/database/server' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read Database Server state
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/database/sql-profilesrootList saved database server connections.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/database/sql-profiles' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List SQL Profiles
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/database/sql-profilesrootSave a connection to a database server.

Who can use this

The server administrator (root).

Parameters (4)

hostRequired
Send in
JSON body
Type
hostname|IP|string
Accepted values
Any value matching hostname|IP|string
Example
db-private.example.net

Remote MariaDB/MySQL/Percona hostname or IP address.

Validation and use:

passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Remote root password. Empty values and CR/LF/NUL control characters are rejected. The fixed SQL username is root.

Validation and use:

profile_nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
remote-main

Unique 2-32 character profile key. The first character must be a letter or digit; remaining characters may also use dash or underscore. localhost is reserved.

Validation and use: Minimum length 2. Maximum length 32. Pattern: ^[A-Za-z0-9][A-Za-z0-9_-]{1,31}$.

portOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 3306
Example
3306

Remote SQL TCP port. Defaults to 3306.

Validation and use: Minimum 1. Maximum 65535. Default: 3306.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "host": "db-private.example.net",
    "password": "STRONG_PASSWORD",
    "profile_name": "remote-main",
    "port": 3306
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/sql-profiles' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"profile_name":"remote-main","host":"db-private.example.net","port":3306,"password":"STRONG_PASSWORD"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Create a remote MariaDB profile
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "profile_name": "remote-main",
    "host": "db-private.example.net",
    "port": 3306,
    "password": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Create a remote MySQL profile on a custom port
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "profile_name": "mysql84",
    "host": "10.20.30.40",
    "port": 3307,
    "password": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/database/sql-profiles/{profile_name}rootRemove a saved database server connection.

Who can use this

The server administrator (root).

Parameters (1)

profile_nameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
remote-old

Inactive remote SQL Profile key returned by GET sql-profiles.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "profile_name": "remote-old"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/database/sql-profiles/remote-old' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Delete an inactive remote profile
{
  "path_parameters": {
    "profile_name": "remote-old"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/database/sql-profiles/{profile_name}/activaterootChoose which saved database server connection SHM should use.

Who can use this

The server administrator (root).

Parameters (1)

profile_nameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
remote-main

Existing SQL Profile key returned by GET sql-profiles, including localhost.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "profile_name": "remote-main"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/database/sql-profiles/remote-main/activate' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Activate a tested remote profile
{
  "path_parameters": {
    "profile_name": "remote-main"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Switch back to the local profile
{
  "path_parameters": {
    "profile_name": "localhost"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/dns/configrootView PowerDNS configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/dns/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read the active PowerDNS configuration
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/dns/configrootSave PowerDNS configuration.

Who can use this

The server administrator (root).

Parameters (1)

contentRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
upgrade-unknown-types=1 bind-ignore-broken-records=yes local-address-nonexist-fail=no distributor-threads=1 disable-axfr=yes launch=bind bind-check-interval=30 bind-config=/etc/pdns/pdns.zones bind-dnssec-db=/var/lib/pdns/bind-dnssec.sqlite3

Complete PowerDNS authoritative-server configuration for /etc/pdns/pdns.conf. Maximum 1 MB; empty content is rejected. Preserve required backend and zone-registry settings from the GET response unless intentionally changing them.

Validation and use: Minimum length 1. Maximum length 1048576.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "content": "upgrade-unknown-types=1\nbind-ignore-broken-records=yes\nlocal-address-nonexist-fail=no\ndistributor-threads=1\ndisable-axfr=yes\nlaunch=bind\nbind-check-interval=30\nbind-config=/etc/pdns/pdns.zones\nbind-dnssec-db=/var/lib/pdns/bind-dnssec.sqlite3\n"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"content":"upgrade-unknown-types=1\nbind-ignore-broken-records=yes\nlocal-address-nonexist-fail=no\ndistributor-threads=1\ndisable-axfr=yes\nlaunch=bind\nbind-check-interval=30\nbind-config=/etc/pdns/pdns.zones\nbind-dnssec-db=/var/lib/pdns/bind-dnssec.sqlite3\n"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save a validated Bind-backend configuration
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "content": "upgrade-unknown-types=1\nbind-ignore-broken-records=yes\nlocal-address-nonexist-fail=no\ndistributor-threads=1\ndisable-axfr=yes\nlaunch=bind\nbind-check-interval=30\nbind-config=/etc/pdns/pdns.zones\nbind-dnssec-db=/var/lib/pdns/bind-dnssec.sqlite3\n"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/domain-rebuild/jobsrootStart rebuilding configurations for the selected domains.

Who can use this

The server administrator (root).

Parameters (2)

modeRequired
Send in
JSON body
Type
enum
Accepted values
php, apache, nginx
Example
php

Operation mode. Allowed values: php, apache, nginx.

Validation and use:

cacheOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

1 to keep web cache enabled during the rebuild.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "php",
    "cache": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/domain-rebuild/jobs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"mode":"php","cache":0}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Rebuild PHP-FPM only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "php",
    "cache": 0
  }
}
Rebuild Apache layer and keep cache
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "apache",
    "cache": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/domain-rebuild/jobs/{job_id}rootCheck the progress of a domain configuration rebuild.

Who can use this

The server administrator (root).

Parameters (3)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
job-id-from-previous-response

Job id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

limitOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
25

Result size limit.

Validation and use:

offsetOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
0

Offset query parameter.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {
    "limit": 25,
    "offset": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/domain-rebuild/jobs/job-id-from-previous-response?limit=25&offset=0' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {
    "limit": 25,
    "offset": 0
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/ftp/configrootView FTP configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/ftp/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read Pure-FTPd settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/ftp/configrootSave FTP configuration.

Who can use this

The server administrator (root).

Parameters (10)

settingsRequired
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"max_clients_number":50,"max_clients_per_ip":8,"max_idle_time":5,"passive_port_start":49152,"passive_port_end":65534,"tls_mode":1,"broken_clients_compatibility":"yes","verbose_log":"commands_responses"}

Complete Pure-FTPd settings object. All eight nested properties are required; partial objects are rejected instead of inheriting hidden values.

Validation and use:

settings.broken_clients_compatibilityRequired
Send in
JSON body
Type
enum
Accepted values
yes, no
Example
yes

Enable or disable Pure-FTPd compatibility workarounds for older or non-standard FTP clients.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.max_clients_numberRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
50

Global maximum number of simultaneous FTP client connections.

Validation and use: Required Send this value at the documented nested JSON body path. Minimum 1. Maximum 5000.

settings.max_clients_per_ipRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
8

Maximum number of simultaneous FTP connections accepted from one IP address.

Validation and use: Required Send this value at the documented nested JSON body path. Minimum 1. Maximum 1000.

settings.max_idle_timeRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
5

Maximum idle time in minutes before Pure-FTPd disconnects an inactive client.

Validation and use: Required Send this value at the documented nested JSON body path. Minimum 1. Maximum 240.

settings.passive_port_endRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
65534

Last TCP port in the passive FTP range. It must be greater than passive_port_start.

Validation and use: Required Send this value at the documented nested JSON body path. Minimum 1024. Maximum 65535.

settings.passive_port_startRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
49152

First TCP port in the passive FTP range. It must be lower than passive_port_end.

Validation and use: Required Send this value at the documented nested JSON body path. Minimum 1024. Maximum 65535.

settings.tls_modeRequired
Send in
JSON body
Type
enum
Accepted values
0, 1, 2, 3
Example
1

Pure-FTPd TLS mode: 0 disables TLS, 1 permits cleartext and TLS, 2 requires TLS for login, and 3 requires TLS for control and data connections.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.verbose_logRequired
Send in
JSON body
Type
enum
Accepted values
off, commands, commands_responses
Example
commands_responses

Logging level: off, client commands only, or client commands plus server responses.

Validation and use: Required Send this value at the documented nested JSON body path.

applyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

When true, converge and verify the active Pure-FTPd runtime in the same transaction. When false or omitted, save only the validated settings file.

Validation and use: Default: false.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "max_clients_number": 50,
      "max_clients_per_ip": 8,
      "max_idle_time": 5,
      "passive_port_start": 49152,
      "passive_port_end": 65534,
      "tls_mode": 1,
      "broken_clients_compatibility": "yes",
      "verbose_log": "commands_responses"
    },
    "settings.broken_clients_compatibility": "yes",
    "settings.max_clients_number": 50,
    "settings.max_clients_per_ip": 8,
    "settings.max_idle_time": 5,
    "settings.passive_port_end": 65534,
    "settings.passive_port_start": 49152,
    "settings.tls_mode": 1,
    "settings.verbose_log": "commands_responses",
    "apply": true
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/ftp/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"settings":{"max_clients_number":50,"max_clients_per_ip":8,"max_idle_time":5,"passive_port_start":49152,"passive_port_end":65534,"tls_mode":1,"broken_clients_compatibility":"yes","verbose_log":"commands_responses"},"apply":true,"settings.broken_clients_compatibility":"yes","settings.max_clients_number":50,"settings.max_clients_per_ip":8,"settings.max_idle_time":5,"settings.passive_port_end":65534,"settings.passive_port_start":49152,"settings.tls_mode":1,"settings.verbose_log":"commands_responses"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save and apply Pure-FTPd settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "max_clients_number": 50,
      "max_clients_per_ip": 8,
      "max_idle_time": 5,
      "passive_port_start": 49152,
      "passive_port_end": 65534,
      "tls_mode": 1,
      "broken_clients_compatibility": "yes",
      "verbose_log": "commands_responses"
    },
    "apply": true
  }
}
Save Pure-FTPd settings without restarting
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "max_clients_number": 50,
      "max_clients_per_ip": 8,
      "max_idle_time": 5,
      "passive_port_start": 49152,
      "passive_port_end": 65534,
      "tls_mode": 1,
      "broken_clients_compatibility": "yes",
      "verbose_log": "commands_responses"
    },
    "apply": false
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/mail/actions/{action}rootRun a server mail maintenance action.

Who can use this

The server administrator (root).

Parameters (15)

actionRequired
Send in
URL path
Type
enum
Accepted values
install_runtime, install-runtime, mail_security_maintenance, mail-security-maintenance, rebuild_email_filters, rebuild-email-filters, rebuild_filters, rebuild-filters, rebuild_exim_maps, rebuild-exim-maps, rebuild_maps, sync_mail_quotas, sync-mail-quotas, sync_quotas, install_radicale, install-radicale, ensure_radicale_mailbox, ensure-radicale-mailbox, ensure_radicale_mailboxes, ensure-radicale-mailboxes, doveadm_resync, doveadm-resync, doveadm_force_resync, doveadm-force-resync
Example
install_runtime

Action path parameter. Allowed values: install_runtime, install-runtime, mail_security_maintenance, mail-security-maintenance, rebuild_email_filters, rebuild-email-filters, rebuild_filters, rebuild-filters, rebuild_exim_maps, rebuild-exim-maps, rebuild_maps, sync_mail_quotas, sync-mail-quotas, sync_quotas, install_radicale, install-radicale, ensure_radicale_mailbox, ensure-radicale-mailbox, ensure_radicale_mailboxes, ensure-radicale-mailboxes, doveadm_resync, doveadm-resync, doveadm_force_resync, doveadm-force-resync.

Validation and use: Required Replace this placeholder directly in the URL path.

accountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Compatibility account filter for Doveadm resync. When supplied, it must be a non-empty scalar valid system username.

Validation and use: Needed when: optional alias of account user; doveadm resync only.

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Limit the selected maintenance action to one SHM account username. For quota synchronization, a supplied value must be a non-empty string containing a valid system username. For Doveadm resync, a supplied value must be a non-empty scalar valid system username.

Validation and use: Needed when: optional; quota, radicale, or doveadm maintenance filter.

apply_configOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Render and validate the saved Exim and Dovecot configuration after rebuilding maps, then signal Exim only if active. Set reload_services to reload active Dovecot too. Maintenance never starts stopped mail services or changes SpamAssassin/ClamAV operation; use the separate Mail Server Apply action for scanner changes.

Validation and use: Default: false. Needed when: optional; rebuild exim maps only.

domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Limit Doveadm resync to mailboxes in one valid fully qualified domain. A supplied value cannot be empty.

Validation and use: Needed when: optional; doveadm resync only.

dry_runOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Return the exact Doveadm commands without executing them. Accepted supplied values are 1, true, yes, on, 0, false, no, or off; malformed values are rejected rather than treated as execution mode.

Validation and use: Default: false. Needed when: optional; doveadm resync only.

emailOptional
Send in
JSON body
Type
email|string
Accepted values
Any value matching email|string
Example
user@example.com

Limit quota, Radicale, or Doveadm maintenance to one current mailbox address. For quota synchronization, a supplied value must be a non-empty string containing a valid mailbox address. For Doveadm, a supplied value must be a non-empty scalar valid mailbox address.

Validation and use: Needed when: optional mailbox filter.

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Compatibility alias for install.

Validation and use: Default: true. Needed when: optional alias of install; install runtime only.

installOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Install when true or remove when false. Used only by install_runtime.

Validation and use: Default: true. Needed when: optional; install runtime only.

missing_onlyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Skip Radicale mailbox layouts that are already complete.

Validation and use: Default: false. Needed when: optional; radicale mailbox ensure only.

reload_servicesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Validate and reload only active Dovecot and Exim services after rebuilding maps. Stopped services are preserved. Reload failures are reported without a restart fallback.

Validation and use: Default: false. Needed when: optional; rebuild exim maps only.

skip_readyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Compatibility alias for missing_only.

Validation and use: Default: false. Needed when: optional alias of missing only.

uidOptional
Send in
JSON body
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
1000

Limit Doveadm resync to one SHM account UID from 1 through 2147483647. Copy accounts[].id from GET /v1/accounts; do not use owner_id.

Validation and use: Minimum 1. Maximum 2147483647. GET /v1/accounts Needed when: optional; doveadm resync only.

userOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
demo

Compatibility alias for account_user in quota/Radicale actions and for email in Doveadm resync. For quota synchronization, user and account_user must identify the same account when both are supplied. For Doveadm it must be a valid mailbox address; prefer the explicit email field.

Validation and use: Needed when: optional compatibility alias.

usernameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Compatibility account username filter for Doveadm resync. When supplied, it must be a non-empty scalar valid system username.

Validation and use: Needed when: optional alias of account user; doveadm resync only.

Supported actions and option sets

action values (7)
install_runtimerebuild_exim_mapssync_mail_quotasmail_security_maintenanceinstall_radicaleensure_radicale_mailboxensure_radicale_mailboxes
Action-specific request bodies
{
  "install_runtime": {
    "install": 1
  },
  "rebuild_exim_maps": {
    "reload_services": 1
  },
  "sync_mail_quotas": {
    "account_user": "demo"
  },
  "mail_security_maintenance": [],
  "install_radicale": {
    "install": 1
  },
  "ensure_radicale_mailbox": {
    "account_user": "demo",
    "email": "user@example.com",
    "missing_only": true
  }
}

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "action": "install_runtime"
  },
  "query_parameters": {},
  "json_body": {
    "account": "demo",
    "account_user": "demo",
    "apply_config": false,
    "domain": "example.com",
    "dry_run": true,
    "email": "user@example.com",
    "enabled": true,
    "install": true,
    "missing_only": true,
    "reload_services": true,
    "skip_ready": false,
    "uid": 1000,
    "user": "demo",
    "username": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail/actions/install_runtime' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"install":true}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Install the managed mail runtime
{
  "path_parameters": {
    "action": "install_runtime"
  },
  "query_parameters": {},
  "json_body": {
    "install": true
  }
}
Rebuild Exim maps and reload mail services
{
  "path_parameters": {
    "action": "rebuild_exim_maps"
  },
  "query_parameters": {},
  "json_body": {
    "reload_services": true
  }
}
Synchronize mailbox quotas for every account
{
  "path_parameters": {
    "action": "sync_mail_quotas"
  },
  "query_parameters": {},
  "json_body": {}
}
Synchronize quotas for one account
{
  "path_parameters": {
    "action": "sync_mail_quotas"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo"
  }
}
Synchronize one exact mailbox quota
{
  "path_parameters": {
    "action": "sync_mail_quotas"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "email": "user@example.com"
  }
}
Run mail security maintenance
{
  "path_parameters": {
    "action": "mail_security_maintenance"
  },
  "query_parameters": {},
  "json_body": {}
}
Install the managed Radicale runtime
{
  "path_parameters": {
    "action": "install_radicale"
  },
  "query_parameters": {},
  "json_body": {}
}
Ensure one Radicale mailbox layout
{
  "path_parameters": {
    "action": "ensure_radicale_mailbox"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "email": "user@example.com",
    "missing_only": true
  }
}
Ensure all missing Radicale mailbox layouts
{
  "path_parameters": {
    "action": "ensure_radicale_mailboxes"
  },
  "query_parameters": {},
  "json_body": {
    "missing_only": true
  }
}
Preview Doveadm resync for one mailbox
{
  "path_parameters": {
    "action": "doveadm_resync"
  },
  "query_parameters": {},
  "json_body": {
    "email": "user@example.com",
    "dry_run": true
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/mail/configrootView mail configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/mail/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read current mail configuration
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/mail/configrootSave mail configuration.

Who can use this

The server administrator (root).

Parameters (45)

settingsRequired
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"dovecot_vsz_limit":"2048M","exim_process_memory_limit":"1024M"}

Mail settings object. Omitted setting keys are filled from saved/default schema values.

Validation and use:

applyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Apply runtime mail configuration after saving. Omit or set false to save only.

Validation and use:

settings.auto_thawOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
SETTINGS_AUTO_THAW_FROM_LIST_RESPONSE

Retry frozen non-bounce messages after this age.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.bounce_return_size_limitOptional
Send in
JSON body
Type
size string
Accepted values
Any value matching size string
Example
SETTINGS_BOUNCE_RETURN_SIZE_LIMIT_FROM_LIST_RESPONSE

Maximum original content returned in bounces.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.callout_domain_negative_expireOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
example.com

Negative callout cache TTL for domains.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.callout_negative_expireOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
SETTINGS_CALLOUT_NEGATIVE_EXPIRE_FROM_LIST_RESPONSE

Negative callout cache TTL for addresses.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.check_log_inodesOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Minimum free log filesystem inodes when logs are on a separate partition.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.check_log_spaceOptional
Send in
JSON body
Type
size string
Accepted values
Any value matching size string
Example
SETTINGS_CHECK_LOG_SPACE_FROM_LIST_RESPONSE

Minimum free log filesystem space when logs are on a separate partition.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.check_rfc2047_lengthOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enforce RFC2047 encoded-word length checks.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.check_spool_inodesOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Minimum free spool filesystem inodes before accepting mail.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.check_spool_spaceOptional
Send in
JSON body
Type
size string
Accepted values
Any value matching size string
Example
SETTINGS_CHECK_SPOOL_SPACE_FROM_LIST_RESPONSE

Minimum free spool filesystem space before accepting mail.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.deliver_queue_load_maxOptional
Send in
JSON body
Type
number|string
Accepted values
Any value matching number|string
Example
1

Abort queue runs above this load average.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.disable_ipv6Optional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Disable Exim IPv6 activity.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.dovecot_imap_login_process_limitOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
512

Maximum concurrent Dovecot IMAP login processes (1-100000). Default 256 when absent; saved values survive updates. TLS connections may retain these processes after authentication. Does not change SMTP or IMAP worker limits. Example: 512.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.dovecot_vsz_limitOptional
Send in
JSON body
Type
memory string
Accepted values
Any value matching memory string
Example
SETTINGS_DOVECOT_VSZ_LIMIT_FROM_LIST_RESPONSE

Dovecot configuration parser, IMAP, POP3 and LMTP per-process virtual memory/address-space limit. Default 1024M on normal servers; 2048M is suitable for large mailbox migrations when RAM allows.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.exim_process_memory_limitOptional
Send in
JSON body
Type
memory string
Accepted values
Any value matching memory string
Example
SETTINGS_EXIM_PROCESS_MEMORY_LIMIT_FROM_LIST_RESPONSE

Exim daemon/delivery per-process virtual memory/address-space limit applied through systemd LimitAS. Default 1024M on normal servers.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.header_maxsizeOptional
Send in
JSON body
Type
size string
Accepted values
Any value matching size string
Example
SETTINGS_HEADER_MAXSIZE_FROM_LIST_RESPONSE

Maximum total message header size, for example 10M.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.ignore_bounce_errors_afterOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
SETTINGS_IGNORE_BOUNCE_ERRORS_AFTER_FROM_LIST_RESPONSE

Discard undeliverable frozen bounces after this age.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.local_from_checkOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Exim local_from_check for untrusted local submissions.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.log_timezoneOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Include timezone offset in Exim logs.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.message_body_newlinesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Preserve newlines in Exim $message_body expansions.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.message_size_limitOptional
Send in
JSON body
Type
size string
Accepted values
Any value matching size string
Example
SETTINGS_MESSAGE_SIZE_LIMIT_FROM_LIST_RESPONSE

Maximum accepted message size, for example 1024M.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.openssl_optionsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SETTINGS_OPENSSL_OPTIONS_FROM_LIST_RESPONSE

Exim OpenSSL option flags, for example +no_sslv2 +no_sslv3.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.queue_auto_delete_after_daysOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

SHM cron deletes queued messages at least this many days old. 0 disables auto-delete.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.queue_only_loadOptional
Send in
JSON body
Type
number|string
Accepted values
Any value matching number|string
Example
1

Queue-only threshold above this load average.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.queue_run_maxOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum concurrent Exim queue runners.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.rbl_actionOptional
Send in
JSON body
Type
enum
Accepted values
hard_reject, mark_spam, monitor
Example
hard_reject

Action for RBL hits. hard_reject rejects at SMTP time. mark_spam accepts with SHM RBL headers and SpamAssassin score. monitor accepts with SHM RBL headers and no RBL score. Default hard_reject.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.rbl_dnslistsOptional
Send in
JSON body
Type
array|string
Accepted values
zen.spamhaus.org, bl.spamcop.net, b.barracudacentral.org
Example
["zen.spamhaus.org","bl.spamcop.net","b.barracudacentral.org"]

Enabled DNSBL/RBL zones written to /etc/exim/rbl_lists.conf. Accepted zone values: zen.spamhaus.org, bl.spamcop.net, b.barracudacentral.org. Send an array of zone names or the Exim colon-separated string; send an empty array/string to disable DNSBL checks.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.rbl_respect_user_allowdenyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

When true, account-level sender whitelist/blacklist rules are exported to Exim maps and SpamAssassin user preferences. Whitelist rules bypass RBL checks for that recipient; blacklist rules can reject during hard_reject mode. Default true.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.rbl_spam_scoreOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
8

SpamAssassin score written to /etc/mail/spamassassin/shm_rbl.cf and applied only to trusted SHM RBL mark_spam hits. 0 keeps the headers but disables the extra score. Default 8.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 0. Maximum 100.

settings.recipients_maxOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum original recipients per message.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.recipients_max_rejectOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Reject rather than defer when recipients_max is exceeded.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.remote_max_parallelOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum parallel remote deliveries for one message.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.rfc1413_query_timeoutOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
60

RFC1413 ident timeout, for example 0s, 5s, 1m.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_accept_maxOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum concurrent inbound SMTP connections. 0 disables the limit.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_accept_max_nonmailOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum non-mail SMTP commands per session.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_accept_max_per_connectionOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum MAIL commands per SMTP connection.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_accept_max_per_hostOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum concurrent SMTP connections from one host.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_accept_queueOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Queue-only threshold above this SMTP concurrency.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_accept_queue_per_connectionOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum auto-deliveries started per SMTP connection.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.smtp_receive_timeoutOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
60

Timeout for receiving each SMTP command/data line.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.timeout_frozen_afterOptional
Send in
JSON body
Type
time string
Accepted values
Any value matching time string
Example
60

Cancel frozen messages older than this age.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.untrusted_set_senderOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SETTINGS_UNTRUSTED_SET_SENDER_FROM_LIST_RESPONSE

Exim untrusted_set_sender address-list pattern. Default is *.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.virus_scanner_incomingOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable ClamAV scanning for incoming SMTP mail.

Validation and use: Optional Send this value at the documented nested JSON body path.

settings.virus_scanner_outgoingOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable ClamAV scanning for outgoing/authenticated SMTP mail.

Validation and use: Optional Send this value at the documented nested JSON body path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "dovecot_vsz_limit": "2048M",
      "exim_process_memory_limit": "1024M"
    },
    "apply": true,
    "settings.auto_thaw": "SETTINGS_AUTO_THAW_FROM_LIST_RESPONSE",
    "settings.bounce_return_size_limit": "SETTINGS_BOUNCE_RETURN_SIZE_LIMIT_FROM_LIST_RESPONSE",
    "settings.callout_domain_negative_expire": "example.com",
    "settings.callout_negative_expire": "SETTINGS_CALLOUT_NEGATIVE_EXPIRE_FROM_LIST_RESPONSE",
    "settings.check_log_inodes": -1,
    "settings.check_log_space": "SETTINGS_CHECK_LOG_SPACE_FROM_LIST_RESPONSE",
    "settings.check_rfc2047_length": 1,
    "settings.check_spool_inodes": -1,
    "settings.check_spool_space": "SETTINGS_CHECK_SPOOL_SPACE_FROM_LIST_RESPONSE",
    "settings.deliver_queue_load_max": 1,
    "settings.disable_ipv6": 1,
    "settings.dovecot_imap_login_process_limit": 512,
    "settings.dovecot_vsz_limit": "SETTINGS_DOVECOT_VSZ_LIMIT_FROM_LIST_RESPONSE",
    "settings.exim_process_memory_limit": "SETTINGS_EXIM_PROCESS_MEMORY_LIMIT_FROM_LIST_RESPONSE",
    "settings.header_maxsize": "SETTINGS_HEADER_MAXSIZE_FROM_LIST_RESPONSE",
    "settings.ignore_bounce_errors_after": "SETTINGS_IGNORE_BOUNCE_ERRORS_AFTER_FROM_LIST_RESPONSE",
    "settings.local_from_check": 1,
    "settings.log_timezone": 1,
    "settings.message_body_newlines": 1,
    "settings.message_size_limit": "SETTINGS_MESSAGE_SIZE_LIMIT_FROM_LIST_RESPONSE",
    "settings.openssl_options": "SETTINGS_OPENSSL_OPTIONS_FROM_LIST_RESPONSE",
    "settings.queue_auto_delete_after_days": 1,
    "settings.queue_only_load": 1,
    "settings.queue_run_max": 1,
    "settings.rbl_action": "hard_reject",
    "settings.rbl_dnslists": [
      "zen.spamhaus.org",
      "bl.spamcop.net",
      "b.barracudacentral.org"
    ],
    "settings.rbl_respect_user_allowdeny": 1,
    "settings.rbl_spam_score": 8,
    "settings.recipients_max": 1,
    "settings.recipients_max_reject": 1,
    "settings.remote_max_parallel": 1,
    "settings.rfc1413_query_timeout": 60,
    "settings.smtp_accept_max": 1,
    "settings.smtp_accept_max_nonmail": 1,
    "settings.smtp_accept_max_per_connection": 1,
    "settings.smtp_accept_max_per_host": 1,
    "settings.smtp_accept_queue": 1,
    "settings.smtp_accept_queue_per_connection": 1,
    "settings.smtp_receive_timeout": 60,
    "settings.timeout_frozen_after": 60,
    "settings.untrusted_set_sender": "SETTINGS_UNTRUSTED_SET_SENDER_FROM_LIST_RESPONSE",
    "settings.virus_scanner_incoming": 1,
    "settings.virus_scanner_outgoing": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"apply":true,"settings":{"dovecot_vsz_limit":"2048M","exim_process_memory_limit":"1024M"}}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Raise mail worker memory limits and apply
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "apply": true,
    "settings": {
      "dovecot_vsz_limit": "2048M",
      "exim_process_memory_limit": "1024M"
    }
  }
}
Save conservative mail defaults without applying
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "apply": false,
    "settings": {
      "dovecot_vsz_limit": "1024M",
      "exim_process_memory_limit": "1024M",
      "smtp_accept_max": "100",
      "queue_run_max": "3"
    }
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/nginx/configrootView Nginx configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/nginx/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/nginx/configrootSave Nginx configuration.

Who can use this

The server administrator (root).

Parameters (22)

settingsRequired
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"worker_processes":4,"worker_connections":65535,"worker_rlimit_nofile":65535,"service_nofile_limit":65535,"multi_accept":"on","client_max_body_size":"10g","client_body_timeout":"300s","client_header_timeout":"10s","keepalive_timeout":"30s","proxy_connect_timeout":300,"proxy_read_timeout":300,"proxy_send_timeout":300,"fastcgi_read_timeout":300,"send_timeout":300,"gzip":"on","gzip_comp_level":5,"error_log_level":"warn","server_tokens":"ONE_TIME_TOKEN"}

Full Nginx settings object. Missing keys are rejected by the settings check.

Validation and use:

settings.client_body_timeoutRequired
Send in
JSON body
Type
time|string
Accepted values
Any value matching time|string
Example
60

Client body timeout such as 300s.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.client_header_timeoutRequired
Send in
JSON body
Type
time|string
Accepted values
Any value matching time|string
Example
60

Client header timeout such as 10s.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.client_max_body_sizeRequired
Send in
JSON body
Type
size|string
Accepted values
Any value matching size|string
Example
SETTINGS_CLIENT_MAX_BODY_SIZE_FROM_LIST_RESPONSE

Maximum request body size such as 100m or 10g.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.error_log_levelRequired
Send in
JSON body
Type
enum
Accepted values
debug, info, notice, warn, error, crit, alert, emerg
Example
debug

Allowed values: debug, info, notice, warn, error, crit, alert, emerg.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.fastcgi_read_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

FastCGI read timeout in seconds. Allowed range: 1-86400.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.gzipRequired
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Allowed values: on, off. Controls gzip.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.gzip_comp_levelRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Gzip compression level. Allowed range: 1-9.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.keepalive_timeoutRequired
Send in
JSON body
Type
time|string
Accepted values
Any value matching time|string
Example
60

Keepalive timeout such as 30s.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.multi_acceptRequired
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Allowed values: on, off. Controls multi_accept.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.proxy_connect_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Proxy connect timeout in seconds. Allowed range: 1-3600.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.proxy_read_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Proxy read timeout in seconds. Allowed range: 1-86400.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.proxy_send_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Proxy send timeout in seconds. Allowed range: 1-86400.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.send_timeoutRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Send timeout in seconds. Allowed range: 1-86400.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.server_tokensRequired
Send in
JSON body
Type
enum
Accepted values
on, off
Example
ONE_TIME_TOKEN

Allowed values: on, off. Controls server_tokens.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.service_nofile_limitRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Open-file limit for the nginx systemd LimitNOFILE drop-in. Allowed range: 1024-1048576. Default: 65535.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.worker_connectionsRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Nginx worker_connections per worker. Allowed range: 256-131072. Default: 65535.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.worker_processesRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Nginx worker_processes. Allowed range: 1-256 or auto.

Validation and use: Required Send this value at the documented nested JSON body path.

settings.worker_rlimit_nofileRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Nginx worker_rlimit_nofile. Allowed range: 1024-1048576. Default: 65535. Keep at least as high as worker_connections.

Validation and use: Required Send this value at the documented nested JSON body path.

applyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Apply the root Nginx configuration immediately after saving. Hosted domain configuration is not rebuilt by this flag.

Validation and use:

reload_onlyOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
RELOAD_ONLY_FROM_LIST_RESPONSE

Validation and use:

skip_unchanged_activationOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
SKIP_UNCHANGED_ACTIVATION_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "worker_processes": 4,
      "worker_connections": 65535,
      "worker_rlimit_nofile": 65535,
      "service_nofile_limit": 65535,
      "multi_accept": "on",
      "client_max_body_size": "10g",
      "client_body_timeout": "300s",
      "client_header_timeout": "10s",
      "keepalive_timeout": "30s",
      "proxy_connect_timeout": 300,
      "proxy_read_timeout": 300,
      "proxy_send_timeout": 300,
      "fastcgi_read_timeout": 300,
      "send_timeout": 300,
      "gzip": "on",
      "gzip_comp_level": 5,
      "error_log_level": "warn",
      "server_tokens": "ONE_TIME_TOKEN"
    },
    "settings.client_body_timeout": 60,
    "settings.client_header_timeout": 60,
    "settings.client_max_body_size": "SETTINGS_CLIENT_MAX_BODY_SIZE_FROM_LIST_RESPONSE",
    "settings.error_log_level": "debug",
    "settings.fastcgi_read_timeout": 1,
    "settings.gzip": "on",
    "settings.gzip_comp_level": 1,
    "settings.keepalive_timeout": 60,
    "settings.multi_accept": "on",
    "settings.proxy_connect_timeout": 1,
    "settings.proxy_read_timeout": 1,
    "settings.proxy_send_timeout": 1,
    "settings.send_timeout": 1,
    "settings.server_tokens": "ONE_TIME_TOKEN",
    "settings.service_nofile_limit": 1,
    "settings.worker_connections": 1,
    "settings.worker_processes": -1,
    "settings.worker_rlimit_nofile": 1,
    "apply": true,
    "reload_only": "RELOAD_ONLY_FROM_LIST_RESPONSE",
    "skip_unchanged_activation": "SKIP_UNCHANGED_ACTIVATION_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/nginx/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"settings":{"worker_processes":4,"worker_connections":65535,"worker_rlimit_nofile":65535,"service_nofile_limit":65535,"multi_accept":"on","client_max_body_size":"10g","client_body_timeout":"300s","client_header_timeout":"10s","keepalive_timeout":"30s","proxy_connect_timeout":300,"proxy_read_timeout":300,"proxy_send_timeout":300,"fastcgi_read_timeout":300,"send_timeout":300,"gzip":"on","gzip_comp_level":5,"error_log_level":"warn","server_tokens":"ONE_TIME_TOKEN"},"apply":true,"settings.client_body_timeout":60,"settings.client_header_timeout":60,"settings.client_max_body_size":"SETTINGS_CLIENT_MAX_BODY_SIZE_FROM_LIST_RESPONSE","settings.error_log_level":"debug","settings.fastcgi_read_timeout":1,"settings.gzip":"on","settings.gzip_comp_level":1,"settings.keepalive_timeout":60,"settings.multi_accept":"on","settings.proxy_connect_timeout":1,"settings.proxy_read_timeout":1,"settings.proxy_send_timeout":1,"settings.send_timeout":1,"settings.server_tokens":"ONE_TIME_TOKEN","settings.service_nofile_limit":1,"settings.worker_connections":1,"settings.worker_processes":-1,"settings.worker_rlimit_nofile":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save high-traffic Nginx defaults
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "worker_processes": 4,
      "worker_connections": 65535,
      "worker_rlimit_nofile": 65535,
      "service_nofile_limit": 65535,
      "multi_accept": "on",
      "client_max_body_size": "10g",
      "client_body_timeout": "300s",
      "client_header_timeout": "10s",
      "keepalive_timeout": "30s",
      "proxy_connect_timeout": 300,
      "proxy_read_timeout": 300,
      "proxy_send_timeout": 300,
      "fastcgi_read_timeout": 300,
      "send_timeout": 300,
      "gzip": "on",
      "gzip_comp_level": 5,
      "error_log_level": "warn",
      "server_tokens": "ONE_TIME_TOKEN"
    },
    "apply": true
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/php/configrootView PHP configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/php/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/php/configrootSave PHP configuration.

Who can use this

The server administrator (root).

Parameters (16)

allow_url_fopenOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Allowed values: on, off.

Validation and use:

date_timezoneOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UTC

Default PHP timezone.

Validation and use:

disable_functionsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DISABLE_FUNCTIONS_FROM_LIST_RESPONSE

Comma separated disabled PHP functions.

Validation and use:

display_errorsOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Allowed values: on, off.

Validation and use:

error_reportingOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ERROR_REPORTING_FROM_LIST_RESPONSE

PHP error_reporting expression/value.

Validation and use:

file_uploadsOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Allowed values: on, off.

Validation and use:

max_execution_timeOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
120

Maximum execution time in seconds.

Validation and use:

max_file_uploadsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum uploaded files per request.

Validation and use:

max_input_timeOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum input parsing time in seconds.

Validation and use:

max_input_varsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
5000

Maximum input variables.

Validation and use:

memory_limitOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1024M

PHP memory_limit value.

Validation and use:

post_max_sizeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1024M

PHP post_max_size value.

Validation and use:

session_gc_maxlifetimeOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Session GC max lifetime in seconds.

Validation and use:

session_save_pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Session save path.

Validation and use:

settingsOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
SETTINGS_FROM_LIST_RESPONSE

Optional object wrapper for the PHP settings below.

Validation and use:

upload_max_filesizeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1024M

PHP upload_max_filesize value.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "allow_url_fopen": "on",
    "date_timezone": "UTC",
    "disable_functions": "DISABLE_FUNCTIONS_FROM_LIST_RESPONSE",
    "display_errors": "on",
    "error_reporting": "ERROR_REPORTING_FROM_LIST_RESPONSE",
    "file_uploads": "on",
    "max_execution_time": "120",
    "max_file_uploads": 1,
    "max_input_time": 1,
    "max_input_vars": "5000",
    "memory_limit": "1024M",
    "post_max_size": "1024M",
    "session_gc_maxlifetime": 1,
    "session_save_path": "/home/demo/public_html",
    "settings": "SETTINGS_FROM_LIST_RESPONSE",
    "upload_max_filesize": "1024M"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/php/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"memory_limit":"1024M","upload_max_filesize":"1024M","post_max_size":"1024M","max_input_vars":"5000","max_execution_time":"120","date_timezone":"UTC"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save PHP defaults
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "memory_limit": "1024M",
    "upload_max_filesize": "1024M",
    "post_max_size": "1024M",
    "max_input_vars": "5000",
    "max_execution_time": "120",
    "date_timezone": "UTC"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/php/fpm/configrootSave PHP-FPM configuration.

Who can use this

The server administrator (root).

Parameters (11)

opcache_interned_strings_bufferOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
8

OPcache interned strings buffer in MB. Allowed range: 1-1024.

Validation and use: Minimum 1. Maximum 1024.

opcache_memory_consumptionOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
64

OPcache shared memory limit in MB for each active PHP-FPM OPcache segment. Allowed range: 8-16384.

Validation and use: Minimum 8. Maximum 16384.

pmOptional
Send in
JSON body
Type
enum
Accepted values
ondemand, dynamic, static, synconix
Example
synconix

Allowed values: ondemand, dynamic, static, synconix. Synconix requires at least one configured PHP-FPM runtime to pass the server’s support checks and keeps the configured minimum warm workers per pool; ondemand uses less RAM for fully idle high-density hosting.

Validation and use:

pm_max_childrenOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
50

Maximum PHP-FPM child processes. Allowed range: 1-10000.

Validation and use: Minimum 1. Maximum 10000.

pm_max_requestsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
500

Requests before a child process is recycled. Allowed range: 0-1000000; zero disables request-count recycling.

Validation and use: Minimum 0. Maximum 1000000.

pm_max_spare_serversOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
5

Maximum spare servers for dynamic and synconix modes. Allowed range: 0-10000; synconix normalizes zero to a safe runtime value.

Validation and use: Minimum 0. Maximum 10000.

pm_min_spare_serversOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Minimum spare servers for dynamic and synconix modes. Allowed range: 0-10000; synconix normalizes zero to one.

Validation and use: Minimum 0. Maximum 10000.

pm_process_idle_timeoutOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
10

Idle worker timeout in seconds for ondemand and synconix modes. Allowed range: 1-86400.

Validation and use: Minimum 1. Maximum 86400.

pm_start_serversOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Startup workers for dynamic and synconix modes. Allowed range: 0-10000; synconix normalizes zero to its minimum spare value.

Validation and use: Minimum 0. Maximum 10000.

revalidate_freqOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
300

OPcache revalidate frequency in seconds. Allowed range: 0-86400.

Validation and use: Minimum 0. Maximum 86400.

settingsOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"pm":"synconix","pm_max_children":50}

Optional object wrapper for the PHP-FPM settings below.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "opcache_interned_strings_buffer": 8,
    "opcache_memory_consumption": 64,
    "pm": "synconix",
    "pm_max_children": 50,
    "pm_max_requests": 500,
    "pm_max_spare_servers": 5,
    "pm_min_spare_servers": 1,
    "pm_process_idle_timeout": 10,
    "pm_start_servers": 1,
    "revalidate_freq": 300,
    "settings": {
      "pm": "synconix",
      "pm_max_children": 50
    }
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/php/fpm/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"pm":"synconix","pm_max_children":50,"pm_max_requests":500,"pm_process_idle_timeout":10,"pm_max_spare_servers":5,"pm_min_spare_servers":1,"pm_start_servers":1,"revalidate_freq":300,"opcache_memory_consumption":64,"opcache_interned_strings_buffer":8}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save adaptive Synconix PHP-FPM defaults
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "pm": "synconix",
    "pm_max_children": 50,
    "pm_max_requests": 500,
    "pm_process_idle_timeout": 10,
    "pm_max_spare_servers": 5,
    "pm_min_spare_servers": 1,
    "pm_start_servers": 1,
    "revalidate_freq": 300,
    "opcache_memory_consumption": 64,
    "opcache_interned_strings_buffer": 8
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/postgresql/configrootView PostgreSQL server configuration settings managed by SHM.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/postgresql/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read PostgreSQL managed settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/postgresql/configrootSave PostgreSQL settings and restart the database service.

Before you start

Existing connections may be interrupted while PostgreSQL restarts.

Who can use this

The server administrator (root).

Parameters (1)

settingsRequired
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"max_connections":"80","shared_buffers":"1GB","shared_preload_libraries":"pg_stat_statements","max_worker_processes":"8","max_parallel_workers":"4","max_parallel_maintenance_workers":"2","wal_compression":"lz4","checkpoint_completion_target":"0.9","max_wal_size":"2GB","min_wal_size":"256MB","autovacuum_max_workers":"3","temp_buffers":"8MB","statement_timeout":"0","deadlock_timeout":"1s","track_io_timing":"off","track_functions":"none","log_lock_waits":"off"}

Allowed keys include max_connections, shared_buffers, shared_preload_libraries, worker/parallel settings, WAL/checkpoint settings, autovacuum thresholds, timeout settings, planner cost settings, logging toggles, and log_min_duration_statement. Memory values use PostgreSQL format such as 128MB or 4GB; durations accept ms, s, min, h, or d suffixes; booleans accept on/off; wal_compression accepts off, on, pglz, lz4, or zstd; track_functions accepts none, pl, or all.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "max_connections": "80",
      "shared_buffers": "1GB",
      "shared_preload_libraries": "pg_stat_statements",
      "max_worker_processes": "8",
      "max_parallel_workers": "4",
      "max_parallel_maintenance_workers": "2",
      "wal_compression": "lz4",
      "checkpoint_completion_target": "0.9",
      "max_wal_size": "2GB",
      "min_wal_size": "256MB",
      "autovacuum_max_workers": "3",
      "temp_buffers": "8MB",
      "statement_timeout": "0",
      "deadlock_timeout": "1s",
      "track_io_timing": "off",
      "track_functions": "none",
      "log_lock_waits": "off"
    }
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/postgresql/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"settings":{"max_connections":"80","shared_buffers":"1GB","shared_preload_libraries":"pg_stat_statements","max_worker_processes":"8","max_parallel_workers":"4","max_parallel_maintenance_workers":"2","wal_compression":"lz4","checkpoint_completion_target":"0.9","max_wal_size":"2GB","min_wal_size":"256MB","autovacuum_max_workers":"3","temp_buffers":"8MB","statement_timeout":"0","deadlock_timeout":"1s","track_io_timing":"off","track_functions":"none","log_lock_waits":"off"}}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Apply PostgreSQL settings safely
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "max_connections": "80",
      "shared_buffers": "1GB",
      "shared_preload_libraries": "pg_stat_statements",
      "max_worker_processes": "8",
      "max_parallel_workers": "4",
      "max_parallel_maintenance_workers": "2",
      "wal_compression": "lz4",
      "checkpoint_completion_target": "0.9",
      "max_wal_size": "2GB",
      "min_wal_size": "256MB",
      "autovacuum_max_workers": "3",
      "temp_buffers": "8MB",
      "statement_timeout": "0",
      "deadlock_timeout": "1s",
      "track_io_timing": "off",
      "track_functions": "none",
      "log_lock_waits": "off"
    }
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/web-vhosts/generaterootCreate the web server configuration for a selected website.

Who can use this

The server administrator (root).

Parameters (6)

dnsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DNS_FROM_LIST_RESPONSE

Validation and use:

document_rootOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DOCUMENT_ROOT_FROM_LIST_RESPONSE

Document root path.

Validation and use:

domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Domain name.

Validation and use:

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
domain, subdomain
Example
domain

Type value. Allowed values: domain, subdomain.

Validation and use:

usernameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Username value.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "dns": "DNS_FROM_LIST_RESPONSE",
    "document_root": "DOCUMENT_ROOT_FROM_LIST_RESPONSE",
    "domain": "example.com",
    "ip": "203.0.113.10",
    "type": "domain",
    "username": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/web-vhosts/generate' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","type":"domain","username":"demo","document_root":"DOCUMENT_ROOT_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "domain",
    "username": "demo",
    "document_root": "DOCUMENT_ROOT_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/web-vhosts/rebuildrootRebuild website configurations from their saved SHM settings.

Who can use this

The server administrator (root).

Parameters (9)

account_refOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ACCOUNT_REF_FROM_LIST_RESPONSE

Account username filter. Aliases: account_user, username.

Validation and use:

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_ref.

Validation and use:

domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Alias of item.

Validation and use:

filter_itemOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_ITEM_FROM_LIST_RESPONSE

Alias of item.

Validation and use:

filter_typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, parked, subdomain
Example
main

Alias of type. Allowed values: main, addon, parked, subdomain.

Validation and use:

itemOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ITEM_FROM_LIST_RESPONSE

Domain/item filter. Aliases: filter_item, domain.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, parked, subdomain
Example
main

Allowed values: main, addon, parked, subdomain. Aliases accepted: domain, primary, root, addondomain, parkeddomain, alias, sub.

Validation and use:

uidOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Account UID filter.

Validation and use:

usernameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_ref.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_ref": "ACCOUNT_REF_FROM_LIST_RESPONSE",
    "account_user": "demo",
    "domain": "example.com",
    "filter_item": "FILTER_ITEM_FROM_LIST_RESPONSE",
    "filter_type": "main",
    "item": "ITEM_FROM_LIST_RESPONSE",
    "type": "main",
    "uid": 1,
    "username": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/web-vhosts/rebuild' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","type":"main","account_ref":"ACCOUNT_REF_FROM_LIST_RESPONSE","account_user":"demo"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "main",
    "account_ref": "ACCOUNT_REF_FROM_LIST_RESPONSE",
    "account_user": "demo"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/webserver/http-guardrootView server Web Server HTTP Guard configuration.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/webserver/http-guard' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/webserver/http-guardrootSave server Web Server HTTP Guard configuration.

Who can use this

The server administrator (root).

Parameters (35)

applyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

When true or omitted, SHM refreshes root web server config and rebuilds hosted domains in the safe order for the new enabled state. Set false only to save YAML without applying runtime config.

Validation and use: Default: true.

settingsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"enabled":true,"allow_domain_override":true,"default_profile":"standard","status":429,"profiles":{"standard":{"rate":"30r/s","burst":120,"connections":80}}}

Preferred HTTP Guard settings object. For compatibility, the same setting names may be sent at the top level and legacy flat http_guard_* aliases are still accepted.

Validation and use: Needed when: optional; omit only when using legacy flat fields.

settings.allow_domain_overrideOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Allow account Web Manager per-domain overrides. Defaults to enabled.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: true.

settings.allow_protected_uri_rulesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Allow per-domain protected URI wildcard rules. When disabled, saved rules are not accepted or generated for hosted domains.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: true.

settings.allow_smart_protectionOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Enable the Smart Protection runtime. Defaults to enabled when omitted. Set 0/off/false to disable; saved per-domain preferences are preserved but the scanner and generated Smart rules stay off.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: true.

settings.apache.request_read_timeoutOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: handshake=0 header=20-40,MinRate=500 body=20,MinRate=500
Example
handshake=0 header=20-40,MinRate=500 body=20,MinRate=500

Apache RequestReadTimeout value for standalone Apache hosted domains. Maximum length is 160 characters; only letters, numbers, spaces, equals, commas, and hyphens are accepted.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: handshake=0 header=20-40,MinRate=500 body=20,MinRate=500.

settings.default_profileOptional
Send in
JSON body
Type
enum
Accepted values
relaxed, standard, strict
Example
standard

Profile used when a domain policy is enabled or inherited.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: standard.

settings.dry_runOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Enable monitor-only logging globally without rejecting limit hits where supported by the active web stack.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: false.

settings.enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Enable or disable the HTTP Guard module. Defaults to enabled as a server-wide availability switch; domains remain off until a domain policy is enabled.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: true.

settings.log_levelOptional
Send in
JSON body
Type
enum
Accepted values
info, notice, warn, error
Example
warn

Limit event log level.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: warn.

settings.profiles.relaxed.burstOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 180
Example
180

Relaxed burst.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 180.

settings.profiles.relaxed.connectionsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 120
Example
120

Relaxed connections per IP.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 120.

settings.profiles.relaxed.rateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: 60r/s
Example
60r/s

Relaxed request rate. Use a positive request count per second or minute, such as 60r/s or 600r/m.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: 60r/s.

settings.profiles.standard.burstOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 120
Example
120

Standard burst.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 120.

settings.profiles.standard.connectionsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 80
Example
80

Standard connections per IP.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 80.

settings.profiles.standard.rateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: 30r/s
Example
30r/s

Standard request rate. Use a positive request count per second or minute.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: 30r/s.

settings.profiles.strict.burstOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 40
Example
40

Strict burst.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 40.

settings.profiles.strict.connectionsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 30
Example
30

Strict connections per IP.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 30.

settings.profiles.strict.rateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: 10r/s
Example
10r/s

Strict request rate. Use a positive request count per second or minute.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: 10r/s.

settings.smart_default_modeOptional
Send in
JSON body
Type
enum
Accepted values
off, monitor, auto
Example
off

Default Smart Protection mode for domains: off, monitor, or auto. monitor records detected spikes as log-only temporary rules; auto writes temporary rate-limit/block rules.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: off.

settings.smart_max_accounts_per_tickOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 200
Example
200

Maximum account records inspected per scanner tick. Prevents scanning every account on large servers.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 200.

settings.smart_max_bytes_per_domainOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 262144
Example
262144

Maximum new access-log bytes read per domain per tick from the saved offset.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 4096. Maximum 10485760. Default: 262144.

settings.smart_max_domain_candidates_per_tickOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 1000
Example
1000

Maximum domain rows inspected per scanner tick before saving a domain cursor. This caps large accounts even when most domains have Smart off.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 100000. Default: 1000.

settings.smart_max_domains_per_tickOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 20
Example
20

Maximum Smart-enabled domains whose logs may be read per scanner tick.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 20.

settings.smart_max_rules_per_domainOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 8
Example
8

Maximum active temporary Smart URI rules kept per domain.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 128. Default: 8.

settings.smart_request_thresholdOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 80
Example
80

Minimum matching requests for one generated URI pattern before Smart Protection activates.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 5. Maximum 100000. Default: 80.

settings.smart_rule_limit_profileOptional
Send in
JSON body
Type
enum
Accepted values
strict, standard, relaxed, block
Example
strict

Limit profile used by auto-generated Smart rules. monitor is not accepted here because monitor mode always logs only.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: strict.

settings.smart_scan_interval_secondsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 30
Example
30

Minimum seconds between Smart scanner runs unless a root refresh is forced.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 5. Maximum 3600. Default: 30.

settings.smart_single_ip_thresholdOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 40
Example
40

Single-IP request threshold that can activate a rule even when distinct IP count is low.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 5. Maximum 100000. Default: 40.

settings.smart_tail_bytes_on_rotationOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 65536
Example
65536

Maximum tail bytes read after log rotation when the saved inode/offset no longer matches.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 4096. Maximum 1048576. Default: 65536.

settings.smart_ttl_secondsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 900
Example
900

Seconds a generated Smart URI rule remains active after the latest trigger.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 60. Maximum 86400. Default: 900.

settings.smart_unique_ip_thresholdOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 3
Example
3

Minimum distinct client IPs for a spike to activate, unless one IP exceeds smart_single_ip_threshold.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 1. Maximum 10000. Default: 3.

settings.smart_window_secondsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 60
Example
60

Detection window used to describe and expire recent spike evidence.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 10. Maximum 3600. Default: 60.

settings.statusOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 429
Example
429

HTTP status returned when request or connection limits are exceeded.

Validation and use: Optional Send this value at the documented nested JSON body path. Minimum 400. Maximum 599. Default: 429.

settings.zone_sizeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: 20m
Example
20m

Nginx shared tracking memory size. Use 1m through 9999m.

Validation and use: Optional Send this value at the documented nested JSON body path. Default: 20m.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "apply": true,
    "settings": {
      "enabled": true,
      "allow_domain_override": true,
      "default_profile": "standard",
      "status": 429,
      "profiles": {
        "standard": {
          "rate": "30r/s",
          "burst": 120,
          "connections": 80
        }
      }
    },
    "settings.allow_domain_override": true,
    "settings.allow_protected_uri_rules": true,
    "settings.allow_smart_protection": true,
    "settings.apache.request_read_timeout": "handshake=0 header=20-40,MinRate=500 body=20,MinRate=500",
    "settings.default_profile": "standard",
    "settings.dry_run": false,
    "settings.enabled": true,
    "settings.log_level": "warn",
    "settings.profiles.relaxed.burst": 180,
    "settings.profiles.relaxed.connections": 120,
    "settings.profiles.relaxed.rate": "60r/s",
    "settings.profiles.standard.burst": 120,
    "settings.profiles.standard.connections": 80,
    "settings.profiles.standard.rate": "30r/s",
    "settings.profiles.strict.burst": 40,
    "settings.profiles.strict.connections": 30,
    "settings.profiles.strict.rate": "10r/s",
    "settings.smart_default_mode": "off",
    "settings.smart_max_accounts_per_tick": 200,
    "settings.smart_max_bytes_per_domain": 262144,
    "settings.smart_max_domain_candidates_per_tick": 1000,
    "settings.smart_max_domains_per_tick": 20,
    "settings.smart_max_rules_per_domain": 8,
    "settings.smart_request_threshold": 80,
    "settings.smart_rule_limit_profile": "strict",
    "settings.smart_scan_interval_seconds": 30,
    "settings.smart_single_ip_threshold": 40,
    "settings.smart_tail_bytes_on_rotation": 65536,
    "settings.smart_ttl_seconds": 900,
    "settings.smart_unique_ip_threshold": 3,
    "settings.smart_window_seconds": 60,
    "settings.status": 429,
    "settings.zone_size": "20m"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/webserver/http-guard' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"settings":{"enabled":true,"allow_domain_override":true,"default_profile":"standard","status":429,"profiles":{"standard":{"rate":"30r/s","burst":120,"connections":80}}}}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Enable standard HTTP Guard
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "enabled": true,
      "allow_domain_override": true,
      "default_profile": "standard",
      "status": 429,
      "profiles": {
        "standard": {
          "rate": "30r/s",
          "burst": 120,
          "connections": 80
        }
      }
    }
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/webserver/http-guard/smart-refreshrootUpdate HTTP Guard's Smart Protection rules using current traffic information.

Who can use this

The server administrator (root).

Parameters (1)

forceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

When true, bypasses the configured smart_scan_interval_seconds for this manual refresh. Caps and per-domain cursor limits still apply.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "force": true
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/webserver/http-guard/smart-refresh' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"force":true}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Force one Smart Protection refresh
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "force": true
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

DNS Cluster

POST/v1/root/dns-cluster/actions/{action}rootRun a DNS Cluster action.

Who can use this

The server administrator (root).

Parameters (8)

actionRequired
Send in
URL path
Type
enum
Accepted values
nodes_refresh, test_api, sync_all_zones, sync_zone, queue_process, queue_clear, queue_delete_many
Example
sync_zone

Action path parameter. Allowed values: nodes_refresh, test_api, sync_all_zones, sync_zone, queue_process, queue_clear, queue_delete_many.

Validation and use: Required Replace this placeholder directly in the URL path.

domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Domain name. Required for sync_zone: local DNS zone domain to replace on the remote DNS Cluster.

Validation and use:

idsOptional
Send in
JSON body
Type
string|array
Accepted values
Any value matching string|array
Example
IDS_FROM_LIST_RESPONSE

For queue_delete_many: array of job ids or a comma-separated string.

Validation and use:

maxOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
1

For queue_process: max number of jobs to process (0..200).

Validation and use:

parallelOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
1

For queue_process: worker limit from 0 to 16. Zero selects the automatic limit. Jobs for one domain are always serialized; only different domains run in parallel.

Validation and use:

replace_remoteOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

For sync_zone this is always treated as 1 so the remote zone becomes 1:1 with the local SHM zone.

Validation and use:

statusOptional
Send in
JSON body
Type
enum
Accepted values
active, pending, trying, success, partial, failed, blocked, all
Example
active

For nodes_refresh use active or pending (default). For queue_clear use pending, trying, success, partial, failed, blocked, or all. Active trying jobs are reported as busy and are not deleted.

Validation and use:

zoneOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ZONE_FROM_LIST_RESPONSE

Validation and use:

Supported actions and option sets

action values (7)
nodes_refreshtest_apisync_all_zonessync_zonequeue_processqueue_clearqueue_delete_many
Action-specific request bodies
{
  "nodes_refresh": {
    "status": "active,pending"
  },
  "test_api": [],
  "sync_all_zones": [],
  "sync_zone": {
    "domain": "example.com",
    "replace_remote": 1
  },
  "queue_process": {
    "max": 25
  },
  "queue_clear": {
    "status": "failed"
  },
  "queue_delete_many": {
    "ids": [
      "job-1",
      "job-2"
    ]
  }
}

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "action": "sync_zone"
  },
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "ids": "IDS_FROM_LIST_RESPONSE",
    "max": 1,
    "parallel": 1,
    "replace_remote": 1,
    "status": "active",
    "zone": "ZONE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns-cluster/actions/sync_zone' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","replace_remote":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Directly sync one full DNS zone
{
  "path_parameters": {
    "action": "sync_zone"
  },
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "replace_remote": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/dns-cluster/queuerootList DNS Cluster queue jobs.

Who can use this

The server administrator (root).

Parameters (4)

drawOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
1

DataTables draw counter.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

lengthOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
25

Page size.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

limitOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
25

Result size limit.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

startOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
0

Row offset.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "draw": 1,
    "length": 25,
    "limit": 25,
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/dns-cluster/queue?limit=25&draw=1&start=0&length=25' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {
    "limit": 25,
    "draw": 1,
    "start": 0,
    "length": 25
  },
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/dns-cluster/queuerootList DNS Cluster queue jobs.

Who can use this

The server administrator (root).

Parameters (4)

drawOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

DataTables draw counter.

Validation and use:

lengthOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
25

Page size.

Validation and use:

limitOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
25

Result size limit.

Validation and use:

startOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
0

Row offset.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "length": 25,
    "limit": 25,
    "start": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns-cluster/queue' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"limit":25,"draw":1,"start":0,"length":25}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "limit": 25,
    "draw": 1,
    "start": 0,
    "length": 25
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/dns-cluster/queue/{id}rootDelete a DNS Cluster queue job.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
string|int
Accepted values
Any value matching string|int
Example
1

Exact resource identifier returned by the related list or context endpoint. Do not guess ids from table position.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/dns-cluster/queue/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/dns-cluster/queue/{id}rootView DNS Cluster queue job details.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
string|int
Accepted values
Any value matching string|int
Example
1

Exact resource identifier returned by the related list or context endpoint. Do not guess ids from table position.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/dns-cluster/queue/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/dns-cluster/queue/{id}/retryrootRetry a DNS Cluster queue job.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
string|int
Accepted values
Any value matching string|int
Example
1

Exact resource identifier returned by the related list or context endpoint. Do not guess ids from table position.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns-cluster/queue/1/retry' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/dns-cluster/queue/enqueue/{kind}rootEnqueue a DNS Cluster queue job.

Who can use this

The server administrator (root).

Parameters (10)

kindRequired
Send in
URL path
Type
enum
Accepted values
zone-sync, zone-delete, record-add, record-update, record-delete, zone_sync, zone_delete, record_add, record_update, record_delete
Example
zone_sync

Kind path parameter. Allowed values: zone-sync, zone-delete, record-add, record-update, record-delete, zone_sync, zone_delete, record_add, record_update, record_delete. Allowed values: zone_sync, zone_delete, record_add, record_update, record_delete.

Validation and use: Required Replace this placeholder directly in the URL path.

contentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
192.0.2.25

Text content to save. For record_* jobs: record value/content.

Validation and use:

domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

For zone_sync or zone_delete: zone domain name.

Validation and use:

extraOptional
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
{"priority":10}

For record_add or record_update: extra per-record data such as MX priority.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
api

For record_* jobs: record owner name, such as @ or www.

Validation and use:

old_contentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
mail1.example.com.

For record_update: previous record content value.

Validation and use:

replace_remoteOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

For zone_sync: 1 to replace remote records.

Validation and use:

ttlOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
3600

For record_* jobs: TTL in seconds.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
A, AAAA, NS, CNAME, PTR, DNAME, MX, SRV, CAA, AFSDB, HINFO, DS, TXT, SOA
Example
A

For record_* jobs: allowed values are A, AAAA, NS, CNAME, PTR, DNAME, MX, SRV, CAA, AFSDB, HINFO, DS, TXT, SOA. Allowed values: A, AAAA, NS, CNAME, PTR, DNAME, MX, SRV, CAA, AFSDB, HINFO, DS, TXT, SOA.

Validation and use:

zoneOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

For record_* jobs: zone domain name.

Validation and use:

Supported actions and option sets

kind values (5)
zone_synczone_deleterecord_addrecord_updaterecord_delete

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "kind": "zone_sync"
  },
  "query_parameters": {},
  "json_body": {
    "content": "192.0.2.25",
    "domain": "example.com",
    "extra": {
      "priority": 10
    },
    "name": "api",
    "old_content": "mail1.example.com.",
    "replace_remote": 1,
    "ttl": 3600,
    "type": "A",
    "zone": "example.com"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns-cluster/queue/enqueue/zone_sync' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","replace_remote":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Queue full zone sync
{
  "path_parameters": {
    "kind": "zone_sync"
  },
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "replace_remote": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Queue zone delete
{
  "path_parameters": {
    "kind": "zone_delete"
  },
  "query_parameters": {},
  "json_body": {
    "domain": "old-example.com"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Queue DNS record add
{
  "path_parameters": {
    "kind": "record_add"
  },
  "query_parameters": {},
  "json_body": {
    "zone": "example.com",
    "type": "A",
    "name": "api",
    "content": "192.0.2.25",
    "ttl": 3600
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Queue DNS record update
{
  "path_parameters": {
    "kind": "record_update"
  },
  "query_parameters": {},
  "json_body": {
    "zone": "example.com",
    "type": "MX",
    "name": "@",
    "content": "mail2.example.com.",
    "old_content": "mail1.example.com.",
    "ttl": 3600,
    "extra": {
      "priority": 10
    }
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Queue DNS record delete
{
  "path_parameters": {
    "kind": "record_delete"
  },
  "query_parameters": {},
  "json_body": {
    "zone": "example.com",
    "type": "TXT",
    "name": "_acme-challenge",
    "content": "obsolete-token"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/dns-cluster/settingsrootClear DNS Cluster settings.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/dns-cluster/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/dns-cluster/settingsrootView DNS Cluster settings.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/dns-cluster/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/dns-cluster/settingsrootSave DNS Cluster settings.

Who can use this

The server administrator (root).

Parameters (5)

api_keyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
YOUR_API_KEY

Shared cluster API key. Required when enabling the cluster if no key is already stored.

Validation and use:

api_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
API_USER_FROM_LIST_RESPONSE

API username used for peer calls. Default: hosting.

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Allowed values: on, off.

Validation and use:

seed_serverOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SEED_SERVER_FROM_LIST_RESPONSE

Seed node IP or hostname. Locked after a key and node list already exist.

Validation and use:

statusOptional
Send in
JSON body
Type
enum
Accepted values
active
Example
active

For the automatic nodes refresh after save: allowed values are active,pending (default) or another comma-separated node status filter such as failed. Allowed values: active.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "api_key": "YOUR_API_KEY",
    "api_user": "API_USER_FROM_LIST_RESPONSE",
    "enabled": "on",
    "seed_server": "SEED_SERVER_FROM_LIST_RESPONSE",
    "status": "active"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/dns-cluster/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"status":"active","enabled":"on","api_user":"API_USER_FROM_LIST_RESPONSE","seed_server":"SEED_SERVER_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "status": "active",
    "enabled": "on",
    "api_user": "API_USER_FROM_LIST_RESPONSE",
    "seed_server": "SEED_SERVER_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

DNS Manager

GET/v1/root/dns/zonesrootList DNS manager zones.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/dns/zones' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/dns/zonesrootCreate a DNS manager zone.

Who can use this

The server administrator (root).

Parameters (2)

domainRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Zone domain name. Alias: zonename.

Validation and use:

zonenameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ZONENAME_FROM_LIST_RESPONSE

Alias of domain.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "zonename": "ZONENAME_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns/zones' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Create DNS zone
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/dns/zones/{domain}rootDelete a DNS manager zone.

Who can use this

The server administrator (root).

Parameters (1)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Exact authorized domain name used to select the DNS, website, mail, SSL, or diagnostic resource in this route.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned domain value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/dns/zones/example.com' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/dns/zones/{domain}/mail-records/dkimrootDelete a DNS zone DKIM TXT record.

Who can use this

The server administrator (root).

Parameters (1)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Exact authorized domain name used to select the DNS, website, mail, SSL, or diagnostic resource in this route.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned domain value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/dns/zones/example.com/mail-records/dkim' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/dns/zones/{domain}/mail-records/syncrootUpdate a domain's email verification records to match its mail settings.

Who can use this

The server administrator (root).

Parameters (1)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Exact authorized domain name used to select the DNS, website, mail, SSL, or diagnostic resource in this route.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned domain value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns/zones/example.com/mail-records/sync' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/dns/zones/{domain}/regeneraterootRebuild a domain's DNS records from its saved SHM settings.

Who can use this

The server administrator (root).

Parameters (1)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Exact authorized domain name used to select the DNS, website, mail, SSL, or diagnostic resource in this route.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned domain value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/dns/zones/example.com/regenerate' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Engine API Users

PATCH/v1/root/engine-api/users/{username}/enabledrootTurn API access on or off for an account.

Who can use this

The server administrator (root).

Parameters (2)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/engine-api/users/demo/enabled' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"enabled":1}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/engine-api/users/{username}/keysrootRevoke an API key.

Before you start

Keep API keys private and give each integration only the access it needs.

Who can use this

The server administrator (root).

Parameters (2)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

key_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: Use the corresponding list endpoint for this resource and copy the returned key_id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "key_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/engine-api/users/demo/keys' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"key_id":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "key_id": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/engine-api/users/{username}/keysrootCreate or update an API key.

Before you start

Keep API keys private and give each integration only the access it needs.

Who can use this

The server administrator (root).

Parameters (6)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

descriptionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DESCRIPTION_FROM_LIST_RESPONSE

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ipsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
IPS_FROM_LIST_RESPONSE

Validation and use:

key_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: Use the corresponding list endpoint for this resource and copy the returned key_id value.

role_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: Use the corresponding list endpoint for this resource and copy the returned role_id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "description": "DESCRIPTION_FROM_LIST_RESPONSE",
    "enabled": 1,
    "ips": "IPS_FROM_LIST_RESPONSE",
    "key_id": 1,
    "role_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/engine-api/users/demo/keys' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"description":"DESCRIPTION_FROM_LIST_RESPONSE","role_id":1,"key_id":1,"enabled":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "description": "DESCRIPTION_FROM_LIST_RESPONSE",
    "role_id": 1,
    "key_id": 1,
    "enabled": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/engine-api/users/{username}/keys/rotaterootReplace an API key with a new one.

Before you start

Update applications that use the old key.

Who can use this

The server administrator (root).

Parameters (2)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

key_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: Use the corresponding list endpoint for this resource and copy the returned key_id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "key_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/engine-api/users/demo/keys/rotate' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"key_id":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "key_id": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/engine-api/users/{username}/profilerootView an account's API access and permissions.

Who can use this

The server administrator (root).

Parameters (1)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/engine-api/users/demo/profile' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/engine-api/users/{username}/rolesrootRemove an API permission assignment.

Who can use this

The server administrator (root).

Parameters (2)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

role_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: Use the corresponding list endpoint for this resource and copy the returned role_id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "role_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/engine-api/users/demo/roles' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"role_id":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "role_id": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/engine-api/users/{username}/rolesrootSet the permissions available to an API user.

Who can use this

The server administrator (root).

Parameters (5)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

descriptionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DESCRIPTION_FROM_LIST_RESPONSE

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Name value.

Validation and use:

role_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: Use the corresponding list endpoint for this resource and copy the returned role_id value.

scopesOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
SCOPES_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "description": "DESCRIPTION_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "role_id": 1,
    "scopes": "SCOPES_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/engine-api/users/demo/roles' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"name":"NAME_FROM_LIST_RESPONSE","role_id":1,"description":"DESCRIPTION_FROM_LIST_RESPONSE","scopes":"SCOPES_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "name": "NAME_FROM_LIST_RESPONSE",
    "role_id": 1,
    "description": "DESCRIPTION_FROM_LIST_RESPONSE",
    "scopes": "SCOPES_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Firewall

POST/v1/root/firewall/applyrootApply the firewall configuration.

Who can use this

The server administrator (root).

Parameters (1)

apply_mode_overrideOptional
Send in
JSON body
Type
enum
Accepted values
additive, exact
Example
exact

Apply mode for this operation only. Allowed values: additive, exact. When omitted, SHM uses the saved firewall application mode.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "apply_mode_override": "exact"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/apply' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"apply_mode_override":"exact"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Apply once in exact mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "apply_mode_override": "exact"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/blocklists/configrootSave firewall blocklist settings.

Who can use this

The server administrator (root).

Parameters (2)

bl_enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable blocklist processing.

Validation and use:

bl_refreshOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

Refresh interval in seconds. Default example: 3600.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "bl_enabled": "1",
    "bl_refresh": "3600"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/blocklists/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"bl_enabled":"1","bl_refresh":"3600"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Enable blocklists
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "bl_enabled": "1",
    "bl_refresh": "3600"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/blocklists/sourcesrootCreate a firewall blocklist source.

Who can use this

The server administrator (root).

Parameters (3)

urlRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
https://example.com/blocklist.txt

HTTP or HTTPS URL of a text feed containing one IPv4/IPv6 address or CIDR per line. Maximum length: 2048 characters. Embedded URL credentials are not allowed.

Validation and use: Maximum length 2048.

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Enable this source for blocklist refreshes. The default is disabled.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Abuse feed

Display name for the source. When omitted, SHM uses the URL.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "url": "https://example.com/blocklist.txt",
    "enabled": true,
    "name": "Abuse feed"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/blocklists/sources' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"url":"https://example.com/blocklist.txt","name":"Abuse feed","enabled":true}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Add an enabled HTTPS blocklist feed
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "url": "https://example.com/blocklist.txt",
    "name": "Abuse feed",
    "enabled": true
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/firewall/blocklists/sources/{index}rootDelete a firewall blocklist source.

Who can use this

The server administrator (root).

Parameters (1)

indexRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Index that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "index": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/firewall/blocklists/sources/demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "index": "demo"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/blocklists/updaterootRefresh firewall blocklists now.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/blocklists/update' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/firewall/configrootView firewall config and defaults.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/firewall/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/firewall/configrootSave firewall config.

Who can use this

The server administrator (root).

Parameters (8)

alert_fromOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ALERT_FROM_FROM_LIST_RESPONSE

Validation and use:

alert_smtp_hostOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ALERT_SMTP_HOST_FROM_LIST_RESPONSE

Validation and use:

alert_smtp_passOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Validation and use:

alert_smtp_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ALERT_SMTP_USER_FROM_LIST_RESPONSE

Validation and use:

alert_toOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ALERT_TO_FROM_LIST_RESPONSE

Validation and use:

general_apply_modeOptional
Send in
JSON body
Type
enum
Accepted values
additive, exact
Example
additive

General apply mode request field. Allowed values: additive, exact.

Validation and use:

general_log_deniedOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
GENERAL_LOG_DENIED_FROM_LIST_RESPONSE

Validation and use:

general_zoneOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
GENERAL_ZONE_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "alert_from": "ALERT_FROM_FROM_LIST_RESPONSE",
    "alert_smtp_host": "ALERT_SMTP_HOST_FROM_LIST_RESPONSE",
    "alert_smtp_pass": "STRONG_PASSWORD",
    "alert_smtp_user": "ALERT_SMTP_USER_FROM_LIST_RESPONSE",
    "alert_to": "ALERT_TO_FROM_LIST_RESPONSE",
    "general_apply_mode": "additive",
    "general_log_denied": "GENERAL_LOG_DENIED_FROM_LIST_RESPONSE",
    "general_zone": "GENERAL_ZONE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"general_zone":"GENERAL_ZONE_FROM_LIST_RESPONSE","general_apply_mode":"additive","general_log_denied":"GENERAL_LOG_DENIED_FROM_LIST_RESPONSE","alert_to":"ALERT_TO_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "general_zone": "GENERAL_ZONE_FROM_LIST_RESPONSE",
    "general_apply_mode": "additive",
    "general_log_denied": "GENERAL_LOG_DENIED_FROM_LIST_RESPONSE",
    "alert_to": "ALERT_TO_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/config/resetrootReset firewall config to defaults.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/config/reset' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/firewall/ddos/configrootSave firewall DDoS protection settings.

Who can use this

The server administrator (root).

Parameters (5)

CONNLIMITOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONNLIMIT_FROM_LIST_RESPONSE

Validation and use:

ICMP_IN_RATEOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ICMP_IN_RATE_FROM_LIST_RESPONSE

Validation and use:

PORTFLOODOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PORTFLOOD_FROM_LIST_RESPONSE

Validation and use:

SYNFLOOD_ACTIONOptional
Send in
JSON body
Type
enum
Accepted values
drop, reject
Example
drop

SYNFLOOD ACTION request field. Allowed values: drop, reject.

Validation and use:

SYNFLOOD_RATEOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SYNFLOOD_RATE_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "CONNLIMIT": "CONNLIMIT_FROM_LIST_RESPONSE",
    "ICMP_IN_RATE": "ICMP_IN_RATE_FROM_LIST_RESPONSE",
    "PORTFLOOD": "PORTFLOOD_FROM_LIST_RESPONSE",
    "SYNFLOOD_ACTION": "drop",
    "SYNFLOOD_RATE": "SYNFLOOD_RATE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/ddos/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ICMP_IN_RATE":"ICMP_IN_RATE_FROM_LIST_RESPONSE","SYNFLOOD_RATE":"SYNFLOOD_RATE_FROM_LIST_RESPONSE","SYNFLOOD_ACTION":"drop","PORTFLOOD":"PORTFLOOD_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ICMP_IN_RATE": "ICMP_IN_RATE_FROM_LIST_RESPONSE",
    "SYNFLOOD_RATE": "SYNFLOOD_RATE_FROM_LIST_RESPONSE",
    "SYNFLOOD_ACTION": "drop",
    "PORTFLOOD": "PORTFLOOD_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/firewall/ip-lists/{kind}rootDelete a firewall IP-list entry.

Who can use this

The server administrator (root).

Parameters (3)

kindRequired
Send in
URL path
Type
enum
Accepted values
allow, deny, ignore, temp, permanent-deny, temporary-deny
Example
allow

Kind path parameter. Allowed values: allow, deny, ignore, temp.

Validation and use: Required Replace this placeholder directly in the URL path.

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

ipaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

Supported actions and option sets

kind values (4)
allowpermanent-denytemporary-denyignore

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {},
  "json_body": {
    "ip": "203.0.113.10",
    "ipaddress": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/firewall/ip-lists/allow' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","ip":"203.0.113.10"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Kind: allow
{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: permanent-deny
{
  "path_parameters": {
    "kind": "permanent-deny"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: temporary-deny
{
  "path_parameters": {
    "kind": "temporary-deny"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: ignore
{
  "path_parameters": {
    "kind": "ignore"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/firewall/ip-lists/{kind}rootList firewall IP-list entries.

Who can use this

The server administrator (root).

Parameters (2)

kindRequired
Send in
URL path
Type
enum
Accepted values
allow, deny, ignore, temp, blocklist, permanent-deny, temporary-deny
Example
allow

Kind path parameter. Allowed values: allow, deny, ignore, temp, blocklist.

Validation and use: Required Replace this placeholder directly in the URL path.

maxOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
MAX_FROM_LIST_RESPONSE

Max query parameter.

Validation and use:

Supported actions and option sets

kind values (4)
allowpermanent-denytemporary-denyignore

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/firewall/ip-lists/allow?max=MAX_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Kind: allow
{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: permanent-deny
{
  "path_parameters": {
    "kind": "permanent-deny"
  },
  "query_parameters": {
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: temporary-deny
{
  "path_parameters": {
    "kind": "temporary-deny"
  },
  "query_parameters": {
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: ignore
{
  "path_parameters": {
    "kind": "ignore"
  },
  "query_parameters": {
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/ip-lists/{kind}rootCreate a firewall IP-list entry.

Who can use this

The server administrator (root).

Parameters (6)

kindRequired
Send in
URL path
Type
enum
Accepted values
allow, deny, ignore, temp, permanent-deny, temporary-deny
Example
allow

Kind path parameter. Allowed values: allow, deny, ignore, temp.

Validation and use: Required Replace this placeholder directly in the URL path.

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Validation and use:

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

ipaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

secondsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SECONDS_FROM_LIST_RESPONSE

Validation and use:

timeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
60

Time value.

Validation and use:

Supported actions and option sets

kind values (4)
allowpermanent-denytemporary-denyignore

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {},
  "json_body": {
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "ip": "203.0.113.10",
    "ipaddress": "203.0.113.10",
    "seconds": "SECONDS_FROM_LIST_RESPONSE",
    "time": 60
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/ip-lists/allow' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","ip":"203.0.113.10","comment":"COMMENT_FROM_LIST_RESPONSE","time":60}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Kind: allow
{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "time": 60
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: permanent-deny
{
  "path_parameters": {
    "kind": "permanent-deny"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "time": 60
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: temporary-deny
{
  "path_parameters": {
    "kind": "temporary-deny"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "time": 60
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Kind: ignore
{
  "path_parameters": {
    "kind": "ignore"
  },
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "time": 60
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/ip-lists/{kind}/clearrootClear firewall IP-list entries.

Who can use this

The server administrator (root).

Parameters (1)

kindRequired
Send in
URL path
Type
enum
Accepted values
deny, temp, allow, ignore, permanent-deny, temporary-deny
Example
allow

Kind path parameter. Allowed values: deny, temp, allow, ignore.

Validation and use: Required Replace this placeholder directly in the URL path.

Supported actions and option sets

kind values (4)
allowpermanent-denytemporary-denyignore

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/ip-lists/allow/clear' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Kind: allow
{
  "path_parameters": {
    "kind": "allow"
  },
  "query_parameters": {},
  "json_body": {}
}
Kind: permanent-deny
{
  "path_parameters": {
    "kind": "permanent-deny"
  },
  "query_parameters": {},
  "json_body": {}
}
Kind: temporary-deny
{
  "path_parameters": {
    "kind": "temporary-deny"
  },
  "query_parameters": {},
  "json_body": {}
}
Kind: ignore
{
  "path_parameters": {
    "kind": "ignore"
  },
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/lfd/configrootSave firewall intrusion-monitor settings.

Who can use this

The server administrator (root).

Parameters (6)

CT_PORTSOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CT_PORTS_FROM_LIST_RESPONSE

Validation and use:

FW_LOG_FILESOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FW_LOG_FILES_FROM_LIST_RESPONSE

Validation and use:

LF_ALERT_FROMOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
LF_ALERT_FROM_FROM_LIST_RESPONSE

Validation and use:

LF_ALERT_SMTPOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
LF_ALERT_SMTP_FROM_LIST_RESPONSE

Validation and use:

LF_ALERT_TOOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
LF_ALERT_TO_FROM_LIST_RESPONSE

Validation and use:

PS_PORTSOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PS_PORTS_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "CT_PORTS": "CT_PORTS_FROM_LIST_RESPONSE",
    "FW_LOG_FILES": "FW_LOG_FILES_FROM_LIST_RESPONSE",
    "LF_ALERT_FROM": "LF_ALERT_FROM_FROM_LIST_RESPONSE",
    "LF_ALERT_SMTP": "LF_ALERT_SMTP_FROM_LIST_RESPONSE",
    "LF_ALERT_TO": "LF_ALERT_TO_FROM_LIST_RESPONSE",
    "PS_PORTS": "PS_PORTS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/lfd/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"CT_PORTS":"CT_PORTS_FROM_LIST_RESPONSE","PS_PORTS":"PS_PORTS_FROM_LIST_RESPONSE","LF_ALERT_TO":"LF_ALERT_TO_FROM_LIST_RESPONSE","LF_ALERT_FROM":"LF_ALERT_FROM_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "CT_PORTS": "CT_PORTS_FROM_LIST_RESPONSE",
    "PS_PORTS": "PS_PORTS_FROM_LIST_RESPONSE",
    "LF_ALERT_TO": "LF_ALERT_TO_FROM_LIST_RESPONSE",
    "LF_ALERT_FROM": "LF_ALERT_FROM_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/lfd/installrootInstall or update the firewall intrusion-monitor service.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/lfd/install' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
DELETE/v1/root/firewall/port-restrictionsrootDelete a firewall port restriction.

Who can use this

The server administrator (root).

Parameters (2)

portOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
80

TCP port number.

Validation and use:

protocolOptional
Send in
JSON body
Type
enum
Accepted values
tcp, udp
Example
tcp

Protocol request field. Allowed values: tcp, udp.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "port": 80,
    "protocol": "tcp"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/firewall/port-restrictions' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"protocol":"tcp","port":80}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "protocol": "tcp",
    "port": 80
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/firewall/port-restrictionsrootList firewall port restrictions.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/firewall/port-restrictions' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/firewall/port-restrictionsrootCreate or update a firewall port restriction.

Who can use this

The server administrator (root).

Parameters (5)

action_on_otherOptional
Send in
JSON body
Type
enum
Accepted values
drop, reject
Example
drop

Action on other request field. Allowed values: drop, reject.

Validation and use:

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Validation and use:

portOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
80

TCP port number.

Validation and use:

protocolOptional
Send in
JSON body
Type
enum
Accepted values
tcp, udp
Example
tcp

Protocol request field. Allowed values: tcp, udp.

Validation and use:

sourcesOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
SOURCES_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action_on_other": "drop",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "port": 80,
    "protocol": "tcp",
    "sources": "SOURCES_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/port-restrictions' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"protocol":"tcp","port":80,"action_on_other":"drop","comment":"COMMENT_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "protocol": "tcp",
    "port": 80,
    "action_on_other": "drop",
    "comment": "COMMENT_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/firewall/raw-configrootRead the firewall configuration file.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/firewall/raw-config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/firewall/raw-configrootSave the firewall configuration file.

Before you start

This replaces the file's contents. Keep a backup and check the configuration before applying it.

Who can use this

The server administrator (root).

Parameters (1)

contentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_FROM_LIST_RESPONSE

Text content to save.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "content": "CONTENT_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/raw-config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"content":"CONTENT_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "content": "CONTENT_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/rulesrootSave firewall rules configuration.

Who can use this

The server administrator (root).

Parameters (2)

rulesRequired
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
[{"action":"allow","port":80,"protocol":"tcp"}]

Firewall rule array.

Validation and use:

advanced_rulesOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
ADVANCED_RULES_FROM_LIST_RESPONSE

Advanced firewall rule array.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "rules": [
      {
        "action": "allow",
        "port": 80,
        "protocol": "tcp"
      }
    ],
    "advanced_rules": "ADVANCED_RULES_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/rules' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"rules":[{"action":"allow","port":80,"protocol":"tcp"}],"advanced_rules":"ADVANCED_RULES_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Save empty ruleset
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "rules": [
      {
        "action": "allow",
        "port": 80,
        "protocol": "tcp"
      }
    ],
    "advanced_rules": "ADVANCED_RULES_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/firewall/servicerootRun a firewall service action.

Who can use this

The server administrator (root).

Parameters (2)

cmdOptional
Send in
JSON body
Type
enum
Accepted values
start, stop, restart, enable, disable
Example
start

Cmd request field. Allowed values: start, stop, restart, enable, disable.

Validation and use:

unitOptional
Send in
JSON body
Type
enum
Accepted values
synconix-intrusion-monitor, firewalld
Example
synconix-intrusion-monitor

Unit request field. Allowed values: synconix-intrusion-monitor, firewalld.

Validation and use:

Supported actions and option sets

cmd values (5)
startstoprestartenabledisable
unit values (2)
firewalldsynconix-intrusion-monitor

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "cmd": "start",
    "unit": "synconix-intrusion-monitor"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/firewall/service' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"unit":"synconix-intrusion-monitor","cmd":"start"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "unit": "synconix-intrusion-monitor",
    "cmd": "start"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/firewall/summaryrootView firewall summary and counters.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/firewall/summary' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}

License

POST/v1/license/keyrootValidate and save a license key for lockout recovery.

Who can use this

The server administrator (root).

Parameters (6)

activation_tokenRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Synconix licensing install/activation token. Alias fields: install_token, token, licensekey, license.

Validation and use:

install_tokenOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Alias of activation_token.

Validation and use:

license_urlOptional
Send in
JSON body
Type
url|string
Accepted values
Any value matching url|string
Example
https://example.com

Trusted Synconix license service URL. Defaults to configured license URL.

Validation and use:

machine_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Machine binding override. Defaults to detected machine id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned machine_id value.

product_versionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PRODUCT_VERSION_FROM_LIST_RESPONSE

Product version override for activation. Defaults to detected SHM version.

Validation and use:

tokenOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Alias of activation_token.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "activation_token": "ONE_TIME_TOKEN",
    "install_token": "ONE_TIME_TOKEN",
    "license_url": "https://example.com",
    "machine_id": 1,
    "product_version": "PRODUCT_VERSION_FROM_LIST_RESPONSE",
    "token": "ONE_TIME_TOKEN"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/license/key' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"activation_token":"ONE_TIME_TOKEN"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Activate with install token
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "activation_token": "ONE_TIME_TOKEN"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/license/refreshrootRefresh the local license cache for lockout recovery.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/license/refresh' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/license/statusrootView the current license status for lockout recovery.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/license/status' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/license/keyrootUpdate the authenticated server license key.

Who can use this

The server administrator (root).

Parameters (6)

activation_tokenRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Synconix licensing install/activation token. Alias fields: install_token, token, licensekey, license.

Validation and use:

install_tokenOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Alias of activation_token.

Validation and use:

license_urlOptional
Send in
JSON body
Type
url|string
Accepted values
Any value matching url|string
Example
https://example.com

Trusted Synconix license service URL. Defaults to configured license URL.

Validation and use:

machine_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Machine binding override. Defaults to detected machine id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned machine_id value.

product_versionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PRODUCT_VERSION_FROM_LIST_RESPONSE

Product version override for activation. Defaults to detected SHM version.

Validation and use:

tokenOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Alias of activation_token.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "activation_token": "ONE_TIME_TOKEN",
    "install_token": "ONE_TIME_TOKEN",
    "license_url": "https://example.com",
    "machine_id": 1,
    "product_version": "PRODUCT_VERSION_FROM_LIST_RESPONSE",
    "token": "ONE_TIME_TOKEN"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/license/key' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"activation_token":"ONE_TIME_TOKEN"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Activate with install token
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "activation_token": "ONE_TIME_TOKEN"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/license/refreshrootClear and refresh the authenticated server license cache.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/license/refresh' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/license/staterootView the authenticated server license state.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/license/state' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}

Logs

GET/v1/root/logsrootView log content.

Who can use this

The server administrator (root).

Parameters (13)

logTypeRequired
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
srv_apache

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal. The srv_* values select server logs; other values select account logs. Alias: log_type.

Validation and use: Required Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

account_userConditional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Required for account logs. Alias: user.

Validation and use: Choose the account or resource you want to use.

actionOptional
Send in
Query string
Type
enum
Accepted values
DownloadLog
Example
DownloadLog

Requested action name. Allowed values: DownloadLog. Omit it for normal log-content fetch.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

domainConditional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Required for access, error, modsecurity, http_guard, or ftp account logs. Omit it for server logs, login, and mail_auth logs.

Validation and use: Choose the account or resource you want to use.

downloadOptional
Send in
Query string
Type
enum
Accepted values
DownloadLog
Example
DownloadLog

Alias of action=DownloadLog. Allowed values: DownloadLog.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

fileOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
error.log

Explicit server-log file name from GET /v1/root/logs/files.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name.

fileB64Optional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==

Base64-encoded absolute server-log path returned by GET /v1/root/logs/files. Alias: file_b64.

Validation and use: GET /v1/root/logs/files

file_b64Optional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==

Alias of fileB64.

Validation and use: GET /v1/root/logs/files

ftpAccountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Alias of ftp_account.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Optional FTP account filter when logType=ftp. Alias: ftpAccount.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

linesOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
300

Number of lines to return. Number of log lines to return. Default 500. Max 20000.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

log_typeOptional
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Alias of logType. Prefer logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

userOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_user.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "logType": "srv_apache",
    "account_user": "demo",
    "action": "DownloadLog",
    "domain": "example.com",
    "download": "DownloadLog",
    "file": "error.log",
    "fileB64": "L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==",
    "file_b64": "L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "lines": 300,
    "log_type": "access",
    "user": "demo"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/logs?logType=srv_apache&lines=300' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read recent server Apache log lines
{
  "path_parameters": {},
  "query_parameters": {
    "logType": "srv_apache",
    "lines": 300
  },
  "json_body": {}
}
Read recent account access log lines
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "logType": "access",
    "domain": "example.com",
    "lines": 500
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Download a server log file
{
  "path_parameters": {},
  "query_parameters": {
    "logType": "srv_nginx",
    "action": "DownloadLog"
  },
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/logsrootView log content.

Who can use this

The server administrator (root).

Parameters (13)

logTypeRequired
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal. The srv_* values select server logs; other values select account logs. Alias: log_type.

Validation and use: Required Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

account_userConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Required for account logs. Alias: user.

Validation and use: Choose the account or resource you want to use.

actionOptional
Send in
JSON body
Type
enum
Accepted values
DownloadLog
Example
DownloadLog

Requested action name. Allowed values: DownloadLog. Omit it for normal log-content fetch.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

domainConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Required for access, error, modsecurity, http_guard, or ftp account logs. Omit it for server logs, login, and mail_auth logs.

Validation and use: Choose the account or resource you want to use.

downloadOptional
Send in
JSON body
Type
enum
Accepted values
DownloadLog
Example
DownloadLog

Alias of action=DownloadLog. Allowed values: DownloadLog.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
error.log

Explicit server-log file name from GET /v1/root/logs/files.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name.

fileB64Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==

Base64-encoded absolute server-log path returned by GET /v1/root/logs/files. Alias: file_b64.

Validation and use: GET /v1/root/logs/files

file_b64Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==

Alias of fileB64.

Validation and use: GET /v1/root/logs/files

ftpAccountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Alias of ftp_account.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Optional FTP account filter when logType=ftp. Alias: ftpAccount.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

linesOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
200

Number of lines to return. Number of log lines to return. Default 500. Max 20000.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

log_typeOptional
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Alias of logType. Prefer logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_user.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "access",
    "account_user": "demo",
    "action": "DownloadLog",
    "domain": "example.com",
    "download": "DownloadLog",
    "file": "error.log",
    "fileB64": "L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==",
    "file_b64": "L3Zhci9sb2cvbmdpbngvYWNjZXNzLmxvZw==",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "lines": 200,
    "log_type": "access",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/logs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"logType":"access"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "access"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/logs/contextrootSee which server logs are available to read.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/logs/context' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/logs/filesrootList log files.

Who can use this

The server administrator (root).

Parameters (7)

logTypeRequired
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal. The srv_* values select server logs; other values select account logs. Alias: log_type.

Validation and use: Required Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

account_userConditional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Required for account logs. Alias: user.

Validation and use: Choose the account or resource you want to use.

domainConditional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Required for access, error, modsecurity, http_guard, or ftp account logs. Omit it for server logs, login, and mail_auth logs.

Validation and use: Choose the account or resource you want to use.

ftpAccountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Alias of ftp_account.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Optional FTP account filter when logType=ftp. Alias: ftpAccount.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

log_typeOptional
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Alias of logType. Prefer logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

userOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_user.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "logType": "access",
    "account_user": "demo",
    "domain": "example.com",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "log_type": "access",
    "user": "demo"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/logs/files?account_user=demo&logType=access&domain=example.com' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List account access logs
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "logType": "access",
    "domain": "example.com"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

List server Apache logs
{
  "path_parameters": {},
  "query_parameters": {
    "logType": "srv_apache"
  },
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/logs/filesrootList log files.

Who can use this

The server administrator (root).

Parameters (7)

logTypeRequired
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal. The srv_* values select server logs; other values select account logs. Alias: log_type.

Validation and use: Required Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

account_userConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Required for account logs. Alias: user.

Validation and use: Choose the account or resource you want to use.

domainConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Required for access, error, modsecurity, http_guard, or ftp account logs. Omit it for server logs, login, and mail_auth logs.

Validation and use: Choose the account or resource you want to use.

ftpAccountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Alias of ftp_account.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

Optional FTP account filter when logType=ftp. Alias: ftpAccount.

Validation and use: GET /v1/accounts/{username}/ftp/accounts

log_typeOptional
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal
Example
access

Log type. Alias of logType. Prefer logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth, srv_apache, srv_nginx, srv_exim, srv_firewall, srv_mariadb, srv_messages, srv_auth, srv_powerdns, srv_journal.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Alias of account_user.

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "access",
    "account_user": "demo",
    "domain": "example.com",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "log_type": "access",
    "user": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/logs/files' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"logType":"access"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "access"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Mail Queue

POST/v1/root/mail-queue/deleterootRemove one message waiting in the mail queue.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1AbCde-000001-Xy

Exact Exim queue message id returned by the list endpoint.

Validation and use: Pattern: ^[0-9A-Za-z-]+$. POST /v1/root/mail-queue/list

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": "1AbCde-000001-Xy"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail-queue/delete' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"id":"1AbCde-000001-Xy"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Delete one queued message
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": "1AbCde-000001-Xy"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/mail-queue/delete-allrootRemove all messages waiting in the mail queue.

Before you start

Review the queue first. Deleted messages will not be delivered.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail-queue/delete-all' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Delete the complete queue
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/mail-queue/delete-selectedrootRemove the selected messages from the mail queue.

Who can use this

The server administrator (root).

Parameters (1)

idsRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1AbCde-000001-Xy,1FgHij-000002-Zz

Comma-separated exact Exim queue message ids returned by the list endpoint. At least one id is required.

Validation and use: Pattern: ^[0-9A-Za-z-]+(?:\s*,\s*[0-9A-Za-z-]+)*$. POST /v1/root/mail-queue/list

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ids": "1AbCde-000001-Xy,1FgHij-000002-Zz"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail-queue/delete-selected' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ids":"1AbCde-000001-Xy,1FgHij-000002-Zz"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Delete selected queued messages
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ids": "1AbCde-000001-Xy,1FgHij-000002-Zz"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/mail-queue/listrootList messages waiting to be delivered.

Who can use this

The server administrator (root).

Parameters (4)

drawOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 1
Example
1

DataTables draw counter echoed in the response.

Validation and use: Default: 1.

lengthOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 100
Example
100

Maximum rows returned from the offset. Zero or a negative value returns every remaining row.

Validation and use: Default: 100.

searchOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"value":"example.com"}

Optional DataTables search object. search.value is matched case-insensitively against queue id, sender, recipients, status, size, and age.

Validation and use:

startOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 0
Example
0

Zero-based queue-row offset. Negative values are normalized to zero.

Validation and use: Default: 0.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "length": 100,
    "search": {
      "value": "example.com"
    },
    "start": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail-queue/list' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"draw":1,"start":0,"length":100,"search":{"value":"example.com"}}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List and search queued messages
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": {
      "value": "example.com"
    }
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/mail-queue/messagerootRead the details of a message waiting to be delivered.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1AbCde-000001-Xy

Exact Exim queue message id returned by the list endpoint.

Validation and use: Pattern: ^[0-9A-Za-z-]+$. POST /v1/root/mail-queue/list

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": "1AbCde-000001-Xy"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail-queue/message' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"id":"1AbCde-000001-Xy"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read one queued message
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": "1AbCde-000001-Xy"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/mail-queue/resendrootRetry delivery of a queued email.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1AbCde-000001-Xy

Exact Exim queue message id returned by the list endpoint.

Validation and use: Pattern: ^[0-9A-Za-z-]+$. POST /v1/root/mail-queue/list

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": "1AbCde-000001-Xy"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/mail-queue/resend' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"id":"1AbCde-000001-Xy"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Retry one queued message
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "id": "1AbCde-000001-Xy"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Maintenance

POST/v1/root/maintenance/storage-cleanuprootPreview removable server files and clean up the items you approve.

Before you start

Preview first. To apply that plan, use its one-use token within 15 minutes. You cannot supply your own file path or command.

Who can use this

The server administrator (root).

Parameters (4)

actionsConditional
Send in
JSON body
Type
array|string|csv string
Accepted values
package_cache, journal, temporary_files, logs
Example
["package_cache","journal","temporary_files","logs"]

Fixed preview action set: package_cache, journal, temporary_files, logs. Omit to include all four. Explicitly empty, unknown, or malformed values are rejected.

Validation and use: Needed when: optional for preview; forbidden for apply.

journal_retain_daysConditional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
14

Journal retention saved into the plan. Range 7-90 days; default 14.

Validation and use: Needed when: optional for preview; forbidden for apply.

modeOptional
Send in
JSON body
Type
enum
Accepted values
preview, apply
Example
preview

Operation mode. Defaults to preview. Preview creates no file changes; apply consumes one exact plan_token.

Validation and use:

plan_tokenConditional
Send in
JSON body
Type
48-character string
Accepted values
Any value matching 48-character string
Example
ONE_TIME_TOKEN

Exact one-use token returned by preview. It expires after 15 minutes and cannot be replayed after consumption.

Validation and use: Needed when: required when mode=apply.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "actions": [
      "package_cache",
      "journal",
      "temporary_files",
      "logs"
    ],
    "journal_retain_days": 14,
    "mode": "preview",
    "plan_token": "ONE_TIME_TOKEN"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/maintenance/storage-cleanup' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"mode":"preview","actions":["package_cache","journal","temporary_files","logs"],"journal_retain_days":14}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Preview safe cleanup
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "preview",
    "actions": [
      "package_cache",
      "journal",
      "temporary_files",
      "logs"
    ],
    "journal_retain_days": 14
  }
}
Apply the exact approved plan
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "apply",
    "plan_token": "ONE_TIME_TOKEN"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Preview all safe cleanup actions
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "preview",
    "journal_retain_days": 14
  }
}
Preview selected fixed actions
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "preview",
    "actions": [
      "package_cache",
      "temporary_files",
      "logs"
    ]
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
modepreview|apply
plan_tokenone-use plan token
actionspreview action names or per-action apply results
protected_pathscustomer home and configured backup roots excluded by the fixed action contract
customer_backup_paths_touchedalways 0 for the fixed action implementation
free_bytes_beforeapply-only root filesystem free bytes before actions
free_bytes_afterapply-only root filesystem free bytes after actions
verification.complete1 only when every fixed action succeeded and free space was measured again

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Migration

GET/v1/root/migration/contextrootView migration setup choices.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/migration/context' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/migration/jobsrootList account migration jobs.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/migration/jobs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List migration jobs
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
jobs[]Migration job objects. Completed accounts may include integrity_status (ok|warning|error), integrity_errors[], integrity_warnings[], integrity_summary, and integrity_checked_at. live_counts may include integrity_errors and integrity_warnings totals.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/migration/jobsrootCreate a migration job.

Who can use this

The server administrator (root).

Parameters (50)

source_modeRequired
Send in
JSON body
Type
enum
Accepted values
remote, archive
Example
remote

Migration source mode. remote scans and gathers over SSH; archive imports one local/downloaded backup.

Validation and use:

source_platformRequired
Send in
JSON body
Type
enum
Accepted values
cpanel, shm, plesk, directadmin
Example
cpanel

Source platform. Archive mode accepts only cpanel or shm; remote mode accepts all four values.

Validation and use:

archive_pathConditional
Send in
JSON body
Type
absolute path|string
Accepted values
Any value matching absolute path|string
Example
/root/cpmove-demoacct.tar.gz

Existing local backup archive under /root. cPanel accepts cpmove-USER.tar.gz or backup-DATE_TIME_USER.tar.gz and imports Mailman list definitions, but not non-portable Mailman member/settings state from config.pck. SHM requires structure/account.yaml; SHM archives do not carry a restorable PostgreSQL password verifier and therefore reject copy_pgsql.

Validation and use: Needed when: required when source mode=archive and archive url is omitted.

archive_urlConditional
Send in
JSON body
Type
HTTP(S) URL|string
Accepted values
Any value matching HTTP(S) URL|string
Example
https://example.com

Direct HTTP or HTTPS backup URL downloaded into a private task-owned directory under /root. URL userinfo/query credentials are used only for the download and are not stored in the job or returned by the API.

Validation and use: Needed when: required when source mode=archive and archive path is omitted.

concurrent_accountsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 1
Example
2

Maximum accounts migrated concurrently. Range: 1-10. Default: 1.

Validation and use: Minimum 1. Maximum 10. Default: 1.

conflict_account_policyOptional
Send in
JSON body
Type
enum
Accepted values
skip, overwrite
Example
skip

Existing target account policy. skip leaves it untouched; overwrite reuses the existing account through the migration-safe path.

Validation and use: Default: skip.

conflict_dns_policyOptional
Send in
JSON body
Type
enum
Accepted values
keep_existing, overwrite
Example
keep_existing

Existing DNS zone policy. overwrite explicitly replaces target/local cluster zones.

Validation and use: Default: keep_existing.

conflict_domain_policyOptional
Send in
JSON body
Type
enum
Accepted values
skip_account, skip_domain
Example
skip_account

Domain collision policy. skip_account stops that account; skip_domain omits only conflicting secondary domains where safe.

Validation and use: Default: skip_account.

copy_dataOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Copy account home/web data.

Validation and use: Default: false.

copy_dnsonlyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Remote cPanel/SHM only: queue the job-level DNS-only zone copy. Plesk, DirectAdmin, and archive jobs reject this option before changing job state.

Validation and use: Default: false.

copy_mailOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Copy mailbox message data after mailbox metadata is created.

Validation and use: Default: false.

copy_mysqlOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Export/import MySQL database contents after database metadata is created.

Validation and use: Default: false.

copy_pgsqlOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Export/import PostgreSQL metadata and contents. Supported only for remote cPanel, remote SHM, and cPanel archives. Every database/user name must be a valid globally unique PostgreSQL identifier, every login must be non-system and provide a valid SCRAM-SHA-256 verifier, and each destination name must be unclaimed or already owned by the target account for retry. Plesk, DirectAdmin, SHM archives, reserved/system roles, MD5/missing/invalid verifiers, and destination ownership conflicts are rejected fail-closed before live PostgreSQL change. Verifiers are worker-only secrets and are never returned by migration job APIs or stored in destination account YAML.

Validation and use: Default: false.

selected_accountsConditional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
[{"user":"demoacct","domain":"example.com","partition":"home","owner":"root","disklimit":2048,"maxaddons":10,"maxparked":10,"maxsub":20,"maxsql":10,"maxpop":20,"maxftp":10,"maxlst":5,"shell":"/sbin/nologin","suspended":0}]

One or more account objects returned by POST /v1/root/migration/scan. Required and non-empty in remote mode.

Validation and use: Needed when: required when source mode=remote.

selected_accounts[].account_keyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_ACCOUNT_KEY_FROM_LIST_RESPONSE

SHM saved account settings key returned by an SHM scan.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].disklimitOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Source disk quota in MB; -1 means unlimited.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].diskusedOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Source disk usage in MB for display/projection.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].domainConditional
Send in
JSON body
Type
domain|string
Accepted values
Any value matching domain|string
Example
example.com

Source account main domain.

Validation and use: Conditional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Needed when: required in selected accounts.

selected_accounts[].emailOptional
Send in
JSON body
Type
email|string
Accepted values
Any value matching email|string
Example
admin@example.com

Source account contact email.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].idOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

SHM source account ID returned by an SHM scan.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].inodeslimitOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Inode limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].ipOptional
Send in
JSON body
Type
IP|string
Accepted values
Any value matching IP|string
Example
SELECTED_ACCOUNTS_IP_FROM_LIST_RESPONSE

Source account IP. Used only when use_source_ip is enabled and the address is valid locally.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].max_email_per_hourOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Outbound email-per-hour limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxaddonsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Addon-domain limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxcpuOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

CPU limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxdiskOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Disk bandwidth limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxftpOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

FTP account limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxioOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

IOPS limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxlstOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Mailing-list limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxmemOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Memory limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxparkedOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Parked-domain limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxpopOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Mailbox limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxprocOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Process limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxsqlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

MySQL database limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].maxsubOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Subdomain limit.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].ownerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_OWNER_FROM_LIST_RESPONSE

Source reseller owner; root is used when no mapped reseller applies.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].partitionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_PARTITION_FROM_LIST_RESPONSE

Source home partition, normally home.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].resellerOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
SELECTED_ACCOUNTS_RESELLER_FROM_LIST_RESPONSE

Optional reseller metadata object, including enabled, maxaccounts, and maxdiskspace.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].shadowOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_SHADOW_FROM_LIST_RESPONSE

Source system password hash when the scan/provider exposes it.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].shellOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_SHELL_FROM_LIST_RESPONSE

Source shell path/state. /bin/bash enables shell; /sbin/nologin disables it.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].subscriptionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_SUBSCRIPTION_FROM_LIST_RESPONSE

Plesk subscription name returned by a Plesk scan.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].suspendedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Whether the source account is suspended.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

selected_accounts[].userConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_ACCOUNTS_USER_FROM_LIST_RESPONSE

Source account/system username. Must be unique within the job.

Validation and use: Conditional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Needed when: required in selected accounts.

selected_ipOptional
Send in
JSON body
Type
IP|string
Accepted values
Any value matching IP|string
Example
203.0.113.10

Target IP override. Empty uses the configured shared IP unless use_source_ip can safely preserve the source IP.

Validation and use:

selected_ownerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTED_OWNER_FROM_LIST_RESPONSE

Target owner override. Empty preserves/maps source ownership where supported.

Validation and use:

selected_packageOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
1

Target SHM package identifier applied to migrated accounts.

Validation and use:

server_hostnameConditional
Send in
JSON body
Type
hostname|IP|string
Accepted values
Any value matching hostname|IP|string
Example
cpanel-source.example.com

Remote SSH hostname or IP. Required in remote mode.

Validation and use: Needed when: required when source mode=remote.

server_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Remote root SSH password. Omit to use supported root key authentication.

Validation and use:

server_portOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 22
Example
22

Remote SSH port in remote mode. Range: 1-65535. Default: 22.

Validation and use: Minimum 1. Maximum 65535. Default: 22.

use_source_ipOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Preserve a valid source account IP when available; otherwise use selected_ip/shared IP.

Validation and use: Default: false.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_mode": "remote",
    "source_platform": "cpanel",
    "archive_path": "/root/cpmove-demoacct.tar.gz",
    "archive_url": "https://example.com",
    "concurrent_accounts": 2,
    "conflict_account_policy": "skip",
    "conflict_dns_policy": "keep_existing",
    "conflict_domain_policy": "skip_account",
    "copy_data": true,
    "copy_dnsonly": false,
    "copy_mail": true,
    "copy_mysql": true,
    "copy_pgsql": true,
    "selected_accounts": [
      {
        "user": "demoacct",
        "domain": "example.com",
        "partition": "home",
        "owner": "root",
        "disklimit": 2048,
        "maxaddons": 10,
        "maxparked": 10,
        "maxsub": 20,
        "maxsql": 10,
        "maxpop": 20,
        "maxftp": 10,
        "maxlst": 5,
        "shell": "/sbin/nologin",
        "suspended": 0
      }
    ],
    "selected_accounts[].account_key": "SELECTED_ACCOUNTS_ACCOUNT_KEY_FROM_LIST_RESPONSE",
    "selected_accounts[].disklimit": -1,
    "selected_accounts[].diskused": -1,
    "selected_accounts[].domain": "example.com",
    "selected_accounts[].email": "admin@example.com",
    "selected_accounts[].id": -1,
    "selected_accounts[].inodeslimit": -1,
    "selected_accounts[].ip": "SELECTED_ACCOUNTS_IP_FROM_LIST_RESPONSE",
    "selected_accounts[].max_email_per_hour": -1,
    "selected_accounts[].maxaddons": -1,
    "selected_accounts[].maxcpu": -1,
    "selected_accounts[].maxdisk": -1,
    "selected_accounts[].maxftp": -1,
    "selected_accounts[].maxio": -1,
    "selected_accounts[].maxlst": -1,
    "selected_accounts[].maxmem": -1,
    "selected_accounts[].maxparked": -1,
    "selected_accounts[].maxpop": -1,
    "selected_accounts[].maxproc": -1,
    "selected_accounts[].maxsql": -1,
    "selected_accounts[].maxsub": -1,
    "selected_accounts[].owner": "SELECTED_ACCOUNTS_OWNER_FROM_LIST_RESPONSE",
    "selected_accounts[].partition": "SELECTED_ACCOUNTS_PARTITION_FROM_LIST_RESPONSE",
    "selected_accounts[].reseller": "SELECTED_ACCOUNTS_RESELLER_FROM_LIST_RESPONSE",
    "selected_accounts[].shadow": "SELECTED_ACCOUNTS_SHADOW_FROM_LIST_RESPONSE",
    "selected_accounts[].shell": "SELECTED_ACCOUNTS_SHELL_FROM_LIST_RESPONSE",
    "selected_accounts[].subscription": "SELECTED_ACCOUNTS_SUBSCRIPTION_FROM_LIST_RESPONSE",
    "selected_accounts[].suspended": 1,
    "selected_accounts[].user": "SELECTED_ACCOUNTS_USER_FROM_LIST_RESPONSE",
    "selected_ip": "203.0.113.10",
    "selected_owner": "SELECTED_OWNER_FROM_LIST_RESPONSE",
    "selected_package": "1",
    "server_hostname": "cpanel-source.example.com",
    "server_password": "STRONG_PASSWORD",
    "server_port": 22,
    "use_source_ip": false
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/migration/jobs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"source_mode":"remote","source_platform":"cpanel","server_hostname":"cpanel-source.example.com","server_port":22,"server_password":"STRONG_PASSWORD","selected_accounts":[{"user":"demoacct","domain":"example.com","partition":"home","owner":"root","disklimit":2048,"maxaddons":10,"maxparked":10,"maxsub":20,"maxsql":10,"maxpop":20,"maxftp":10,"maxlst":5,"shell":"/sbin/nologin","suspended":0}],"selected_package":"1","concurrent_accounts":2,"copy_data":true,"copy_mail":true,"copy_mysql":true,"copy_pgsql":true,"conflict_account_policy":"skip","conflict_domain_policy":"skip_account","conflict_dns_policy":"keep_existing"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Create remote cPanel migration job
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_mode": "remote",
    "source_platform": "cpanel",
    "server_hostname": "cpanel-source.example.com",
    "server_port": 22,
    "server_password": "STRONG_PASSWORD",
    "selected_accounts": [
      {
        "user": "demoacct",
        "domain": "example.com",
        "partition": "home",
        "owner": "root",
        "disklimit": 2048,
        "maxaddons": 10,
        "maxparked": 10,
        "maxsub": 20,
        "maxsql": 10,
        "maxpop": 20,
        "maxftp": 10,
        "maxlst": 5,
        "shell": "/sbin/nologin",
        "suspended": 0
      }
    ],
    "selected_package": "1",
    "concurrent_accounts": 2,
    "copy_data": true,
    "copy_mail": true,
    "copy_mysql": true,
    "copy_pgsql": true,
    "conflict_account_policy": "skip",
    "conflict_domain_policy": "skip_account",
    "conflict_dns_policy": "keep_existing"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Create remote Plesk migration job
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_mode": "remote",
    "source_platform": "plesk",
    "server_hostname": "plesk-source.example.com",
    "server_port": 22,
    "selected_accounts": [
      {
        "user": "pleskuser",
        "domain": "plesk-example.com",
        "subscription": "plesk-example.com",
        "owner": "root"
      }
    ],
    "copy_data": true,
    "copy_mail": true,
    "copy_mysql": true
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Create cPanel archive migration job
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_mode": "archive",
    "source_platform": "cpanel",
    "archive_path": "/root/cpmove-demoacct.tar.gz",
    "selected_package": "1",
    "copy_data": true,
    "copy_mail": true,
    "copy_mysql": true,
    "copy_pgsql": true
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Create SHM archive migration job
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_mode": "archive",
    "source_platform": "shm",
    "archive_path": "/root/backup-shm-demoacct.tar.gz",
    "selected_package": "1",
    "copy_data": true,
    "copy_mail": true,
    "copy_mysql": true,
    "copy_pgsql": false
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/migration/jobs/{job_id}rootDelete a migration job.

Who can use this

The server administrator (root).

Parameters (1)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
job-id-from-previous-response

Job id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/migration/jobs/job-id-from-previous-response' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/migration/jobs/{job_id}rootView one migration job.

Who can use this

The server administrator (root).

Parameters (1)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
migjob_example

Migration job identifier returned by job creation or listing.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/migration/jobs/migjob_example' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read migration job status
{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
jobMigration job object. Completed accounts may include integrity_status (ok|warning|error), integrity_errors[], integrity_warnings[], integrity_summary, and integrity_checked_at. live_counts may include integrity_errors and integrity_warnings totals.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/migration/jobs/{job_id}/selective-resyncrootQueue or start a migration selective re-sync.

Who can use this

The server administrator (root).

Parameters (5)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
migjob_example

Migration job identifier returned by job creation/listing.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

account_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demoacct

Target account username or ALL to re-run all matching accounts.

Validation and use:

stepsRequired
Send in
JSON body
Type
array<enum>|JSON array string
Accepted values
create_account, create_subdomains, create_addons, create_parked, create_dns, create_emailaccounts, create_emailforwarders, create_mailinglists, create_emailfilters, create_emailautoresponders, create_ftpaccounts, create_databases, create_databaseusers, create_cronjobs, copy_ssl, copy_mysql, copy_pgsql, copy_data, copy_mail, copy_dnsonly
Example
["create_emailaccounts","create_emailforwarders","create_mailinglists","create_emailfilters","create_emailautoresponders","copy_mail"]

Non-empty unique step list. Values outside the documented list are ignored; the request fails if no valid step remains. copy_dnsonly is accepted only for remote cPanel and remote SHM jobs. copy_pgsql is accepted only for remote cPanel, remote SHM, and cPanel archive jobs that satisfy the documented identifier/SCRAM/ownership contract; unsupported legacy jobs are rejected before progress is reset.

Validation and use:

concurrent_accountsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
2

Optional concurrency override for the restarted job. Clamped to 1-10.

Validation and use: Minimum 1. Maximum 10.

full_resetOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Reset selected step state even when prior progress exists.

Validation and use: Default: false.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demoacct",
    "steps": [
      "create_emailaccounts",
      "create_emailforwarders",
      "create_mailinglists",
      "create_emailfilters",
      "create_emailautoresponders",
      "copy_mail"
    ],
    "concurrent_accounts": 2,
    "full_reset": true
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/migration/jobs/migjob_example/selective-resync' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"account_user":"demoacct","steps":["create_emailaccounts","create_emailforwarders","create_mailinglists","create_emailfilters","create_emailautoresponders","copy_mail"],"full_reset":true}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Re-sync mail resources for one account
{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demoacct",
    "steps": [
      "create_emailaccounts",
      "create_emailforwarders",
      "create_mailinglists",
      "create_emailfilters",
      "create_emailautoresponders",
      "copy_mail"
    ],
    "full_reset": true
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Clean restart data and databases for all accounts
{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "ALL",
    "steps": [
      "copy_data",
      "copy_mysql",
      "copy_pgsql"
    ],
    "concurrent_accounts": 2,
    "full_reset": true
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Re-run job-level DNS-only copy
{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "ALL",
    "steps": [
      "copy_dnsonly"
    ]
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/migration/jobs/{job_id}/startrootStart or resume a migration job.

Who can use this

The server administrator (root).

Parameters (1)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
migjob_example

Migration job identifier returned by job creation/listing.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/migration/jobs/migjob_example/start' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Resume a pending or stale migration coordinator
{
  "path_parameters": {
    "job_id": "migjob_example"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/migration/jobs/{job_id}/stoprootStop a migration job.

Who can use this

The server administrator (root).

Parameters (1)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
job-id-from-previous-response

Job id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/migration/jobs/job-id-from-previous-response/stop' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/migration/scanrootScan a remote migration source server.

Who can use this

The server administrator (root).

Parameters (4)

remoteserverRequired
Send in
JSON body
Type
hostname|IP|string
Accepted values
Any value matching hostname|IP|string
Example
cpanel-source.example.com

Remote server hostname or IP address. SSH connects as root.

Validation and use:

source_platformRequired
Send in
JSON body
Type
enum
Accepted values
cpanel, shm, plesk, directadmin
Example
cpanel

Remote control-panel type. Allowed values: cpanel, shm, plesk, directadmin.

Validation and use:

remotepasswordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Remote root SSH password. When omitted, SHM uses non-interactive key authentication if a supported root key is available.

Validation and use:

remoteportOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 22
Example
22

Remote SSH port. Range: 1-65535. Default: 22.

Validation and use: Minimum 1. Maximum 65535. Default: 22.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "remoteserver": "cpanel-source.example.com",
    "source_platform": "cpanel",
    "remotepassword": "STRONG_PASSWORD",
    "remoteport": 22
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/migration/scan' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"source_platform":"cpanel","remoteserver":"cpanel-source.example.com","remoteport":22,"remotepassword":"STRONG_PASSWORD"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Scan cPanel accounts
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_platform": "cpanel",
    "remoteserver": "cpanel-source.example.com",
    "remoteport": 22,
    "remotepassword": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Scan Plesk with SSH key authentication
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_platform": "plesk",
    "remoteserver": "plesk-source.example.com",
    "remoteport": 22
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Scan DirectAdmin
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_platform": "directadmin",
    "remoteserver": "directadmin-source.example.com",
    "remoteport": 2222,
    "remotepassword": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Scan another SHM server
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source_platform": "shm",
    "remoteserver": "shm-source.example.com",
    "remoteport": 22,
    "remotepassword": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

ModSecurity

PATCH/v1/root/modsecurityrootSave ModSecurity manager settings.

Who can use this

The server administrator (root).

Parameters (2)

default_modeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DEFAULT_MODE_FROM_LIST_RESPONSE

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "default_mode": "DEFAULT_MODE_FROM_LIST_RESPONSE",
    "enabled": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/modsecurity' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"enabled":1,"default_mode":"DEFAULT_MODE_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "enabled": 1,
    "default_mode": "DEFAULT_MODE_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/modsecurity/contextrootView ModSecurity protection settings and status.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/modsecurity/context' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/modsecurity/installrootInstall or repair ModSecurity website protection and its standard rules.

Who can use this

The server administrator (root).

Parameters (2)

forceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

force_refreshOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "force": 1,
    "force_refresh": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/modsecurity/install' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"force_refresh":1,"force":1}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "force_refresh": 1,
    "force": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/modsecurity/uninstallrootRemove ModSecurity website protection from the server.

Before you start

This also turns it off for hosted websites. Confirm removal only if that is intended.

Who can use this

The server administrator (root).

Parameters (1)

confirmRequired
Send in
JSON body
Type
enum
Accepted values
UNINSTALL
Example
UNINSTALL

Exact destructive confirmation. The value must be UNINSTALL, in uppercase.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "confirm": "UNINSTALL"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/modsecurity/uninstall' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"confirm":"UNINSTALL"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Confirm complete ModSecurity removal
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "confirm": "UNINSTALL"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Monitor

GET/v1/root/monitor/configrootView server monitor configuration and service states.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/monitor/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/monitor/configrootSave server monitor configuration.

Who can use this

The server administrator (root).

Parameters (3)

emailsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin@example.com

Comma-separated global notification recipients. Per-service notify controls whether each service uses this recipient list.

Validation and use:

loop_delayOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
60

Monitor check interval in seconds. Minimum accepted value is 5.

Validation and use:

monitoredOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"php":{"enabled":"on","action":"restart","notify":"off"}}

Map of monitor service keys to settings. Each service object accepts enabled: on/off, action: restart/start/stop/none, and notify: on/off.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "emails": "admin@example.com",
    "loop_delay": 60,
    "monitored": {
      "php": {
        "enabled": "on",
        "action": "restart",
        "notify": "off"
      }
    }
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/monitor/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"loop_delay":60,"emails":"admin@example.com","monitored":{"php":{"enabled":"on","action":"restart","notify":"off"}}}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Enable PHP-FPM pool monitoring without email alerts
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "loop_delay": 60,
    "emails": "admin@example.com",
    "monitored": {
      "php": {
        "enabled": "on",
        "action": "restart",
        "notify": "off"
      }
    }
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/monitor/row/{service}rootView one server monitor service row.

Who can use this

The server administrator (root).

Parameters (1)

serviceRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
apache

Allowed values: live service keys returned by GET /v1/root/monitor/config. Common keys: apache, nginx, php, mail, dovecot, mariadb, dns. For php, the row returns aggregate PHP-FPM user-pool health plus unhealthy pool details.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "service": "apache"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/monitor/row/apache' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "service": "apache"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/monitor/service/{cmd}rootStart, stop, or restart the monitor service.

Who can use this

The server administrator (root).

Parameters (1)

cmdRequired
Send in
URL path
Type
enum
Accepted values
start, stop, restart
Example
start

Cmd path parameter. Allowed values: start, stop, restart.

Validation and use: Required Replace this placeholder directly in the URL path.

Supported actions and option sets

cmd values (3)
startstoprestart

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "cmd": "start"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/monitor/service/start' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Cmd: start
{
  "path_parameters": {
    "cmd": "start"
  },
  "query_parameters": {},
  "json_body": {}
}
Cmd: stop
{
  "path_parameters": {
    "cmd": "stop"
  },
  "query_parameters": {},
  "json_body": {}
}
Cmd: restart
{
  "path_parameters": {
    "cmd": "restart"
  },
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Mysql Processes

GET/v1/mysql-processesrootView active MySQL or MariaDB connections and queries.

Who can use this

The server administrator (root).

Parameters (7)

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed in the full response.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 25
Example
25

Maximum number of process rows returned in full mode.

Validation and use: Minimum 1. Maximum 200. Default: 25. Needed when: optional when mode=full.

modeOptional
Send in
Query string
Type
enum
Accepted values
simple, full
Example
full

Response shape. simple returns the complete authorized process list; full enables limited DataTables paging, search, and ordering.

Validation and use: Default: simple.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
desc

Sort direction for full mode. Values other than asc normalize to desc.

Validation and use: Default: desc. Needed when: optional when mode=full.

order_idxOptional
Send in
Query string
Type
enum
Accepted values
0, 1, 2, 3, 4, 5, 6, 7
Example
1

Sort column index: pid, elapsed time, user, host, database, command, state, or query text.

Validation and use: Default: 1. Needed when: optional when mode=full.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text for process id, user, host, database, command, state, and query text.

Validation and use: Maximum length 128. Needed when: optional when mode=full.

startOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result offset for full mode. Negative values normalize to zero.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "draw": 1,
    "length": 25,
    "mode": "full",
    "order_dir": "desc",
    "order_idx": 1,
    "search": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/mysql-processes?mode=full&draw=1&start=0&length=25&search=account&order_idx=1&order_dir=desc' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List MySQL/MariaDB processes in full mode
{
  "path_parameters": {},
  "query_parameters": {
    "mode": "full",
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": "account",
    "order_idx": 1,
    "order_dir": "desc"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
data[]["pid","user","host","db","command","time","state","info","killable"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/mysql-processesrootView active MySQL or MariaDB connections and queries.

Who can use this

The server administrator (root).

Parameters (11)

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed in the full response.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 25
Example
25

Maximum number of process rows returned in full mode.

Validation and use: Minimum 1. Maximum 200. Default: 25. Needed when: optional when mode=full.

modeOptional
Send in
JSON body
Type
enum
Accepted values
simple, full
Example
full

Response shape. simple returns the complete authorized process list; full enables limited DataTables paging, search, and ordering.

Validation and use: Default: simple.

orderOptional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
[{"column":1,"dir":"desc"}]

DataTables order array. The first object controls sorting.

Validation and use: Needed when: optional alternative to order idx and order dir.

order[].columnOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2, 3, 4, 5, 6, 7
Example
0

DataTables sort column index from the same eight-column order_idx mapping.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Needed when: optional when order is supplied.

order[].dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

DataTables sort direction.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Needed when: optional when order is supplied.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
desc

Sort direction for full mode. Values other than asc normalize to desc.

Validation and use: Default: desc. Needed when: optional when mode=full.

order_idxOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2, 3, 4, 5, 6, 7
Example
1

Sort column index: pid, elapsed time, user, host, database, command, state, or query text.

Validation and use: Default: 1. Needed when: optional when mode=full.

searchOptional
Send in
JSON body
Type
string|object
Accepted values
Any value matching string|object
Example
{"value":"example"}

Case-insensitive search text or DataTables object containing search.value. Search input is limited to 128 characters.

Validation and use: Maximum length 128. Needed when: optional when mode=full.

search.valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

DataTables nested search text. Used when search is supplied as an object.

Validation and use: Optional Send this value at the documented nested JSON body path. Maximum length 128. Needed when: optional alternative to search.

startOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result offset for full mode. Negative values normalize to zero.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "length": 25,
    "mode": "full",
    "order": [
      {
        "column": 1,
        "dir": "desc"
      }
    ],
    "order[].column": 0,
    "order[].dir": "asc",
    "order_dir": "desc",
    "order_idx": 1,
    "search": {
      "value": "example"
    },
    "search.value": "account",
    "start": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/mysql-processes' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"mode":"full","draw":1,"start":0,"length":25,"search":{"value":"example"},"order_idx":1,"order_dir":"desc","order":[{"column":1,"dir":"desc"}]}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List MySQL/MariaDB processes in full mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "full",
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": "example"
    },
    "order_idx": 1,
    "order_dir": "desc",
    "order": [
      {
        "column": 1,
        "dir": "desc"
      }
    ]
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/mysql-processes/{id}rootStop a selected MySQL or MariaDB connection.

Before you start

Stopping a connection can interrupt the application using it.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
positive integer
Accepted values
Any value matching positive integer
Example
4101

Exact process id from the corresponding list response where killable is true.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/mysql-processes

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 4101
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/mysql-processes/4101' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Terminate one MySQL/MariaDB process
{
  "path_parameters": {
    "id": 4101
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Owner

PATCH/v1/accounts/{username}/ownerrootChange account owner.

Who can use this

The server administrator (root).

Parameters (3)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

ownerRequired
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
OWNER_FROM_LIST_RESPONSE

Owner username or owner filter. Exact target owner supplied by root: root/0, an existing reseller username, or that reseller system UID. Alias: owner_id. Never infer or default this value.

Validation and use:

owner_idOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
OWNER_ID_FROM_LIST_RESPONSE

Legacy alias of owner. Prefer owner. When both fields are sent, they must resolve to the same root or reseller identity.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "owner": "OWNER_FROM_LIST_RESPONSE",
    "owner_id": "OWNER_ID_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/owner' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"owner":"OWNER_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Transfer account to a reseller
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "owner": "OWNER_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Pgsql Processes

GET/v1/pgsql-processesrootView active PostgreSQL connections and queries.

Who can use this

The server administrator (root).

Parameters (7)

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed in the full response.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 25
Example
25

Maximum number of process rows returned in full mode.

Validation and use: Minimum 1. Maximum 200. Default: 25. Needed when: optional when mode=full.

modeOptional
Send in
Query string
Type
enum
Accepted values
simple, full
Example
full

Response shape. simple returns the complete authorized process list; full enables limited DataTables paging, search, and ordering.

Validation and use: Default: simple.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
desc

Sort direction for full mode. Values other than asc normalize to desc.

Validation and use: Default: desc. Needed when: optional when mode=full.

order_idxOptional
Send in
Query string
Type
enum
Accepted values
0, 1, 2, 3, 4, 5, 6, 7
Example
1

Sort column index: pid, elapsed time, user, host, database, command, state, or query text.

Validation and use: Default: 1. Needed when: optional when mode=full.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text for process id, user, host, database, command, state, and query text.

Validation and use: Maximum length 128. Needed when: optional when mode=full.

startOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result offset for full mode. Negative values normalize to zero.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "draw": 1,
    "length": 25,
    "mode": "full",
    "order_dir": "desc",
    "order_idx": 1,
    "search": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/pgsql-processes?mode=full&draw=1&start=0&length=25&search=account&order_idx=1&order_dir=desc' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List PostgreSQL processes in full mode
{
  "path_parameters": {},
  "query_parameters": {
    "mode": "full",
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": "account",
    "order_idx": 1,
    "order_dir": "desc"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
data[]["pid","user","host","db","command","time","state","info","killable"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/pgsql-processesrootView active PostgreSQL connections and queries.

Who can use this

The server administrator (root).

Parameters (11)

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed in the full response.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 25
Example
25

Maximum number of process rows returned in full mode.

Validation and use: Minimum 1. Maximum 200. Default: 25. Needed when: optional when mode=full.

modeOptional
Send in
JSON body
Type
enum
Accepted values
simple, full
Example
full

Response shape. simple returns the complete authorized process list; full enables limited DataTables paging, search, and ordering.

Validation and use: Default: simple.

orderOptional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
[{"column":1,"dir":"desc"}]

DataTables order array. The first object controls sorting.

Validation and use: Needed when: optional alternative to order idx and order dir.

order[].columnOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2, 3, 4, 5, 6, 7
Example
0

DataTables sort column index from the same eight-column order_idx mapping.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Needed when: optional when order is supplied.

order[].dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

DataTables sort direction.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Needed when: optional when order is supplied.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
desc

Sort direction for full mode. Values other than asc normalize to desc.

Validation and use: Default: desc. Needed when: optional when mode=full.

order_idxOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2, 3, 4, 5, 6, 7
Example
1

Sort column index: pid, elapsed time, user, host, database, command, state, or query text.

Validation and use: Default: 1. Needed when: optional when mode=full.

searchOptional
Send in
JSON body
Type
string|object
Accepted values
Any value matching string|object
Example
{"value":"example"}

Case-insensitive search text or DataTables object containing search.value. Search input is limited to 128 characters.

Validation and use: Maximum length 128. Needed when: optional when mode=full.

search.valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

DataTables nested search text. Used when search is supplied as an object.

Validation and use: Optional Send this value at the documented nested JSON body path. Maximum length 128. Needed when: optional alternative to search.

startOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result offset for full mode. Negative values normalize to zero.

Validation and use: Minimum 0. Default: 0. Needed when: optional when mode=full.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "length": 25,
    "mode": "full",
    "order": [
      {
        "column": 1,
        "dir": "desc"
      }
    ],
    "order[].column": 0,
    "order[].dir": "asc",
    "order_dir": "desc",
    "order_idx": 1,
    "search": {
      "value": "example"
    },
    "search.value": "account",
    "start": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/pgsql-processes' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"mode":"full","draw":1,"start":0,"length":25,"search":{"value":"example"},"order_idx":1,"order_dir":"desc","order":[{"column":1,"dir":"desc"}]}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List PostgreSQL processes in full mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "full",
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": "example"
    },
    "order_idx": 1,
    "order_dir": "desc",
    "order": [
      {
        "column": 1,
        "dir": "desc"
      }
    ]
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/pgsql-processes/{id}rootStop a selected PostgreSQL connection.

Before you start

Stopping a connection can interrupt the application using it.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
positive integer
Accepted values
Any value matching positive integer
Example
4101

Exact process id from the corresponding list response where killable is true.

Validation and use: Required Replace this placeholder directly in the URL path. GET /v1/pgsql-processes

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 4101
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/pgsql-processes/4101' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Terminate one PostgreSQL process
{
  "path_parameters": {
    "id": 4101
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Reseller Packages

GET/v1/reseller-packagesrootView the plans available for reseller accounts.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/reseller-packages' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List reseller packages and current enforcement capabilities
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
messagestring
countinteger
packagesobject[]
runtime_capabilitiesobject{resource_limits:object,quota:object}

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/reseller-packagesrootCreate a plan for reseller accounts.

Before you start

Reseller plans use 0 for unlimited allowances. SHM rejects a limit that the server cannot enforce.

Who can use this

The server administrator (root).

Parameters (12)

packagenameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PACKAGENAME_FROM_LIST_RESPONSE

Package name. Package name (1–64 chars; letters, numbers, spaces, hyphens, and underscores).

Validation and use:

maxaccountsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max accounts for reseller.

Validation and use:

maxcpuOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max CPU for reseller.

Validation and use:

maxdiskspaceOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max diskspace (MB) for reseller.

Validation and use:

maxinodeslimitOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max inodes for reseller.

Validation and use:

maxiodiskbandwidthOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max IO bandwidth for reseller.

Validation and use:

maxiopslimitsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max IOPS for reseller.

Validation and use:

maxipsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Max dedicated IPs for reseller.

Validation and use:

maxmemoryOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max memory (MB) for reseller.

Validation and use:

maxprocessesOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max processes for reseller.

Validation and use:

permitshellaccessOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Allow shell access in reseller package. 1 to allow shell access for reseller accounts.

Validation and use:

permitunlimiteddiskspaceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Allow unlimited disk space in reseller package. 1 to allow unlimited disk space assignment by reseller.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "packagename": "PACKAGENAME_FROM_LIST_RESPONSE",
    "maxaccounts": -1,
    "maxcpu": -1,
    "maxdiskspace": -1,
    "maxinodeslimit": -1,
    "maxiodiskbandwidth": -1,
    "maxiopslimits": -1,
    "maxips": 1,
    "maxmemory": -1,
    "maxprocesses": -1,
    "permitshellaccess": 1,
    "permitunlimiteddiskspace": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/reseller-packages' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"packagename":"PACKAGENAME_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "packagename": "PACKAGENAME_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
messagestring
reseller_package_idinteger
packageobject
runtime_capabilitiesobject{resource_limits:object,quota:object}

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/reseller-packages/{id}rootDelete reseller package (if unused).

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
int
Accepted values
Any value matching int
Example
1

Exact resource identifier returned by the related list or context endpoint. Do not guess ids from table position.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/reseller-packages/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/reseller-packages/{id}rootView a reseller plan's account and resource allowances.

Who can use this

The server administrator (root).

Parameters (1)

idRequired
Send in
URL path
Type
int
Accepted values
Any value matching int
Example
1

Exact resource identifier returned by the related list or context endpoint. Do not guess ids from table position.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned id value.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": "1"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/reseller-packages/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read one reseller package and capability state
{
  "path_parameters": {
    "id": "1"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
messagestring
packageobject
runtime_capabilitiesobject{resource_limits:object,quota:object}

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/reseller-packages/{id}rootChange a reseller plan's account or resource allowances.

Before you start

Settings you leave out keep their current values. Reseller plans use 0 for unlimited allowances.

Who can use this

The server administrator (root).

Parameters (13)

idRequired
Send in
URL path
Type
int
Accepted values
Any value matching int
Example
1

Exact resource identifier returned by the related list or context endpoint. Do not guess ids from table position.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned id value.

maxaccountsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max accounts for reseller.

Validation and use:

maxcpuOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max CPU for reseller.

Validation and use:

maxdiskspaceOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max diskspace (MB) for reseller.

Validation and use:

maxinodeslimitOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max inodes for reseller.

Validation and use:

maxiodiskbandwidthOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max IO bandwidth for reseller.

Validation and use:

maxiopslimitsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max IOPS for reseller.

Validation and use:

maxipsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Max dedicated IPs for reseller.

Validation and use:

maxmemoryOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max memory (MB) for reseller.

Validation and use:

maxprocessesOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
-1

Max processes for reseller.

Validation and use:

packagenameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PACKAGENAME_FROM_LIST_RESPONSE

Package name. Package name (1–64 chars; letters, numbers, spaces, hyphens, and underscores).

Validation and use:

permitshellaccessOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Allow shell access in reseller package. 1 to allow shell access for reseller accounts.

Validation and use:

permitunlimiteddiskspaceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Allow unlimited disk space in reseller package. 1 to allow unlimited disk space assignment by reseller.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {
    "maxaccounts": -1,
    "maxcpu": -1,
    "maxdiskspace": -1,
    "maxinodeslimit": -1,
    "maxiodiskbandwidth": -1,
    "maxiopslimits": -1,
    "maxips": 1,
    "maxmemory": -1,
    "maxprocesses": -1,
    "packagename": "PACKAGENAME_FROM_LIST_RESPONSE",
    "permitshellaccess": 1,
    "permitunlimiteddiskspace": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/reseller-packages/1' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"packagename":"PACKAGENAME_FROM_LIST_RESPONSE","permitshellaccess":1,"permitunlimiteddiskspace":1,"maxaccounts":-1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {
    "packagename": "PACKAGENAME_FROM_LIST_RESPONSE",
    "permitshellaccess": 1,
    "permitunlimiteddiskspace": 1,
    "maxaccounts": -1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
messagestring
reseller_package_idinteger
packageobject
runtime_capabilitiesobject{resource_limits:object,quota:object}

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Resellers

GET/v1/root/resellersrootList reseller assignments.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/resellers' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/resellersrootCreate reseller assignment.

Who can use this

The server administrator (root).

Parameters (5)

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Account username.

Validation and use:

package_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: GET /v1/reseller-packages

selectaccountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTACCOUNT_FROM_LIST_RESPONSE

Validation and use:

selectedIPsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
SELECTEDIPS_FROM_LIST_RESPONSE

Validation and use:

selectpackageOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SELECTPACKAGE_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "package_id": 1,
    "selectaccount": "SELECTACCOUNT_FROM_LIST_RESPONSE",
    "selectedIPs": "SELECTEDIPS_FROM_LIST_RESPONSE",
    "selectpackage": "SELECTPACKAGE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/resellers' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"selectaccount":"SELECTACCOUNT_FROM_LIST_RESPONSE","account_user":"demo","selectpackage":"SELECTPACKAGE_FROM_LIST_RESPONSE","package_id":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "selectaccount": "SELECTACCOUNT_FROM_LIST_RESPONSE",
    "account_user": "demo",
    "selectpackage": "SELECTPACKAGE_FROM_LIST_RESPONSE",
    "package_id": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/resellers/{username}rootDelete reseller assignment.

Who can use this

The server administrator (root).

Parameters (3)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Account username.

Validation and use:

idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Resource ID.

Validation and use: GET /v1/root/resellers

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/resellers/demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"id":1,"account_user":"demo"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "id": 1,
    "account_user": "demo"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/resellers/{username}rootUpdate reseller assignment.

Who can use this

The server administrator (root).

Parameters (6)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account username. Root may target any authorized account, a reseller only an owned account, and a user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

account_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Account username.

Validation and use:

idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Resource ID.

Validation and use: GET /v1/root/resellers

ipsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
IPS_FROM_LIST_RESPONSE

Validation and use:

packageOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PACKAGE_FROM_LIST_RESPONSE

Validation and use:

package_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Validation and use: GET /v1/reseller-packages

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "id": 1,
    "ips": "IPS_FROM_LIST_RESPONSE",
    "package": "PACKAGE_FROM_LIST_RESPONSE",
    "package_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/resellers/demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"id":1,"account_user":"demo","package":"PACKAGE_FROM_LIST_RESPONSE","package_id":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "id": 1,
    "account_user": "demo",
    "package": "PACKAGE_FROM_LIST_RESPONSE",
    "package_id": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Resource Usage

GET/v1/root/live-overview-globalrootView the server live process overview.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/live-overview-global' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/resource-usage/historyrootReview CPU, memory and other resource use over time.

Who can use this

The server administrator (root).

Parameters (4)

resourceRequired
Send in
Query string
Type
enum
Accepted values
cpu, memory, processes, disk, innodes
Example
cpu

Resource metric to read.

Validation and use:

compactOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Legacy boolean alias for format=compact.

Validation and use:

formatOptional
Send in
Query string
Type
enum
Accepted values
object, compact
Example
object

object returns {x,y} points; compact returns [timestamp,value] points.

Validation and use: Default: object.

timeRangeOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 60
Example
60

Minutes to look back.

Validation and use: Minimum 1. Maximum 10080. Default: 60.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "resource": "cpu",
    "compact": 1,
    "format": "object",
    "timeRange": 60
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/resource-usage/history?resource=cpu&format=object&timeRange=60' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read one hour of global CPU history
{
  "path_parameters": {},
  "query_parameters": {
    "resource": "cpu",
    "format": "object",
    "timeRange": 60
  },
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/resource-usage/historyrootReview CPU, memory and other resource use over time.

Who can use this

The server administrator (root).

Parameters (4)

resourceRequired
Send in
JSON body
Type
enum
Accepted values
cpu, memory, processes, disk, innodes
Example
cpu

Resource metric to read.

Validation and use:

compactOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Legacy boolean alias for format=compact.

Validation and use:

formatOptional
Send in
JSON body
Type
enum
Accepted values
object, compact
Example
object

object returns {x,y} points; compact returns [timestamp,value] points.

Validation and use: Default: object.

timeRangeOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 60
Example
60

Minutes to look back.

Validation and use: Minimum 1. Maximum 10080. Default: 60.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "resource": "cpu",
    "compact": 1,
    "format": "object",
    "timeRange": 60
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/resource-usage/history' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"resource":"cpu","format":"object","timeRange":60}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read one hour of global CPU history
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "resource": "cpu",
    "format": "object",
    "timeRange": 60
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/resource-usage/snapshotrootSee which processes were running at the selected time.

Who can use this

The server administrator (root).

Parameters (4)

resourceRequired
Send in
Query string
Type
enum
Accepted values
cpu, memory, processes
Example
cpu

Resource metric represented by the selected history point.

Validation and use:

tsRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
2026-01-01T12:00:00Z

Preferred timestamp field, parseable by PHP DateTime. Copy the x value from an object-format history point; ISO-8601 is recommended. The timestamp alias may be used instead.

Validation and use: GET /v1/root/resource-usage/history

limitOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 200
Example
200

Maximum process rows returned.

Validation and use: Minimum 10. Maximum 500. Default: 200.

timestampOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
60

Compatibility alias for ts. Copy the x value from an object-format history point.

Validation and use: GET /v1/root/resource-usage/history Needed when: optional alias of ts.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "resource": "cpu",
    "ts": "2026-01-01T12:00:00Z",
    "limit": 200,
    "timestamp": 60
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/resource-usage/snapshot?resource=cpu&ts=2026-01-01T12%3A00%3A00Z&limit=200' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read the snapshot for a retained CPU point
{
  "path_parameters": {},
  "query_parameters": {
    "resource": "cpu",
    "ts": "2026-01-01T12:00:00Z",
    "limit": 200
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/resource-usage/snapshotrootSee which processes were running at the selected time.

Who can use this

The server administrator (root).

Parameters (4)

resourceRequired
Send in
JSON body
Type
enum
Accepted values
cpu, memory, processes
Example
cpu

Resource metric represented by the selected history point.

Validation and use:

tsRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
2026-01-01T12:00:00Z

Preferred timestamp field, parseable by PHP DateTime. Copy the x value from an object-format history point; ISO-8601 is recommended. The timestamp alias may be used instead.

Validation and use: GET /v1/root/resource-usage/history

limitOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 200
Example
200

Maximum process rows returned.

Validation and use: Minimum 10. Maximum 500. Default: 200.

timestampOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
60

Compatibility alias for ts. Copy the x value from an object-format history point.

Validation and use: GET /v1/root/resource-usage/history Needed when: optional alias of ts.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "resource": "cpu",
    "ts": "2026-01-01T12:00:00Z",
    "limit": 200,
    "timestamp": 60
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/resource-usage/snapshot' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"resource":"cpu","ts":"2026-01-01T12:00:00Z","limit":200}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read the snapshot for a retained CPU point
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "resource": "cpu",
    "ts": "2026-01-01T12:00:00Z",
    "limit": 200
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Security

DELETE/v1/root/security/ip-accessrootDelete a server IP access entry.

Who can use this

The server administrator (root).

Parameters (2)

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

ipaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ip": "203.0.113.10",
    "ipaddress": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/security/ip-access' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","ip":"203.0.113.10"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/security/ip-accessrootList server IP access entries.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/security/ip-access' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/security/ip-accessrootCreate a server IP access entry.

Who can use this

The server administrator (root).

Parameters (3)

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Validation and use:

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

ipaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "ip": "203.0.113.10",
    "ipaddress": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/security/ip-access' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","ip":"203.0.113.10","comment":"COMMENT_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10",
    "comment": "COMMENT_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/security/passwordrootUpdate the server password.

Who can use this

The server administrator (root).

Parameters (4)

confirm_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Password confirmation.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Password value.

Validation and use:

root_password1Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Validation and use:

root_password2Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "confirm_password": "STRONG_PASSWORD",
    "password": "STRONG_PASSWORD",
    "root_password1": "STRONG_PASSWORD",
    "root_password2": "STRONG_PASSWORD"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/security/password' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"root_password1":"STRONG_PASSWORD","password":"STRONG_PASSWORD","root_password2":"STRONG_PASSWORD","confirm_password":"STRONG_PASSWORD"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "root_password1": "STRONG_PASSWORD",
    "password": "STRONG_PASSWORD",
    "root_password2": "STRONG_PASSWORD",
    "confirm_password": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/security/settingsrootView server security settings.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/security/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/security/ssh-portrootUpdate the server SSH port.

Who can use this

The server administrator (root).

Parameters (1)

sshportOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "sshport": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/security/ssh-port' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"sshport":1}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "sshport": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/root/security/ssh/allow-usersrootDelete an SSH AllowUsers entry.

Who can use this

The server administrator (root).

Parameters (2)

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

userpatternOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
USERPATTERN_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "user": "demo",
    "userpattern": "USERPATTERN_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/security/ssh/allow-users' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"userpattern":"USERPATTERN_FROM_LIST_RESPONSE","user":"demo"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "userpattern": "USERPATTERN_FROM_LIST_RESPONSE",
    "user": "demo"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/security/ssh/allow-usersrootList SSH AllowUsers entries.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/security/ssh/allow-users' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/security/ssh/allow-usersrootCreate an SSH AllowUsers entry.

Who can use this

The server administrator (root).

Parameters (3)

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Validation and use:

userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Validation and use:

userpatternOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
USERPATTERN_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "user": "demo",
    "userpattern": "USERPATTERN_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/security/ssh/allow-users' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"userpattern":"USERPATTERN_FROM_LIST_RESPONSE","user":"demo","comment":"COMMENT_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "userpattern": "USERPATTERN_FROM_LIST_RESPONSE",
    "user": "demo",
    "comment": "COMMENT_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/security/twofarootUpdate server two-factor settings.

Who can use this

The server administrator (root).

Parameters (3)

codeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
123456

Validation and use:

twofacodeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
123456

Two-factor authentication code.

Validation and use:

twofasecretOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Two-factor secret.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "code": "123456",
    "twofacode": "123456",
    "twofasecret": "STRONG_PASSWORD"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/security/twofa' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"twofacode":"123456","code":"123456","twofasecret":"STRONG_PASSWORD"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "twofacode": "123456",
    "code": "123456",
    "twofasecret": "STRONG_PASSWORD"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Server

GET/v1/root/apache/statusrootSee Apache's current activity and request handling.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/apache/status' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/server/audit-logsrootUpdate audit log retention.

Who can use this

The server administrator (root).

Parameters (3)

auditLogRetentionDaysOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 30
Example
30

Number of days to retain SHM audit records. This is the preferred field name.

Validation and use: Minimum 1. Maximum 3650. Default: 30.

audit_log_retention_daysOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 30
Example
30

Snake-case alias for auditLogRetentionDays.

Validation and use: Minimum 1. Maximum 3650. Default: 30.

retentionDaysOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string; default: 30
Example
30

Compatibility alias for auditLogRetentionDays.

Validation and use: Minimum 1. Maximum 3650. Default: 30.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "auditLogRetentionDays": 30,
    "audit_log_retention_days": 30,
    "retentionDays": 30
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/server/audit-logs' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"auditLogRetentionDays":30}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Keep SHM audit records for 30 days
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "auditLogRetentionDays": 30
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/server/hostnamerootUpdate the server hostname.

Who can use this

The server administrator (root).

Parameters (1)

hostnameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HOSTNAME_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "hostname": "HOSTNAME_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/server/hostname' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"hostname":"HOSTNAME_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "hostname": "HOSTNAME_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/server/informationrootView server information.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/server/information' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/server/journaldrootChange how long system logs are kept and how much space they may use.

Who can use this

The server administrator (root).

Parameters (4)

journald_retentionTimeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
60

Validation and use:

journald_storageLimitOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
JOURNALD_STORAGELIMIT_FROM_LIST_RESPONSE

Validation and use:

retentionTimeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
60

Validation and use:

storageLimitOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STORAGELIMIT_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "journald_retentionTime": 60,
    "journald_storageLimit": "JOURNALD_STORAGELIMIT_FROM_LIST_RESPONSE",
    "retentionTime": 60,
    "storageLimit": "STORAGELIMIT_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/server/journald' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"storageLimit":"STORAGELIMIT_FROM_LIST_RESPONSE","journald_storageLimit":"JOURNALD_STORAGELIMIT_FROM_LIST_RESPONSE","retentionTime":60,"journald_retentionTime":60}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "storageLimit": "STORAGELIMIT_FROM_LIST_RESPONSE",
    "journald_storageLimit": "JOURNALD_STORAGELIMIT_FROM_LIST_RESPONSE",
    "retentionTime": 60,
    "journald_retentionTime": 60
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/server/network/interfacesrootList server network interfaces.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/server/network/interfaces' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
DELETE/v1/root/server/network/ip-addressesrootDelete a server IPv4 address from a network connection.

Who can use this

The server administrator (root).

Parameters (3)

interfaceOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
INTERFACE_FROM_LIST_RESPONSE

Validation and use:

ipaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

prefixOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PREFIX_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "interface": "INTERFACE_FROM_LIST_RESPONSE",
    "ipaddress": "203.0.113.10",
    "prefix": "PREFIX_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/root/server/network/ip-addresses' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","prefix":"PREFIX_FROM_LIST_RESPONSE","interface":"INTERFACE_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "prefix": "PREFIX_FROM_LIST_RESPONSE",
    "interface": "INTERFACE_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/server/network/ip-addressesrootList server IPv4 addresses.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/server/network/ip-addresses' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List server IPv4 addresses
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/server/network/ip-addressesrootAdd a server IPv4 address to a network connection.

Who can use this

The server administrator (root).

Parameters (3)

interfaceOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
INTERFACE_FROM_LIST_RESPONSE

Validation and use:

ipaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address.

Validation and use:

prefixOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PREFIX_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "interface": "INTERFACE_FROM_LIST_RESPONSE",
    "ipaddress": "203.0.113.10",
    "prefix": "PREFIX_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/server/network/ip-addresses' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","prefix":"PREFIX_FROM_LIST_RESPONSE","interface":"INTERFACE_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "prefix": "PREFIX_FROM_LIST_RESPONSE",
    "interface": "INTERFACE_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/server/oomrootAdjust the server's response when it runs out of memory.

Who can use this

The server administrator (root).

Parameters (12)

oomKillAllocatingTaskOptional
Send in
JSON body
Type
enum
Accepted values
0, 1
Example
0

Oom Kill Allocating Task request field. Allowed values: 0, 1.

Validation and use:

oom_kill_allocating_taskOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OOM_KILL_ALLOCATING_TASK_FROM_LIST_RESPONSE

Validation and use:

oom_overcommit_memoryOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OOM_OVERCOMMIT_MEMORY_FROM_LIST_RESPONSE

Validation and use:

oom_overcommit_ratioOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OOM_OVERCOMMIT_RATIO_FROM_LIST_RESPONSE

Validation and use:

oom_panic_on_oomOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OOM_PANIC_ON_OOM_FROM_LIST_RESPONSE

Validation and use:

oom_process_exclusionsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
OOM_PROCESS_EXCLUSIONS_FROM_LIST_RESPONSE

Validation and use:

oom_service_exclusionsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
OOM_SERVICE_EXCLUSIONS_FROM_LIST_RESPONSE

Validation and use:

overcommitMemoryOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2
Example
0

Overcommit Memory request field. Allowed values: 0, 1, 2.

Validation and use:

overcommitRatioOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OVERCOMMITRATIO_FROM_LIST_RESPONSE

Validation and use:

panicOnOomOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2
Example
0

Panic On Oom request field. Allowed values: 0, 1, 2.

Validation and use:

processExclusionsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
PROCESSEXCLUSIONS_FROM_LIST_RESPONSE

Validation and use:

serviceExclusionsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
SERVICEEXCLUSIONS_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "oomKillAllocatingTask": 0,
    "oom_kill_allocating_task": "OOM_KILL_ALLOCATING_TASK_FROM_LIST_RESPONSE",
    "oom_overcommit_memory": "OOM_OVERCOMMIT_MEMORY_FROM_LIST_RESPONSE",
    "oom_overcommit_ratio": "OOM_OVERCOMMIT_RATIO_FROM_LIST_RESPONSE",
    "oom_panic_on_oom": "OOM_PANIC_ON_OOM_FROM_LIST_RESPONSE",
    "oom_process_exclusions": "OOM_PROCESS_EXCLUSIONS_FROM_LIST_RESPONSE",
    "oom_service_exclusions": "OOM_SERVICE_EXCLUSIONS_FROM_LIST_RESPONSE",
    "overcommitMemory": 0,
    "overcommitRatio": "OVERCOMMITRATIO_FROM_LIST_RESPONSE",
    "panicOnOom": 0,
    "processExclusions": "PROCESSEXCLUSIONS_FROM_LIST_RESPONSE",
    "serviceExclusions": "SERVICEEXCLUSIONS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/server/oom' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"overcommitMemory":0,"oom_overcommit_memory":"OOM_OVERCOMMIT_MEMORY_FROM_LIST_RESPONSE","overcommitRatio":"OVERCOMMITRATIO_FROM_LIST_RESPONSE","oom_overcommit_ratio":"OOM_OVERCOMMIT_RATIO_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "overcommitMemory": 0,
    "oom_overcommit_memory": "OOM_OVERCOMMIT_MEMORY_FROM_LIST_RESPONSE",
    "overcommitRatio": "OVERCOMMITRATIO_FROM_LIST_RESPONSE",
    "oom_overcommit_ratio": "OOM_OVERCOMMIT_RATIO_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/server/resolverrootUpdate DNS resolver settings.

Who can use this

The server administrator (root).

Parameters (5)

resolv_dnssearchOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Validation and use:

resolv_nameserver1Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RESOLV_NAMESERVER1_FROM_LIST_RESPONSE

Validation and use:

resolv_nameserver2Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RESOLV_NAMESERVER2_FROM_LIST_RESPONSE

Validation and use:

resolv_nameserver3Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RESOLV_NAMESERVER3_FROM_LIST_RESPONSE

Validation and use:

resolv_nameserver4Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RESOLV_NAMESERVER4_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "resolv_dnssearch": "account",
    "resolv_nameserver1": "RESOLV_NAMESERVER1_FROM_LIST_RESPONSE",
    "resolv_nameserver2": "RESOLV_NAMESERVER2_FROM_LIST_RESPONSE",
    "resolv_nameserver3": "RESOLV_NAMESERVER3_FROM_LIST_RESPONSE",
    "resolv_nameserver4": "RESOLV_NAMESERVER4_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/server/resolver' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"resolv_dnssearch":"account","resolv_nameserver1":"RESOLV_NAMESERVER1_FROM_LIST_RESPONSE","resolv_nameserver2":"RESOLV_NAMESERVER2_FROM_LIST_RESPONSE","resolv_nameserver3":"RESOLV_NAMESERVER3_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "resolv_dnssearch": "account",
    "resolv_nameserver1": "RESOLV_NAMESERVER1_FROM_LIST_RESPONSE",
    "resolv_nameserver2": "RESOLV_NAMESERVER2_FROM_LIST_RESPONSE",
    "resolv_nameserver3": "RESOLV_NAMESERVER3_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/server/settingsrootView your server's general settings and available choices.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/server/settings' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/server/timezonerootUpdate the server timezone.

Who can use this

The server administrator (root).

Parameters (1)

timezoneOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UTC

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "timezone": "UTC"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/server/timezone' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"timezone":"UTC"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "timezone": "UTC"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/system-hardeningrootReview the server's saved protection settings and their current status.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/system-hardening' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
PATCH/v1/root/system-hardeningrootSave system hardening policy.

Who can use this

The server administrator (root).

Parameters (14)

hardenPtraceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

hardenTempMountsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ptraceEnabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ptracePersistOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ptraceScopeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PTRACESCOPE_FROM_LIST_RESPONSE

Validation and use:

ptrace_apply_on_bootOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ptrace_enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ptrace_persistOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

ptrace_scopeOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, 2
Example
0

Ptrace scope request field. Allowed values: 0, 1, 2.

Validation and use:

tempMountsEnabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

tempMountsPersistOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

temp_mounts_apply_on_bootOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

temp_mounts_enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

temp_mounts_persistOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "hardenPtrace": 1,
    "hardenTempMounts": 1,
    "ptraceEnabled": 1,
    "ptracePersist": 1,
    "ptraceScope": "PTRACESCOPE_FROM_LIST_RESPONSE",
    "ptrace_apply_on_boot": 1,
    "ptrace_enabled": 1,
    "ptrace_persist": 1,
    "ptrace_scope": 0,
    "tempMountsEnabled": 1,
    "tempMountsPersist": 1,
    "temp_mounts_apply_on_boot": 1,
    "temp_mounts_enabled": 1,
    "temp_mounts_persist": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/system-hardening' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ptrace_scope":0,"ptraceScope":"PTRACESCOPE_FROM_LIST_RESPONSE","ptrace_enabled":1,"ptraceEnabled":1}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ptrace_scope": 0,
    "ptraceScope": "PTRACESCOPE_FROM_LIST_RESPONSE",
    "ptrace_enabled": 1,
    "ptraceEnabled": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/system-hardening/actions/{action}rootApply or check an available operating-system protection.

Who can use this

The server administrator (root).

Parameters (1)

actionRequired
Send in
URL path
Type
enum
Accepted values
status, check, recheck, repair, apply, apply-runtime, apply-persistent, apply-boot, revert, revert-runtime
Example
status

Action path parameter. Allowed values: status, check, recheck, repair, apply, apply-runtime, apply-persistent, apply-boot, revert, revert-runtime.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "action": "status"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/system-hardening/actions/status' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "action": "status"
  },
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Services

GET/v1/root/services/configrootView the software selected for your server.

Before you start

A saved selection does not mean installation has finished. Check Services Status to see what is actually running.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/services/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Read current Services plan
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
messagestring
servicesobject
detectedobject
nodejs_installed_versionsstring[]
mariadb_allowed_versionsstring[]
mariadb_installed_fullstring
mariadb_installed_mmstring
postgresql_allowed_versionsstring[]
postgresql_default_versionstring
postgresql_installed_majorstring
postgresql_installed_fullstring
postgresql_data_dirstring
postgresql_legacyboolean
runtime_capabilitiesobject{state:string,container_kind:string,cgroup_version:string,systemd_pid1:boolean,systemd_user_manager:boolean,platform:object{environment:string,virtualization:string,display_name:string,kernel:string},cgroup:object{version:string,state:string,controllers:string[],supported_fields:string[],missing_controllers:string[]},systemd:object{pid1:boolean,user_manager:boolean},jailshell_base:object{available:boolean,reason:string},podman:object{mode:string,available:boolean,installed:boolean,reason:string},resource_limits:object{state:string,available:boolean,reason:string,cgroup_version:string,systemd_pid1:boolean,supported_fields:string[],missing_controllers:string[],controllers:string[],fields:object},quota:object{mode:string,storage_path:string,available:boolean,reason:string,fields:object},capabilities:object{core:object,jailshell:object,podman:object,resource_limits:object,quota:object}}
services_operationobject{operation_id:string,progress_task:string,status:string,active:boolean,acknowledged:boolean,title:string,message:string,created_at:string,started_at:string,completed_at:string,worker_launch_mode:string,worker_unit:string}|null

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
POST/v1/root/services/configrootInstall or update the software selected in Services.

Before you start

Review any request to replace existing software before confirming. If SHM asks for manual review, resolve that issue first. For a background job, keep its operation ID and follow its progress until it finishes; check Services Status afterwards.

Who can use this

The server administrator (root).

Parameters (38)

apache_modulesOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["httpd-tools","mod_ssl","mod_http2","mod_security"]

Apache module package list. HTML form sends apache_modules[]. SHM filters out and does not persist mod_lua, mod_perl, mod_perl-devel, mod_log_post, mod_security_crs, or mod_security-mlogc. proxy_fcgi is provided by httpd-core for PHP-FPM. Required custom plans include httpd-tools, mod_ssl, mod_http2, and mod_security when the Apache WAF is enabled. SHM filters out and does not persist mod_lua, mod_perl, mod_perl-devel, mod_log_post, mod_fcgid, mod_markdown, mod_speedycgi, mod_wsgi, python3-mod_wsgi, mod_security_crs, or mod_security-mlogc. The proxy_fcgi module is provided by httpd-core and remains available for every per-domain PHP-FPM handler.

Validation and use:

apache_mpmOptional
Send in
JSON body
Type
enum
Accepted values
event, worker, prefork
Example
event

Apache MPM when webserver=apache: event|worker|prefork. Apache MPM when webserver=apache or when Apache is part of the saved plan. Allowed values: event, worker, prefork.

Validation and use:

apply_defaultsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Alias of use_defaults.

Validation and use:

background_operationOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Opt into a server-owned background operation. SHM returns operation_id/progress_task immediately, reuses an already pending or running Services operation, and continues after the API client disconnects. Omit or set false to retain synchronous behavior. Create or reuse one server-owned Services operation that survives API disconnect, page close, refresh, and a new tab. Omit or set false only when synchronous compatibility is required.

Validation and use:

database_checkedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the database section.

Validation and use:

database_mariadbOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable MariaDB.

Validation and use:

database_postgresqlOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable PostgreSQL as a separate database engine.

Validation and use:

database_versionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
10.11

MariaDB version, for example 10.11 or 11.4. MariaDB target version, for example 10.11 or 11.4.

Validation and use:

dnsserver_checkedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the DNS section.

Validation and use:

exim_dovecotOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the Exim + Dovecot mail stack. Enable Exim + Dovecot.

Validation and use:

filetransfer_checkedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the file-transfer section.

Validation and use:

force_reinstallOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
on

Force reinstall/reapply for selected components even if already detected. Force reapply/reinstall for selected components.

Validation and use:

ftpOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable Pure-FTPd.

Validation and use:

mailserver_checkedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the mail section.

Validation and use:

nodejs_modulesOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["pm2","yarn","pnpm"]

Node.js tool list, for example pm2, yarn, pnpm. HTML form sends nodejs_modules[]. pm2 is mandatory and SHM adds it when omitted; default-ready installs use the union of existing tools plus pm2, yarn, pnpm. Node.js tools to install. pm2 is mandatory; default tools are pm2, yarn, pnpm.

Validation and use:

nodejsversionOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["20","22","24","26"]

Node.js majors to install, for example 20, 22, 24, 26. HTML form sends nodejsversion[]. Default-ready installs use majors 22, 24, and 26 and preserve saved released even Node.js compatibility selections, including EOL lines. Node.js majors to install. Default expansion uses majors 22, 24, and 26 and preserves saved released even Node.js compatibility selections, including EOL lines.

Validation and use:

operation_actionOptional
Send in
JSON body
Type
enum
Accepted values
status, acknowledge
Example
status

Operation action request field. Allowed values: status, acknowledge. Allowed values: status or acknowledge. status returns the authoritative operation summary and safely finalizes a stale worker after the launch grace period. acknowledge is valid only after a terminal result has been presented; it marks that result as seen and never cancels an active worker. Requires operation_id and must not be combined with Services plan fields. status returns authoritative liveness and safely finalizes a stale worker after the launch grace period. acknowledge is valid only after presenting a terminal result. Do not combine either action with Services plan fields.

Validation and use: Needed when: optional; required only for operation status or acknowledgement.

operation_idOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
servicesop_0123456789abcdef01234567

Server-issued Services operation id matching servicesop_[a-f0-9]{24}. Required when operation_action=status or acknowledge; never invent an id. Exact server-issued Services operation id returned by a background start or GET /v1/root/services/config. Never invent it.

Validation and use: Minimum length 35. Maximum length 35. Pattern: ^servicesop_[a-f0-9]{24}$. Needed when: optional; required when operation action is status or acknowledge.

pdns_serverOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable PowerDNS.

Validation and use:

pgadminOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable the pgAdmin PostgreSQL administration UI. Requires PostgreSQL and runs as pgadmin UID/GID 886. Requires PostgreSQL.

Validation and use:

php_modulesOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["runtime","php-common","php-fpm","php-cli","php-opcache"]

PHP package/extension list. Default-ready/all-services installs use every PHP module exposed by Server > Services: runtime, php-common, php-fpm, php-cli, php-opcache, php-devel, pear, php-phpdbg, php-bz2, php-calendar, php-curl, php-dba, php-exif, php-fileinfo, php-ftp, php-gd, php-gmp, php-imagick, php-imap, php-intl, php-ldap, php-mbstring, php-mcrypt, php-mysqli, php-mysql, php-odbc, php-pdo_mysql, php-pdo_pgsql, php-pdo_sqlite, php-pdo_sqlsrv, php-pgsql, php-pspell, php-soap, php-sockets, php-sodium, php-sqlite3, php-sqlsrv, php-tidy, php-xsl, php-xmlrpc, php-wddx, php-yaml, php-zip, php-brotli, php-enchant, php-bcmath, php-redis, php-ioncube. SQL Server modules are installed only for PHP 7.0 through PHP 8.5. HTML form sends php_modules[]. PHP modules to install. Default/all Services plans use every PHP module exposed by Server > Services; php-pdo_sqlsrv and php-sqlsrv are installed only for PHP 7.0 through PHP 8.5.

Validation and use:

phpmyadminOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable phpMyAdmin. Requires MariaDB.

Validation and use:

phpversionsOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["php84"]

PHP major runtime list. Default-ready/all-services installs use every available SHM PHP runtime: php56, php70, php71, php72, php73, php74, php80, php81, php82, php83, php84, php85. HTML form sends phpversions[]. PHP runtimes to install. All available SHM runtimes are php56, php70, php71, php72, php73, php74, php80, php81, php82, php83, php84, php85.

Validation and use:

postgresql_versionOptional
Send in
JSON body
Type
enum
Accepted values
16, 17, 18
Example
17

PostgreSQL server major version: 16, 17, or 18. SHM manages one active major per server; selecting a higher supported major runs a supported pg_upgrade copy-mode upgrade, while downgrades and legacy/non-SHM clusters are blocked. PostgreSQL server major. SHM manages one active PostgreSQL major per server; selecting a higher supported major runs a supported pg_upgrade copy-mode upgrade, while downgrades and legacy/non-SHM clusters are blocked. PostgreSQL installs include the matching PGDG pg_repack_<major> package and expose /usr/local/bin/pg_repack for the selected major.

Validation and use:

preserve_unavailable_podmanOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Preserve an already-saved Podman selection when the current runtime capability is unavailable, allowing unrelated Services changes to continue without touching Podman. This field cannot enable Podman from an unselected state. Preserve an already-saved Podman selection while its runtime capability is unavailable, allowing unrelated Services changes without touching Podman. It cannot enable Podman from an unselected state.

Validation and use:

presetOptional
Send in
JSON body
Type
enum
Accepted values
default
Example
default

Set to default to apply the backend-owned default Services plan.

Validation and use:

progress_taskOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
services_install_root_0123456789abcdef0123456789abcdef

Optional root-only Services progress id in the form services_install_root_<32 hexadecimal characters>. When supplied, SHM writes live Services apply progress to GET /v1/progress/{task}. When supplied, poll GET /v1/progress/{task} to show live Services apply progress.

Validation and use:

replace_allOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Replace the whole saved Services plan. Omit or set off to keep unspecified fields unchanged. Omit or set off to preserve unspecified fields.

Validation and use:

replacement_confirmationOptional
Send in
JSON body
Type
string|64-character lowercase hex string
Accepted values
Any value matching string|64-character lowercase hex string
Example
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Opaque 64-character server-issued confirmation returned by a preceding status=confirmation_required response. It expires after 600 seconds, is single-use, and is bound to the authenticated root caller, semantic request, requested service actions, and fresh server inventory. Never invent or reuse it for another request. Copy replacement_confirmation.value from the immediately preceding response and repeat the same semantic request after explicit user approval. Expires after 600 seconds, is single-use, and becomes stale if caller, plan, actions, or inventory changes.

Validation and use: Needed when: optional; required only after confirmation required.

roundcubeOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable Roundcube webmail.

Validation and use:

scripting_nodejsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable Node.js runtimes. Default-ready installs should enable this and use default Node.js majors 22, 24, and 26; Node.js 20 remains selectable/installable as an End of life compatibility runtime.

Validation and use:

scripting_phpOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
on

Enable PHP runtimes.

Validation and use:

scripting_podmanOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable Podman. SHM installs podman, podman-docker, and podman-compose. An explicit enable request is rejected before change when the runtime capability is unavailable.

Validation and use:

sftpOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable SFTP.

Validation and use:

use_defaultsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Apply the recommended Services setup. Unavailable optional Podman state is left unchanged so independent services can continue. Choose this when you want the recommended server setup. Alias: apply_defaults.

Validation and use:

webscripting_checkedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
on

Enable the runtime section. Enable the web scripting/runtime section for a custom Services plan.

Validation and use:

webserverOptional
Send in
JSON body
Type
enum
Accepted values
apache, nginx, nginxapache
Example
apache

Selected web stack: apache|nginx|nginxapache. Selected web stack for a custom plan. Use nginxapache for NGINX + Apache.

Validation and use:

webserver_checkedOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
on

Enable the web-server section. Enable the web-server section for a custom Services plan.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "apache_modules": [
      "httpd-tools",
      "mod_ssl",
      "mod_http2",
      "mod_security"
    ],
    "apache_mpm": "event",
    "apply_defaults": true,
    "background_operation": true,
    "database_checked": 1,
    "database_mariadb": 1,
    "database_postgresql": 1,
    "database_version": "10.11",
    "dnsserver_checked": 1,
    "exim_dovecot": 1,
    "filetransfer_checked": 1,
    "force_reinstall": "on",
    "ftp": 1,
    "mailserver_checked": 1,
    "nodejs_modules": [
      "pm2",
      "yarn",
      "pnpm"
    ],
    "nodejsversion": [
      "20",
      "22",
      "24",
      "26"
    ],
    "operation_action": "status",
    "operation_id": "servicesop_0123456789abcdef01234567",
    "pdns_server": 1,
    "pgadmin": 1,
    "php_modules": [
      "runtime",
      "php-common",
      "php-fpm",
      "php-cli",
      "php-opcache"
    ],
    "phpmyadmin": 1,
    "phpversions": [
      "php84"
    ],
    "postgresql_version": "17",
    "preserve_unavailable_podman": 1,
    "preset": "default",
    "progress_task": "services_install_root_0123456789abcdef0123456789abcdef",
    "replace_all": true,
    "replacement_confirmation": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "roundcube": 1,
    "scripting_nodejs": 1,
    "scripting_php": "on",
    "scripting_podman": 1,
    "sftp": 1,
    "use_defaults": true,
    "webscripting_checked": "on",
    "webserver": "apache",
    "webserver_checked": "on"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/services/config' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"use_defaults":true,"preset":"default","background_operation":true}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Apply the standard hosting stack
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "use_defaults": true,
    "preset": "default",
    "background_operation": true
  }
}
Read authoritative background operation status
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "operation_action": "status",
    "operation_id": "servicesop_0123456789abcdef01234567"
  }
}

Requires a documented runtime value before QA can execute this request.

Acknowledge a presented terminal result
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "operation_action": "acknowledge",
    "operation_id": "servicesop_0123456789abcdef01234567"
  }
}

Requires a documented runtime value before QA can execute this request.

Reapply selected services
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "webserver_checked": "on",
    "webserver": "apache",
    "apache_mpm": "event",
    "apache_modules": [
      "httpd-tools",
      "mod_ssl",
      "mod_http2",
      "mod_security"
    ],
    "webscripting_checked": "on",
    "scripting_php": "on",
    "phpversions": [
      "php84"
    ],
    "php_modules": [
      "runtime",
      "php-common",
      "php-fpm",
      "php-cli",
      "php-opcache"
    ],
    "force_reinstall": "on"
  }
}
Retry an approved unchanged Services plan
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "use_defaults": true,
    "preset": "default",
    "replacement_confirmation": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
titlestring
messagestring
replacement_confirmationobject{value:string,expires_in_seconds:integer,single_use:boolean}|null
servicesobject[]{service:string,label:string,action:string,installed_software:object[]{name:string,version:string},packages:string[],binaries:string[],units:string[],configuration_to_backup:string[],configuration_to_replace:string[],protected_paths:string[],warnings:string[]}
operation_idstring|null
progress_taskstring|null
job_statusstring|null
startedboolean|null
reusedboolean|null
operationobject{operation_id:string,progress_task:string,status:string,active:boolean,acknowledged:boolean,title:string,message:string,created_at:string,started_at:string,completed_at:string,worker_launch_mode:string,worker_unit:string}|null
services_operationobject{operation_id:string,progress_task:string,status:string,active:boolean,acknowledged:boolean,title:string,message:string,created_at:string,started_at:string,completed_at:string,worker_launch_mode:string,worker_unit:string}|null

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/services/installers/{service}rootInstall or repair one selected hosting service.

Before you start

Use the Services configuration action when setting up the whole server. Replacing existing software may require separate confirmation.

Who can use this

The server administrator (root).

Parameters (13)

serviceRequired
Send in
URL path
Type
enum
Accepted values
httpd, apache, nginx, php, mariadb, database, mysql, pdns, mail, exim, postgresql, postgres, podman, nodejs, ftp, sftp, roundcube, mailman, phpmyadmin, pgadmin
Example
ftp

Service path parameter. Allowed values: httpd, apache, nginx, php, mariadb, database, mysql, pdns, mail, exim, postgresql, postgres, podman, nodejs, ftp, sftp, roundcube, mailman, phpmyadmin, pgadmin. Installer target: apache|httpd|nginx|php|nodejs|mariadb|database|mysql|postgresql|postgres|pgadmin|ftp|podman|sftp|roundcube|phpmyadmin|pdns|mail|exim. Map apache/httpd to httpd, mariadb/mysql/database to database, postgresql/postgres to postgresql, ftp/pure-ftpd/pure-authd/pure-certd to ftp, dns/pdns/powerdns to pdns, and mail/exim/dovecot/postfix takeover to mail. For php, SHM defaults to all available runtimes php56 through php85 if no versions are saved or supplied. For nodejs, SHM defaults to versions 22,24,26 and tools pm2,yarn,pnpm if not supplied; released even lines such as 20 remain accepted for operation compatibility when selected/saved. For postgresql, send postgresql_version/version 16, 17, or 18; SHM supports supported pg_upgrade copy-mode upgrades to higher supported majors and blocks downgrades/legacy clusters. Installer target service family. mail and exim both select the managed Exim + Dovecot stack and can replace detected Postfix only after confirmation.

Validation and use: Required Replace this placeholder directly in the URL path.

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Alias of install. Prefer install.

Validation and use:

ftpOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

For the ftp installer, control the FTP daemon state. Use install=true and ftp=true to install or repair FTP/Pure-FTPd/pure-authd/pure-certd. For ftp installer, control FTP/Pure-FTPd state. Use install=true and ftp=true to install or repair FTP.

Validation and use:

installOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

Enable or disable the target service. Alias: enabled.

Validation and use:

nginxapacheOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

For apache/nginx installers, keep the combined NGINX + Apache mode enabled. Send true when adding/repairing one web layer while the other is present. Send false only for an explicit switch to Apache-only or NGINX-only, because the other web server may be removed. For apache/nginx installers, keep combined NGINX + Apache mode. Send true when adding or repairing one web layer while the other is present; send false only for an explicit exclusive Apache-only or NGINX-only switch.

Validation and use:

nodejs_modulesOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["pm2","yarn","pnpm"]

For the nodejs installer, Node.js tools to install. Defaults to pm2,yarn,pnpm when omitted and no saved tools exist. pm2 is mandatory. Alias: modules. For nodejs installer, Node.js tools to install. pm2 is mandatory; default tools are pm2, yarn, pnpm.

Validation and use:

nodejsversionOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["20","22","24","26"]

For the nodejs installer, Node.js majors to install. Defaults to supported majors 22,24,26 when omitted; released even lines such as 20 remain accepted for operation compatibility when selected/saved. Aliases: versions, nodejs_versions. For nodejs installer, Node.js majors to install. Defaults to supported majors 22, 24, and 26 when omitted; released even lines such as 20 are accepted for operation compatibility.

Validation and use:

pdnsOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

For the pdns installer, control the PowerDNS service state. For pdns installer, control PowerDNS service state.

Validation and use:

php_modulesOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["runtime","php-common","php-fpm","php-cli","php-opcache","php-devel","pear","php-phpdbg","php-bz2","php-calendar","php-curl","php-dba","php-exif","php-fileinfo","php-ftp","php-gd","php-gmp","php-imagick","php-imap","php-intl","php-ldap","php-mbstring","php-mcrypt","php-mysqli","php-mysql","php-odbc","php-pdo_mysql","php-pdo_pgsql","php-pdo_sqlite","php-pdo_sqlsrv","php-pgsql","php-pspell","php-soap","php-sockets","php-sodium","php-sqlite3","php-sqlsrv","php-tidy","php-xsl","php-xmlrpc","php-wddx","php-yaml","php-zip","php-brotli","php-enchant","php-bcmath","php-redis","php-ioncube"]

For the php installer, PHP runtime modules to install. Defaults to every Server > Services PHP module when omitted and no saved modules exist: runtime, php-common, php-fpm, php-cli, php-opcache, php-devel, pear, php-phpdbg, php-bz2, php-calendar, php-curl, php-dba, php-exif, php-fileinfo, php-ftp, php-gd, php-gmp, php-imagick, php-imap, php-intl, php-ldap, php-mbstring, php-mcrypt, php-mysqli, php-mysql, php-odbc, php-pdo_mysql, php-pdo_pgsql, php-pdo_sqlite, php-pdo_sqlsrv, php-pgsql, php-pspell, php-soap, php-sockets, php-sodium, php-sqlite3, php-sqlsrv, php-tidy, php-xsl, php-xmlrpc, php-wddx, php-yaml, php-zip, php-brotli, php-enchant, php-bcmath, php-redis, php-ioncube. SQL Server modules are installed only for PHP 7.0 through PHP 8.5. Alias: modules. For php installer, PHP modules to install. For all/default PHP, send every PHP module exposed by Server > Services; php-pdo_sqlsrv and php-sqlsrv are installed only for PHP 7.0 through PHP 8.5.

Validation and use:

phpversionsOptional
Send in
JSON body
Type
array|string[]
Accepted values
Any value matching array|string[]
Example
["php56","php70","php71","php72","php73","php74","php80","php81","php82","php83","php84","php85"]

For the php installer, PHP runtimes to install. Defaults to php56, php70, php71, php72, php73, php74, php80, php81, php82, php83, php84, php85 when omitted and no saved versions exist. Aliases: versions, php_versions. For php installer, runtimes to install.

Validation and use:

postgresql_versionOptional
Send in
JSON body
Type
enum
Accepted values
16, 17, 18
Example
16

PostgreSQL target major for service=postgresql. Alias: version. Higher supported majors trigger a supported pg_upgrade copy-mode upgrade; downgrades are blocked. SHM installs pg_repack_<major> with the selected PGDG major and exposes /usr/local/bin/pg_repack.

Validation and use:

replacement_confirmationOptional
Send in
JSON body
Type
string|64-character lowercase hex string
Accepted values
Any value matching string|64-character lowercase hex string
Example
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Opaque 64-character value returned by the immediately preceding confirmation_required response for the same root caller, semantic request, service actions, and unchanged server inventory. Expires after 600 seconds and is consumed before change. Copy the opaque value from the preceding response, keep the service and body semantics unchanged, and send only after explicit approval. The backend consumes it before change.

Validation and use: Needed when: optional; required only after confirmation required.

sftpOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
true

For the sftp installer, control the SFTP service state. For sftp installer, control SFTP service state.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "service": "ftp"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": 1,
    "ftp": true,
    "install": true,
    "nginxapache": true,
    "nodejs_modules": [
      "pm2",
      "yarn",
      "pnpm"
    ],
    "nodejsversion": [
      "20",
      "22",
      "24",
      "26"
    ],
    "pdns": true,
    "php_modules": [
      "runtime",
      "php-common",
      "php-fpm",
      "php-cli",
      "php-opcache",
      "php-devel",
      "pear",
      "php-phpdbg",
      "php-bz2",
      "php-calendar",
      "php-curl",
      "php-dba",
      "php-exif",
      "php-fileinfo",
      "php-ftp",
      "php-gd",
      "php-gmp",
      "php-imagick",
      "php-imap",
      "php-intl",
      "php-ldap",
      "php-mbstring",
      "php-mcrypt",
      "php-mysqli",
      "php-mysql",
      "php-odbc",
      "php-pdo_mysql",
      "php-pdo_pgsql",
      "php-pdo_sqlite",
      "php-pdo_sqlsrv",
      "php-pgsql",
      "php-pspell",
      "php-soap",
      "php-sockets",
      "php-sodium",
      "php-sqlite3",
      "php-sqlsrv",
      "php-tidy",
      "php-xsl",
      "php-xmlrpc",
      "php-wddx",
      "php-yaml",
      "php-zip",
      "php-brotli",
      "php-enchant",
      "php-bcmath",
      "php-redis",
      "php-ioncube"
    ],
    "phpversions": [
      "php56",
      "php70",
      "php71",
      "php72",
      "php73",
      "php74",
      "php80",
      "php81",
      "php82",
      "php83",
      "php84",
      "php85"
    ],
    "postgresql_version": 16,
    "replacement_confirmation": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "sftp": true
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/services/installers/ftp' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"install":true,"ftp":true}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Install or repair FTP stack
{
  "path_parameters": {
    "service": "ftp"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "ftp": true
  }
}
Install PowerDNS
{
  "path_parameters": {
    "service": "pdns"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "pdns": true
  }
}
Install SFTP
{
  "path_parameters": {
    "service": "sftp"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "sftp": true
  }
}
Install all PHP runtimes and modules
{
  "path_parameters": {
    "service": "php"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "phpversions": [
      "php56",
      "php70",
      "php71",
      "php72",
      "php73",
      "php74",
      "php80",
      "php81",
      "php82",
      "php83",
      "php84",
      "php85"
    ],
    "php_modules": [
      "runtime",
      "php-common",
      "php-fpm",
      "php-cli",
      "php-opcache",
      "php-devel",
      "pear",
      "php-phpdbg",
      "php-bz2",
      "php-calendar",
      "php-curl",
      "php-dba",
      "php-exif",
      "php-fileinfo",
      "php-ftp",
      "php-gd",
      "php-gmp",
      "php-imagick",
      "php-imap",
      "php-intl",
      "php-ldap",
      "php-mbstring",
      "php-mcrypt",
      "php-mysqli",
      "php-mysql",
      "php-odbc",
      "php-pdo_mysql",
      "php-pdo_pgsql",
      "php-pdo_sqlite",
      "php-pdo_sqlsrv",
      "php-pgsql",
      "php-pspell",
      "php-soap",
      "php-sockets",
      "php-sodium",
      "php-sqlite3",
      "php-sqlsrv",
      "php-tidy",
      "php-xsl",
      "php-xmlrpc",
      "php-wddx",
      "php-yaml",
      "php-zip",
      "php-brotli",
      "php-enchant",
      "php-bcmath",
      "php-redis",
      "php-ioncube"
    ]
  }
}
Install Node.js runtimes and tools
{
  "path_parameters": {
    "service": "nodejs"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "nodejsversion": [
      "20",
      "22",
      "24",
      "26"
    ],
    "nodejs_modules": [
      "pm2",
      "yarn",
      "pnpm"
    ]
  }
}
Enable phpMyAdmin only
{
  "path_parameters": {
    "service": "phpmyadmin"
  },
  "query_parameters": {},
  "json_body": {
    "install": true
  }
}
Disable FTP
{
  "path_parameters": {
    "service": "ftp"
  },
  "query_parameters": {},
  "json_body": {
    "install": false,
    "ftp": false
  }
}
Keep Apache in nginx+apache mode
{
  "path_parameters": {
    "service": "httpd"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "nginxapache": true
  }
}
Keep NGINX in nginx+apache mode
{
  "path_parameters": {
    "service": "nginx"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "nginxapache": true
  }
}
Install Exim + Dovecot or replace approved Postfix
{
  "path_parameters": {
    "service": "mail"
  },
  "query_parameters": {},
  "json_body": {
    "install": true
  }
}
Retry approved Postfix replacement
{
  "path_parameters": {
    "service": "mail"
  },
  "query_parameters": {},
  "json_body": {
    "install": true,
    "replacement_confirmation": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
titlestring
messagestring
installedboolean
detailsstring[]
replacement_confirmationobject{value:string,expires_in_seconds:integer,single_use:boolean}|null
servicesobject[]{service:string,label:string,action:string,installed_software:object[]{name:string,version:string},packages:string[],binaries:string[],units:string[],configuration_to_backup:string[],configuration_to_replace:string[],protected_paths:string[],warnings:string[]}

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/services/statusrootCheck which hosting services are running.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/services/status' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

List service rows
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
rowsarray<object>

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
GET/v1/root/services/status/{service}rootCheck the current status of one hosting service.

Who can use this

The server administrator (root).

Parameters (1)

serviceRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
apache

Service key from the status list, for example apache, nginx, mariadb, ftp, sftp, roundcube, phpmyadmin, dovecot. Allowed values: live service keys returned by GET /v1/root/services/status. Common keys: apache, nginx, mariadb, ftp, sftp, roundcube, phpmyadmin, dovecot, radicale.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "service": "apache"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/services/status/apache' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "service": "apache"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
servicestring
display_namestring
statestring
cpustring
memstring
uptimestring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/services/status/{service}/{cmd}rootRun an available control for one hosting service.

Before you start

Check the service name and selected action first. Restarting or stopping a service can interrupt the websites or accounts that use it.

Who can use this

The server administrator (root).

Parameters (2)

cmdRequired
Send in
URL path
Type
enum
Accepted values
start, stop, restart, reload
Example
start

Cmd path parameter. Allowed values: start, stop, restart, reload. Service command: start|stop|restart|reload.

Validation and use: Required Replace this placeholder directly in the URL path.

serviceRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
apache

Service key from the status list. Allowed values: live service keys returned by GET /v1/root/services/status. Common keys: apache, nginx, mariadb, ftp, sftp, roundcube, phpmyadmin, dovecot, radicale.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "cmd": "start",
    "service": "apache"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/services/status/apache/start' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "service": "apache",
    "cmd": "start"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
statusstring
command_okboolean
outputstring
servicestring
display_namestring
statestring
cpustring
memstring
uptimestring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Traffic Monitor

GET/v1/root/traffic-monitor/procinfo-batchrootView traffic monitor process details in batch.

Who can use this

The server administrator (root).

Parameters (1)

pidsOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
PIDS_FROM_LIST_RESPONSE

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "pids": "PIDS_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/traffic-monitor/procinfo-batch?pids=PIDS_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {
    "pids": "PIDS_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/traffic-monitor/procinfo/{pid}rootView traffic monitor process details.

Who can use this

The server administrator (root).

Parameters (1)

pidRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Pid that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "pid": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/traffic-monitor/procinfo/demo' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "pid": "demo"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/traffic-monitor/rdnsrootResolve traffic monitor remote hostnames.

Who can use this

The server administrator (root).

Parameters (1)

ipsOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
IPS_FROM_LIST_RESPONSE

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "ips": "IPS_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/traffic-monitor/rdns?ips=IPS_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {
    "ips": "IPS_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/traffic-monitor/snapshotrootView the traffic monitor snapshot.

Who can use this

The server administrator (root).

Parameters (2)

loOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
LO_FROM_LIST_RESPONSE

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

maxOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
MAX_FROM_LIST_RESPONSE

Validation and use: Optional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {
    "lo": "LO_FROM_LIST_RESPONSE",
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/traffic-monitor/snapshot?lo=LO_FROM_LIST_RESPONSE&max=MAX_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {
    "lo": "LO_FROM_LIST_RESPONSE",
    "max": "MAX_FROM_LIST_RESPONSE"
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

Updates

PATCH/v1/root/system/auto-updaterootUpdate automatic system update settings.

Who can use this

The server administrator (root).

Parameters (2)

dailyautoupdateRequired
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Enable or disable the daily automatic system update. Allowed values: on, off.

Validation and use:

dailyautoupdate_excludekernelOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
off

Exclude kernel packages from daily updates. Allowed values: on, off. Send this field on hosts and virtual machines. In system containers it is forced to on; omit it or send on because off is rejected before any setting changes.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "dailyautoupdate": "on",
    "dailyautoupdate_excludekernel": "off"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/system/auto-update' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"dailyautoupdate":"on","dailyautoupdate_excludekernel":"off"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Enable daily updates and include kernel packages on a host
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "dailyautoupdate": "on",
    "dailyautoupdate_excludekernel": "off"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/system/update/jobs/{job_id}rootView a system update job status.

Who can use this

The server administrator (root).

Parameters (2)

job_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
job-id-from-previous-response

Job id that selects the exact resource in this URL. Obtain it from the related SHM list or context response.

Validation and use: Required Replace this placeholder directly in the URL path. Use the task/job id returned by the endpoint that started the async operation.

offsetOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
0

Offset query parameter.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {
    "offset": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/system/update/jobs/job-id-from-previous-response?offset=0' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {
    "job_id": "job-id-from-previous-response"
  },
  "query_parameters": {
    "offset": 0
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/system/update/runrootRun a system update job.

Who can use this

The server administrator (root).

Parameters (4)

checkOnlyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

check_onlyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

excludeKernelOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

exclude_kernelOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "checkOnly": 1,
    "check_only": 1,
    "excludeKernel": 1,
    "exclude_kernel": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/system/update/run' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"exclude_kernel":1,"excludeKernel":1,"check_only":1,"checkOnly":1}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "exclude_kernel": 1,
    "excludeKernel": 1,
    "check_only": 1,
    "checkOnly": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/update/auto-updaterootUpdate the updater automatic-update setting.

Who can use this

The server administrator (root).

Parameters (1)

stateOptional
Send in
JSON body
Type
enum
Accepted values
off, on
Example
off

State request field. Allowed values: off, on.

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "state": "off"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/update/auto-update' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"state":"off"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "state": "off"
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/root/update/channelrootUpdate the updater release channel.

Who can use this

The server administrator (root).

Parameters (1)

channelOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANNEL_FROM_LIST_RESPONSE

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "channel": "CHANNEL_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/root/update/channel' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"channel":"CHANNEL_FROM_LIST_RESPONSE"}'

Example note: Requires a value returned by another endpoint before QA can execute this request.

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "channel": "CHANNEL_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/root/update/runrootRun the updater.

Who can use this

The server administrator (root).

Parameters (6)

check_onlyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

forceOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

force_reapplyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

inline_legacyOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

manualOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

quietOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "check_only": 1,
    "force": 1,
    "force_reapply": 1,
    "inline_legacy": 1,
    "manual": 1,
    "quiet": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/root/update/run' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"quiet":1,"check_only":1,"inline_legacy":1,"force":1}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "quiet": 1,
    "check_only": 1,
    "inline_legacy": 1,
    "force": 1
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/root/update/staterootView the updater state.

Who can use this

The server administrator (root).

Parameters (0)

This endpoint accepts no path, query, or JSON parameters.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/root/update/state' \
  -H 'X-Api-User: root' \
  -H 'X-Api-Key: YOUR_API_KEY'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Example request
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep it when contacting support about the request.

Error response

{
  "status": "error",
  "code": "access_denied",
  "message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}

Result and next check

Read the HTTP status and JSON envelope, preserve the request id when returned, and verify state-changing results through a follow-up read or the related SHM page. Retry reads with care; retry writes only when their idempotency and prior outcome are known.

Theme color