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_quarantineAction-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.
| Field | Documented type or shape |
|---|---|
response_type | string; identity-aware view_file returns evidence_blob |
path | string; authorized absolute display path |
size | integer; opened file size in bytes |
limit | integer; rendered preview cap, currently 524288 bytes |
scan_id | string; resolved persisted finding report id |
sha256 | string; expected finding SHA-256 |
current_sha256 | string; SHA-256 from the same descriptor used for preview reads |
rules_revision | integer; report rules revision when available |
changed_since_scan | boolean; true disables saved evidence highlights |
evidence_available | boolean; unchanged exact outer-file evidence can be highlighted |
finding_evidence | object[]; bounded exact, archive-member, or derived evidence metadata |
windows | object[]{offset:integer,length:integer,reason_code?:string,role?:string,segments:object[]{text:string,highlight:boolean,reason_code?:string,role?:string}} |
binary_preview | boolean; binary bytes were converted to printable escapes |
truncated | boolean; preview or evidence windows reached a configured bound |
finding_kind | View classification: malware or potential_vulnerability. Also present on each detections_dt row. |
remediation_policy | guarded_remediation or review_only. Review-only files cannot be cleaned, quarantined or deleted through finding actions. |
classification_status | confirmed for malware; review for an unconfirmed potential vulnerability. Not a remote-exploitability assertion. |
stats.confirmed_files | Distinct files classified as malware. |
stats.review_files | Distinct review-only files, excluding files also classified as malware. |
stats.detected_files | Distinct visible malware and review files combined. |
error | security_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.
| Field | Documented type or shape |
|---|---|
avx_rules_rev | Rules revision of the running engine. Finding-type filters require revision 147 or newer; saved reports keep their original scan revision. |
files_scan.stats.confirmed_files | Distinct confirmed-malware files in the selected report, excluding review-only findings. |
files_scan.stats.review_files | Distinct potential-vulnerability files requiring review. These are not confirmed infections. |
files_scan.stats.detected_files | Distinct files with either malware or review findings. A file with independent malware evidence is counted as malware, not counted twice. |
last_scan.stats.review_files | Potential-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_mailboxesAction-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_manyAction-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_deleteComplete 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-denyignoreComplete 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-denyignoreComplete 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-denyignoreComplete 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-denyignoreComplete 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)
startstoprestartenabledisableunit values (2)
firewalldsynconix-intrusion-monitorComplete 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.
| Field | Documented type or shape |
|---|---|
mode | preview|apply |
plan_token | one-use plan token |
actions | preview action names or per-action apply results |
protected_paths | customer home and configured backup roots excluded by the fixed action contract |
customer_backup_paths_touched | always 0 for the fixed action implementation |
free_bytes_before | apply-only root filesystem free bytes before actions |
free_bytes_after | apply-only root filesystem free bytes after actions |
verification.complete | 1 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.
| Field | Documented 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.
| Field | Documented type or shape |
|---|---|
job | Migration 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)
startstoprestartComplete 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.
| Field | Documented 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.
| Field | Documented 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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
count | integer |
packages | object[] |
runtime_capabilities | object{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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
reseller_package_id | integer |
package | object |
runtime_capabilities | object{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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
package | object |
runtime_capabilities | object{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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
reseller_package_id | integer |
package | object |
runtime_capabilities | object{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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
services | object |
detected | object |
nodejs_installed_versions | string[] |
mariadb_allowed_versions | string[] |
mariadb_installed_full | string |
mariadb_installed_mm | string |
postgresql_allowed_versions | string[] |
postgresql_default_version | string |
postgresql_installed_major | string |
postgresql_installed_full | string |
postgresql_data_dir | string |
postgresql_legacy | boolean |
runtime_capabilities | object{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_operation | object{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.
| Field | Documented type or shape |
|---|---|
status | string |
title | string |
message | string |
replacement_confirmation | object{value:string,expires_in_seconds:integer,single_use:boolean}|null |
services | object[]{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_id | string|null |
progress_task | string|null |
job_status | string|null |
started | boolean|null |
reused | boolean|null |
operation | object{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_operation | object{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.
| Field | Documented type or shape |
|---|---|
status | string |
title | string |
message | string |
installed | boolean |
details | string[] |
replacement_confirmation | object{value:string,expires_in_seconds:integer,single_use:boolean}|null |
services | object[]{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.
| Field | Documented type or shape |
|---|---|
status | string |
rows | array<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.
| Field | Documented type or shape |
|---|---|
status | string |
service | string |
display_name | string |
state | string |
cpu | string |
mem | string |
uptime | string |
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.
| Field | Documented type or shape |
|---|---|
status | string |
command_ok | boolean |
output | string |
service | string |
display_name | string |
state | string |
cpu | string |
mem | string |
uptime | string |
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