User API

Use these API actions to manage websites, email, files and other resources in your hosting account.

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

Available to: Root, reseller, and user API identities inside the authorized account scope.

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.

User API endpoint reference (352)

Accounts

GET/v1/accountsroot reseller userList the hosting accounts you can manage.

Before you start

Use search to find an account, or start and length to request a smaller part of a large list.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Number of rows to return when pagination is enabled.

Validation and use: Minimum 1. Maximum 1000. Default: 100.

ownerOptional
Send in
Query string
Type
string|integer
Accepted values
Any value matching string|integer
Example
demo

Filter by account owner username or identifier. The filter is applied only for root callers; reseller and user visibility remains limited to the accounts they manage.

Validation and use:

qOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Alias of search. It is used only when search is empty.

Validation and use: Needed when: optional alias of search.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Case-insensitive search across the indexed account identity, domain, contact, owner, IP, status, package, and date fields.

Validation and use:

startOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based row offset. Supplying start or length enables pagination.

Validation and use: Minimum 0. 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": {
    "length": 100,
    "owner": "demo",
    "q": "example.com",
    "search": "example.com",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts?start=0&length=100' \
  -H 'X-Api-User: demo' \
  -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 the first 100 visible accounts
{
  "path_parameters": {},
  "query_parameters": {
    "start": 0,
    "length": 100
  },
  "json_body": {}
}
Search visible accounts
{
  "path_parameters": {},
  "query_parameters": {
    "search": "example.com",
    "start": 0,
    "length": 100
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
statusstring
titlestring
messagestring
roleenum(root|reseller|user)
countinteger
accountsobject[]
accounts[].idpositive integer
accounts[].userstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}root reseller userView the selected hosting account's details.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo' \
  -H 'X-Api-User: demo' \
  -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."
}

ai

POST/v1/ai/synconix/ensure-readyroot reseller userPrepare Synconix AI for its first use on this server.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/ai/synconix/ensure-ready' \
  -H 'X-Api-User: demo' \
  -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.

Ensure Synconix AI is ready for the current licensed server
{
  "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."
}

Ai

GET/v1/ai/catalogroot reseller userFind the SHM actions available to the AI assistant for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

accountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
ACCOUNT_FROM_LIST_RESPONSE

Account username used to resolve {username} paths.

Validation and use:

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

QA policy flag for destructive endpoints.

Validation and use:

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

1-based batch number.

Validation and use:

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

Endpoints per response, max 50.

Validation and use:

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

QA policy flag for read-like POST endpoints.

Validation and use:

qOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Optional English method/path/description search text translated from the user natural-language intent.

Validation and use:

roleOptional
Send in
Query string
Type
enum
Accepted values
root, reseller, user
Example
user

Catalog role: root, reseller, or user.

Validation and use:

surfaceOptional
Send in
Query string
Type
enum
Accepted values
workspace, account
Example
account

Catalog surface: workspace or account.

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": {
    "account": "ACCOUNT_FROM_LIST_RESPONSE",
    "allow_destructive": 1,
    "batch": 1,
    "batch_size": 1,
    "execute_read_post": 1,
    "q": "account",
    "role": "user",
    "surface": "account"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/ai/catalog?q=account&role=user&surface=account&account=ACCOUNT_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "q": "account",
    "role": "user",
    "surface": "account",
    "account": "ACCOUNT_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."
}

AI Assistant

GET/v1/accounts/{username}/ai/contextroot reseller userView the AI settings and availability for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/ai/context' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/accounts/{username}/ai/conversationsroot reseller userList your account’s AI conversations.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/ai/conversations' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/ai/conversationsroot reseller userCreate a your account’s AI conversation.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 POST 'https://panel.example.com:882/v1/accounts/demo/ai/conversations' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/ai/conversations/{conversation_id}root reseller userDelete an empty your account’s AI draft conversation.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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

Conversation 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 corresponding list endpoint for this resource and copy the returned conversation_id value.

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": {
    "conversation_id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/ai/conversations/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "conversation_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/accounts/{username}/ai/conversations/{conversation_id}root reseller userLoad a your account’s AI conversation.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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

Conversation 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 corresponding list endpoint for this resource and copy the returned conversation_id value.

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": {
    "conversation_id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ai/conversations/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "conversation_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/accounts/{username}/ai/conversations/{conversation_id}root reseller userSave a your account’s AI conversation.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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

Conversation 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 corresponding list endpoint for this resource and copy the returned conversation_id value.

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.

created_atOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CREATED_AT_FROM_LIST_RESPONSE

Validation and use:

modelOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MODEL_FROM_LIST_RESPONSE

Validation and use:

providerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PROVIDER_FROM_LIST_RESPONSE

Validation and use:

titleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TITLE_FROM_LIST_RESPONSE

Validation and use:

updated_atOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UPDATED_AT_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": {
    "conversation_id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "created_at": "CREATED_AT_FROM_LIST_RESPONSE",
    "model": "MODEL_FROM_LIST_RESPONSE",
    "provider": "PROVIDER_FROM_LIST_RESPONSE",
    "title": "TITLE_FROM_LIST_RESPONSE",
    "updated_at": "UPDATED_AT_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/ai/conversations/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"provider":"PROVIDER_FROM_LIST_RESPONSE","model":"MODEL_FROM_LIST_RESPONSE","created_at":"CREATED_AT_FROM_LIST_RESPONSE","updated_at":"UPDATED_AT_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",
    "conversation_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "provider": "PROVIDER_FROM_LIST_RESPONSE",
    "model": "MODEL_FROM_LIST_RESPONSE",
    "created_at": "CREATED_AT_FROM_LIST_RESPONSE",
    "updated_at": "UPDATED_AT_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/accounts/{username}/ai/conversations/currentroot reseller userSet the active your account’s AI conversation.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

conversation_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 conversation_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": {
    "conversation_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/ai/conversations/current' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"conversation_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": {
    "conversation_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."
}
PATCH/v1/accounts/{username}/ai/enabledroot reseller userSet your account’s AI enabled state.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/ai/enabled' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/ai/keys/{provider}root reseller userClear a your account’s AI API key.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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

Provider 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.

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": {
    "provider": "demo",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/ai/keys/demo' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "provider": "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/accounts/{username}/ai/keys/{provider}root reseller userReveal a your account’s AI API key for external use.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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

Provider 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.

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": {
    "provider": "demo",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ai/keys/demo' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "provider": "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/accounts/{username}/ai/keys/{provider}root reseller userSave an encrypted your account’s AI API key.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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

Provider 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.

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.

api_keyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
YOUR_API_KEY

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": {
    "provider": "demo",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "api_key": "YOUR_API_KEY"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ai/keys/demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"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": {
    "username": "demo",
    "provider": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "api_key": "YOUR_API_KEY"
  }
}

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/accounts/{username}/ai/models/{provider}root reseller userSet the your account’s AI model override.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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

Provider 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.

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.

modelOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MODEL_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": {
    "provider": "demo",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "model": "MODEL_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/ai/models/demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"model":"MODEL_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",
    "provider": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "model": "MODEL_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/accounts/{username}/ai/providerroot reseller userSet the your account’s AI provider.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

providerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PROVIDER_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": {
    "provider": "PROVIDER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/ai/provider' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"provider":"PROVIDER_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": {
    "provider": "PROVIDER_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/accounts/{username}/ai/providers/{provider}/requestroot reseller userSend a request to the configured AI service for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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

Provider 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.

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.

api_keyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
YOUR_API_KEY

Validation and use:

payloadOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
PAYLOAD_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": {
    "provider": "demo",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "api_key": "YOUR_API_KEY",
    "payload": "PAYLOAD_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ai/providers/demo/request' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"api_key":"YOUR_API_KEY","payload":"PAYLOAD_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",
    "provider": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "api_key": "YOUR_API_KEY",
    "payload": "PAYLOAD_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/accounts/{username}/ai/resetroot reseller userReset your account's saved AI service settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

conversation_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 conversation_id value.

providerOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PROVIDER_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": {
    "conversation_id": 1,
    "provider": "PROVIDER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ai/reset' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"provider":"PROVIDER_FROM_LIST_RESPONSE","conversation_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": {
    "provider": "PROVIDER_FROM_LIST_RESPONSE",
    "conversation_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."
}

Antivirus

POST/v1/accounts/{username}/antivirus/actions/{action}root reseller userStart a scan or manage an antivirus finding in your account.

Before you start

Review the selected file and finding before cleaning, quarantining or restoring it. An old result cannot be used to change a file that has since changed.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (16)

actionRequired
Send in
URL path
Type
enum
Accepted values
start_scan, stop_scan, scan_status, detections_dt, clear_findings, ignore_add, ignore_remove, scan_log, view_file, view_quarantine, quarantine_file, delete_file, clean_file, quarantine_list, restore_quarantine, delete_quarantine
Example
view_file

Action path parameter. Allowed values: start_scan, stop_scan, scan_status, detections_dt, clear_findings, ignore_add, ignore_remove, scan_log, view_file, view_quarantine, quarantine_file, delete_file, clean_file, quarantine_list, restore_quarantine, delete_quarantine.

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

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.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

DataTables draw counter.

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

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

Required for file changes and `clear_findings`; send `1` only after the user confirms the exact consequence. Scans never invoke these actions automatically. Explicit user confirmation gate. clear_findings changes only the selected view; scans never invoke file changes automatically.

Validation and use: Needed when: required for clean file, quarantine file, delete file, ignore add, clear findings, restore quarantine, and delete quarantine.

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

Required for `view_file` and used by single-file trust, clean, quarantine, or delete actions. It may be account-relative or an authorized absolute account path. The viewer opens, hashes, and reads one descriptor; changes revalidate account containment and exact current bytes. Account-relative path or an absolute path that resolves within an authorized account root. view_file hashes and reads one safely opened descriptor. clean_file stores the complete original in this same subject 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 one ignore-remove/clean/quarantine/delete action.

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

Legacy path-only list. Use `findings` for supported bulk finding changes. Use findings for ignore_add, quarantine_file, and delete_file so every file carries its own scan and SHA-256 identity.

Validation and use: Needed when: legacy read-only alias; not accepted for finding changes without identity.

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

Finding category, applied before pagination within the authorized account. Defaults to all; potential vulnerabilities are review-only, not confirmed infections.

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

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

Array of objects containing required `file`, `scan_id`, and lowercase `sha256`. Supported by bulk trust, clean, quarantine, and delete; every item is validated and reported independently. One or more objects with required file, scan_id, and sha256 fields from the current successful report or non-stale live scan. Every object is validated and reported independently.

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

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

Quarantine entry id used by `view_quarantine`, `restore_quarantine`, or `delete_quarantine`. Account 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 account quarantine entry identifiers.

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

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
50

DataTables page length.

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

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

Required for `stop_scan`, `scan_status`, `detections_dt`, `scan_log`, `clear_findings`, every finding change, and identity-aware `view_file`. For evidence viewing it must be sent with `sha256` and selects persisted server-side evidence. A change accepts the newest successful report or a current non-stale live scan containing the same in your account file and exact SHA-256. `scan_status` may return `result`, `scan_origin`, `can_stop`, `can_view_log`, `percent`, `progress_indeterminate`, `elapsed_seconds`, `progress_note`, live account-projected file counters, warning state, and a customer-safe interruption state. Internal paths, process identifiers, worker metadata, and root recovery audit fields are never exposed to account users. Account-visible scan identifier. For view_file it must be sent together with sha256 and selects a server-persisted finding after account authorization. Finding changes accept the newest successful report or a current non-stale live scan containing the same in your 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.

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

DataTables search object.

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

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

Required with `scan_id` for identity-aware `view_file` and every finding change. It is the exact lowercase SHA-256 from the selected completed or live finding. A changed view returns `changed_since_scan=1` without stale highlights; changes are refused. Exact lowercase SHA-256 from the selected finding. view_file returns changed_since_scan without saved highlights if current bytes differ; changes are refused.

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

startOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
0

DataTables result offset.

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

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 select the latest account report when scan_id is absent.

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

Supported actions and option sets

action values (16)
start_scanstop_scanscan_statusdetections_dtignore_addignore_removescan_logview_fileview_quarantineclean_fileclear_findingsquarantine_filedelete_filequarantine_listrestore_quarantinedelete_quarantine

Complete 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": "view_file",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "explicit_confirm": 1,
    "file": "public_html/image.gif",
    "files": "FILES_FROM_LIST_RESPONSE",
    "filter_kind": "potential_vulnerability",
    "findings": [
      {
        "file": "public_html/cache/generated.php",
        "scan_id": "SCAN_ID_FROM_CONTEXT",
        "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      }
    ],
    "id": 1,
    "ids": "IDS_FROM_LIST_RESPONSE",
    "length": 50,
    "scan_id": 1,
    "search": {
      "value": ""
    },
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "start": 0,
    "strict_scan_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/antivirus/actions/view_file' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"file":"public_html/image.gif","scan_id":1,"sha256":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}'

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.

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

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

Start account scan
{
  "path_parameters": {
    "username": "demo",
    "action": "start_scan"
  },
  "query_parameters": {},
  "json_body": {}
}
List detected account malware
{
  "path_parameters": {
    "username": "demo",
    "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 account vulnerabilities
{
  "path_parameters": {
    "username": "demo",
    "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": {
    "username": "demo",
    "action": "view_file"
  },
  "query_parameters": {},
  "json_body": {
    "file": "public_html/image.gif",
    "scan_id": 1,
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
  }
}

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

Trust one exact file version
{
  "path_parameters": {
    "username": "demo",
    "action": "ignore_add"
  },
  "query_parameters": {},
  "json_body": {
    "findings": [
      {
        "file": "public_html/cache/generated.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.

Quarantine one current finding
{
  "path_parameters": {
    "username": "demo",
    "action": "quarantine_file"
  },
  "query_parameters": {},
  "json_body": {
    "file": "public_html/suspicious.php",
    "scan_id": 1,
    "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "explicit_confirm": 1
  }
}

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

Clean one confirmed finding
{
  "path_parameters": {
    "username": "demo",
    "action": "clean_file"
  },
  "query_parameters": {},
  "json_body": {
    "file": "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": {
    "username": "demo",
    "action": "clean_file"
  },
  "query_parameters": {},
  "json_body": {
    "findings": [
      {
        "file": "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 this scan finding view
{
  "path_parameters": {
    "username": "demo",
    "action": "clear_findings"
  },
  "query_parameters": {},
  "json_body": {
    "scan_id": 1,
    "explicit_confirm": 1
  }
}

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

Successful result

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

FieldDocumented type or shape
response_typestring; evidence-aware view_file returns evidence_blob
pathstring; authorized display path
sizeinteger; opened file size in bytes
limitinteger; rendered preview cap, currently 524288 bytes
scan_idstring; resolved persisted finding report id when supplied
sha256string; expected finding SHA-256
current_sha256string; SHA-256 computed from the same opened descriptor used for preview reads
rules_revisioninteger; report rules revision when available
changed_since_scanboolean; true disables all saved evidence highlights
evidence_availableboolean; true only when unchanged exact outer-file spans are renderable
finding_evidenceobject[]; bounded exact, archive-member, or derived evidence metadata
windowsobject[]{offset:integer,length:integer,reason_code?:string,role?:string,segments:object[]{text:string,highlight:boolean,reason_code?:string,role?:string}}
binary_previewboolean; invalid or binary bytes were converted to printable escapes
truncatedboolean; content was bounded by preview or evidence-window limits
finding_kindView classification: malware or potential_vulnerability. Also present on each detections_dt row.
remediation_policyguarded_remediation or review_only. Review-only files cannot be cleaned, quarantined, deleted or trusted through finding actions.
classification_statusconfirmed for malware; review for an unconfirmed potential vulnerability. Not a remote-exploitability assertion.
stats.confirmed_filesAccount-visible distinct malware files.
stats.review_filesAccount-visible distinct review-only files.
stats.detected_filesAccount-visible distinct malware and review files combined.
errorsecurity_review_required refuses remediation without changing the review-only file. 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/accounts/{username}/antivirus/contextroot reseller userView your account's scans, findings and available antivirus actions.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Include the current account scan id. Defaults to 1 and is forced on by reports_only.

Validation and use:

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

Include account-visible scan report metadata. Defaults to 1 and is forced on by reports_only.

Validation and use:

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

Return only account identity and quarantine entries. Defaults to 0.

Validation and use:

report_limitOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer
Example
15

Maximum account-visible report rows; default 50.

Validation and use: Minimum 1. Maximum 200.

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

Return report metadata and active scan state while omitting quarantine/exclusion collections. Defaults to 0.

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": {
    "include_active_scan": 1,
    "include_reports": 0,
    "quarantine_only": 1,
    "report_limit": 15,
    "reports_only": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/antivirus/context?include_reports=0' \
  -H 'X-Api-User: demo' \
  -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 account workspace
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "include_reports": 0
  },
  "json_body": {}
}
Report selector metadata
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "reports_only": 1,
    "report_limit": 15
  },
  "json_body": {}
}
Quarantine refresh
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "quarantine_only": 1
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
avx_rules_revRules revision of the running engine. Finding-type filters require revision 147 or newer.
scan_reports[].confirmedDistinct confirmed-malware files visible to this account. Excludes review-only findings.
scan_reports[].reviewDistinct potential-vulnerability files visible to this account. A file with independent malware evidence is counted only under confirmed.
scan_reports[].matchedAccount-visible total of distinct malware and review-only files.

Error response

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

Apps

POST/v1/accounts/{username}/apps/installroot reseller userInstall a supported web application (one-click).

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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.

admin_emailRequired
Send in
JSON body
Type
email
Accepted values
Any value matching email
Example
admin@example.com

Administrator email address.

Validation and use:

admin_passRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
S3cure!Pass#123

Administrator password (minimum 12 characters). Administrator password (min 12 characters).

Validation and use:

admin_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin

Administrator username. Administrator username (mapped to app-specific installer fields).

Validation and use:

appRequired
Send in
JSON body
Type
enum
Accepted values
codeigniter, drupal, joomla, laravel, mediawiki, moodle, nextcloud, opencart, phpbb, prestashop, shopware, symfony
Example
codeigniter

Application slug to install. Application slug. Allowed values: codeigniter, drupal, joomla, laravel, mediawiki, moodle, nextcloud, opencart, phpbb, prestashop, shopware, symfony.

Validation and use:

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

Target domain or subdomain. Domain to install into (must belong to the account).

Validation and use:

site_titleRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
My Website

Application site title. Site/instance title (mapped to app-specific installer fields).

Validation and use:

admin_firstnameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Admin

Administrator first name used by Joomla, Moodle, OpenCart, PrestaShop, and Shopware. Defaults to Admin.

Validation and use:

admin_lastnameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
User

Administrator last name used by Joomla, Moodle, OpenCart, PrestaShop, and Shopware. Defaults to User.

Validation and use:

data_dirOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/nextcloud-data

Nextcloud-only data directory override. Optional; when omitted, a safe default under account home is used. Nextcloud only: data directory (must be inside account home and outside document root).

Validation and use:

folderOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FOLDER_FROM_LIST_RESPONSE

Optional subfolder under the domain document root. Example: "apps/wordpress". Must not contain "..".

Validation and use:

site_shortnameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Moodle

Moodle only: shortname (max 64 chars).

Validation and use:

Supported actions and option sets

app values (12)
joomladrupalprestashopopencartshopwarephpbbmediawikimoodlenextcloudlaravelsymfonycodeigniter
Application-specific request bodies
{
  "joomla": {
    "app": "joomla",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "drupal": {
    "app": "drupal",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "prestashop": {
    "app": "prestashop",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "opencart": {
    "app": "opencart",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "shopware": {
    "app": "shopware",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com",
    "admin_firstname": "Admin",
    "admin_lastname": "User"
  },
  "phpbb": {
    "app": "phpbb",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "mediawiki": {
    "app": "mediawiki",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "moodle": {
    "app": "moodle",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com",
    "site_shortname": "Moodle"
  },
  "nextcloud": {
    "app": "nextcloud",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com",
    "data_dir": "/home/demo/nextcloud-data"
  },
  "laravel": {
    "app": "laravel",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "symfony": {
    "app": "symfony",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  },
  "codeigniter": {
    "app": "codeigniter",
    "domain": "example.com",
    "folder": "",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

Complete 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": {
    "admin_email": "admin@example.com",
    "admin_pass": "S3cure!Pass#123",
    "admin_user": "admin",
    "app": "codeigniter",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_firstname": "Admin",
    "admin_lastname": "User",
    "data_dir": "/home/demo/nextcloud-data",
    "folder": "FOLDER_FROM_LIST_RESPONSE",
    "site_shortname": "Moodle"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/apps/install' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"app":"codeigniter","domain":"example.com","site_title":"My Website","admin_user":"admin","admin_pass":"S3cure!Pass#123","admin_email":"admin@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.

App: codeigniter
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "codeigniter",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: drupal
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "drupal",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: joomla
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "joomla",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: laravel
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "laravel",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: mediawiki
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "mediawiki",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: moodle
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "moodle",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com",
    "site_shortname": "Moodle"
  }
}

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

App: nextcloud
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "nextcloud",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com",
    "data_dir": "/home/demo/nextcloud-data"
  }
}

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

App: opencart
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "opencart",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: phpbb
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "phpbb",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: prestashop
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "prestashop",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com"
  }
}

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

App: shopware
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "shopware",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@example.com",
    "admin_firstname": "Admin",
    "admin_lastname": "User"
  }
}

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

App: symfony
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "app": "symfony",
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "S3cure!Pass#123",
    "admin_email": "admin@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."
}
GET/v1/accounts/{username}/apps/install/{task}root reseller userView Apps Installer task status and progress.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

taskRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
task-id-from-previous-response

Path parameter: task id returned by the install start call.

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.

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": {
    "task": "task-id-from-previous-response",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/apps/install/task-id-from-previous-response' \
  -H 'X-Api-User: demo' \
  -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 install task
{
  "path_parameters": {
    "task": "task-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/accounts/{username}/apps/installedroot reseller userList installed applications tracked by Apps Manager.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/apps/installed' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/apps/installed/{id}root reseller userRemove an installed app and optionally related database/user.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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.

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.

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

Remove related database resources. Set to 1 to also remove the created database and DB user (if present). Default: 0.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "remove_database": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/apps/installed/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"remove_database":0}'

Example note: Requires a documented runtime value 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.

Remove app files only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "remove_database": 0
  }
}

Requires a documented runtime value before QA can execute this request.

Remove app + database
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "remove_database": 1
  }
}

Requires a documented runtime value 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."
}

Auth

POST/v1/auth/whmcs-login-ticketroot reseller userCreate a one-use sign-in link for a customer's WHMCS hosting service.

Before you start

The customer's SHM username and password must be valid. The link expires and cannot be reused.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

client_ipRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

The browser client IP that will consume the ticket on /login.php. The ticket is rejected from other IP addresses.

Validation and use:

account_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Preferred actual SHM account password saved on the WHMCS service. Required unless the compatibility alias password is supplied. It is validated by the normal SHM authentication service and is never returned.

Validation and use:

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

Optional alias for account_username used by account-specific API authorization. Send the same value as account_username for reseller/user keys.

Validation and use:

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

Preferred SHM account username. Required unless the compatibility alias username is supplied. Must match account_user for scoped reseller/user API keys.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Compatibility alias for account_password. Omit when account_password is supplied.

Validation and use:

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

Optional same-site relative redirect after login. Defaults to /. Absolute URLs, protocol-relative URLs, and backslashes are rejected.

Validation and use:

user_agentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Mozilla/5.0

The browser User-Agent that will consume the ticket. When provided, SHM binds the ticket to this browser fingerprint.

Validation and use:

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

Compatibility alias for account_username. Omit when account_username is supplied.

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": {
    "client_ip": "203.0.113.10",
    "account_password": "STRONG_PASSWORD",
    "account_user": "demo",
    "account_username": "demo",
    "password": "STRONG_PASSWORD",
    "redirect": "/",
    "user_agent": "Mozilla/5.0",
    "username": "demo"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/auth/whmcs-login-ticket' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"account_username":"demo","account_user":"demo","account_password":"STRONG_PASSWORD","client_ip":"203.0.113.10","user_agent":"Mozilla/5.0","redirect":"/"}'

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 WHMCS login ticket
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_username": "demo",
    "account_user": "demo",
    "account_password": "STRONG_PASSWORD",
    "client_ip": "203.0.113.10",
    "user_agent": "Mozilla/5.0",
    "redirect": "/"
  }
}

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."
}

Backup

GET/v1/accounts/{username}/backup/local-contextroot reseller userView the local backup options available to your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/local-context' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/backup/local/backuproot reseller userDelete a your account’s local backup archive.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

tagRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TAG_FROM_LIST_RESPONSE

Backup tag returned by the local backup list.

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.

Complete 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": {
    "tag": "TAG_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/backup/local/backup' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"tag":"TAG_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": {
    "tag": "TAG_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/accounts/{username}/backup/local/backupsroot reseller userList your account’s local backups.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/local/backups' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/accounts/{username}/backup/local/downloadroot reseller userDownload a your account’s local backup archive.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

tagRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TAG_FROM_LIST_RESPONSE

Backup tag returned by the local backup list.

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.

Complete 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": {
    "tag": "TAG_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/download?tag=TAG_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "tag": "TAG_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/accounts/{username}/backup/local/files/contentroot reseller userView your account’s local backup file content.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

backup_pointOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
BACKUP_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.

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

File path.

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. Use the relevant list/read endpoint for this resource and copy the returned file name.

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

Path value.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "file": "error.log",
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/content?path=%2Fhome%2Fdemo%2Fpublic_html&backup_point=BACKUP_POINT_FROM_LIST_RESPONSE&file=error.log' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "path": "/home/demo/public_html",
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "file": "error.log"
  },
  "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/accounts/{username}/backup/local/files/itemsroot reseller userList your account’s local backup files and folders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

backup_pointOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
BACKUP_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.

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

Path value.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/items?path=%2Fhome%2Fdemo%2Fpublic_html&backup_point=BACKUP_POINT_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "path": "/home/demo/public_html",
    "backup_point": "BACKUP_POINT_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/accounts/{username}/backup/local/files/pointsroot reseller userList your account’s local file backup points.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/local/files/points' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/backup/local/files/restore-stagingroot reseller userRecover a file or folder to a separate location for inspection.

Before you start

Your live files are not replaced. Check the restored copy before deciding whether to use it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account username under the normal role ownership gate.

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

backup_pointRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
2026-07-13_02-00-00

Exact local advanced-backup point returned by the account local file-points endpoint.

Validation and use:

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/assets

One safe account-relative file or folder inside the backup files tree, for example public_html/assets. Traversal, host paths, and symlink escapes are rejected.

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": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-07-13_02-00-00",
    "path": "public_html/assets"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/files/restore-staging' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"backup_point":"2026-07-13_02-00-00","path":"public_html/assets"}'

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.

Stage last-night assets folder
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-07-13_02-00-00",
    "path": "public_html/assets"
  }
}

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

Stage one assets folder from a backup point
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-07-13_02-00-00",
    "path": "public_html/assets"
  }
}

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

Successful result

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

FieldDocumented type or shape
restore_hashrandom tenant-bound job identifier
staging_pathaccount-relative isolated restore path
staging_onlyalways 1
live_path_unchangedalways 1
next_stepinspect staging, preserve the live item, copy, and verify explicitly

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}root reseller userCheck whether a file restore is still running or has finished.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact random restore_hash returned by restore-staging.

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

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

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/restore-staging/0123456789abcdef0123456789abcdef' \
  -H 'X-Api-User: demo' \
  -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.

Check staging restore status
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
job_statusrunning|completed|failed|finished|not_found
runningboolean
last_linelast non-empty bounded restore log line

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}/abortroot reseller userStop a running file restore.

Before you start

Stopping the job does not undo files or data already restored.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact random restore_hash returned by restore-staging.

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

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

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/restore-staging/0123456789abcdef0123456789abcdef/abort' \
  -H 'X-Api-User: demo' \
  -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.

Abort a running staging restore
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess
messageRestore aborted.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}/logroot reseller userRead the progress messages for a file restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact random restore_hash returned by restore-staging.

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

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

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/restore-staging/0123456789abcdef0123456789abcdef/log' \
  -H 'X-Api-User: demo' \
  -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 staging restore evidence
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
contentrestore job log text

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/logroot reseller userView your account’s local backup log content.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

tagRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TAG_FROM_LIST_RESPONSE

Backup tag returned by the local backup list or start action.

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.

Complete 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": {
    "tag": "TAG_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/log?tag=TAG_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "tag": "TAG_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/accounts/{username}/backup/local/mail/contentroot reseller userView your account’s local backup mail content.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

backup_pointOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
BACKUP_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.

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

File path.

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. Use the relevant list/read endpoint for this resource and copy the returned file name.

mailPathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "file": "error.log",
    "mailPath": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/mail/content?backup_point=BACKUP_POINT_FROM_LIST_RESPONSE&mailPath=%2Fhome%2Fdemo%2Fpublic_html&file=error.log' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "mailPath": "/home/demo/public_html",
    "file": "error.log"
  },
  "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/accounts/{username}/backup/local/mail/itemsroot reseller userList your account’s local mail backup files and folders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

backup_pointOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
BACKUP_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.

mailPathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "mailPath": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/mail/items?backup_point=BACKUP_POINT_FROM_LIST_RESPONSE&mailPath=%2Fhome%2Fdemo%2Fpublic_html' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "mailPath": "/home/demo/public_html"
  },
  "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/accounts/{username}/backup/local/mail/pointsroot reseller userList your account’s local mail backup points.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/local/mail/points' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/backup/local/mail/restoreroot reseller userRecover selected email files or folders from a local backup.

Before you start

Choose original to restore to the live mail folder, or alternative to inspect the recovered files separately first.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account username under the normal role ownership gate.

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

backup_pointRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
2026-08-24_02-00-00

Exact local advanced-backup point returned by the Mail points endpoint.

Validation and use:

itemsRequired
Send in
JSON body
Type
array<string>
Accepted values
Any value matching array<string>
Example
["1700000000.M1"]

One to 1000 exact direct child file or folder names returned for path.

Validation and use:

locationOptional
Send in
JSON body
Type
original|alternative
Accepted values
original, alternative
Example
alternative

original restores below <home>/mail; alternative restores below <home>/restore/mail.

Validation and use: Needed when: optional; default original.

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com/info/new

Safe directory path relative to the backup mail root. Empty selects the mail root.

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": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "items": [
      "1700000000.M1"
    ],
    "location": "alternative",
    "path": "example.com/info/new"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mail/restore' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"backup_point":"2026-08-24_02-00-00","path":"example.com/info/new","items":["1700000000.M1"],"location":"alternative"}'

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.

Restore selected Mail items to the alternative location
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "path": "example.com/info/new",
    "items": [
      "1700000000.M1"
    ],
    "location": "alternative"
  }
}

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

Restore Mail to the alternative location
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "path": "example.com/info/new",
    "items": [
      "1700000000.M1"
    ],
    "location": "alternative"
  }
}

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

Successful result

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

FieldDocumented type or shape
restore_hashrandom tenant-bound job identifier
job_statusrunning
locationoriginal|alternative
selected_countnumber of accepted Mail item selections

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/mail/restore/{restore_hash}root reseller userCheck whether a email restore is still running or has finished.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact restore_hash returned by Mail restore start.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mail/restore/0123456789abcdef0123456789abcdef' \
  -H 'X-Api-User: demo' \
  -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 Mail restore status
{
  "path_parameters": {
    "username": "exampleacct",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Read Mail restore status
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
job_statusrunning|completed|failed|finished|not_found
runningboolean
log_existsboolean
last_linelast non-empty restore log line

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/backup/local/mail/restore/{restore_hash}/abortroot reseller userStop a running email restore.

Before you start

Stopping the job does not undo files or data already restored.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact restore_hash returned by Mail restore start.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mail/restore/0123456789abcdef0123456789abcdef/abort' \
  -H 'X-Api-User: demo' \
  -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.

Abort Mail restore
{
  "path_parameters": {
    "username": "exampleacct",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Abort Mail restore
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess
messageRestore aborted.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/mail/restore/{restore_hash}/logroot reseller userRead the progress messages for a email restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact restore_hash returned by Mail restore start.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mail/restore/0123456789abcdef0123456789abcdef/log' \
  -H 'X-Api-User: demo' \
  -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 Mail restore log
{
  "path_parameters": {
    "username": "exampleacct",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Read Mail restore log
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
contentrestore job log text

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/mysql/itemsroot reseller userList your account’s local MySQL backup databases or tables.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

backup_pointOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
BACKUP_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.

dbNameOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
DBNAME_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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "dbName": "DBNAME_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/mysql/items?backup_point=BACKUP_POINT_FROM_LIST_RESPONSE&dbName=DBNAME_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "backup_point": "BACKUP_POINT_FROM_LIST_RESPONSE",
    "dbName": "DBNAME_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/accounts/{username}/backup/local/mysql/pointsroot reseller userList your account’s local MySQL backup points.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/local/mysql/points' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/backup/local/mysql/restoreroot reseller userRecover selected databases or tables from a local backup.

Before you start

Choose import to restore into a database, or dump to save SQL files for inspection without changing the database.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account username under the normal role ownership gate.

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

backup_pointRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
2026-08-24_02-00-00

Exact local advanced-backup point returned by the MySQL points endpoint.

Validation and use:

restore_modeRequired
Send in
JSON body
Type
import|dump
Accepted values
import, dump
Example
dump

import writes into a currently owned database; dump copies selected SQL files to the account restore directory.

Validation and use:

databaseConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
exampleacct_app

Exact database directory containing tables. Required with tables.

Validation and use: Needed when: required for table selection.

databasesConditional
Send in
JSON body
Type
array<string>
Accepted values
Any value matching array<string>
Example
["exampleacct_app"]

One to 200 exact database directory names. Mutually exclusive with database and tables.

Validation and use: Needed when: required for database selection.

tablesConditional
Send in
JSON body
Type
array<string>
Accepted values
Any value matching array<string>
Example
["users.sql","settings.sql"]

One to 1000 exact .sql filenames returned for the selected database.

Validation and use: Needed when: required with database.

Complete 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": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "restore_mode": "dump",
    "database": "exampleacct_app",
    "databases": [
      "exampleacct_app"
    ],
    "tables": [
      "users.sql",
      "settings.sql"
    ]
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mysql/restore' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"backup_point":"2026-08-24_02-00-00","restore_mode":"dump","databases":["exampleacct_app"]}'

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.

Copy selected database dumps
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "restore_mode": "dump",
    "databases": [
      "exampleacct_app"
    ]
  }
}

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

Import selected tables
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "restore_mode": "import",
    "database": "exampleacct_app",
    "tables": [
      "users.sql",
      "settings.sql"
    ]
  }
}

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

Copy selected database dumps
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "restore_mode": "dump",
    "databases": [
      "exampleacct_app"
    ]
  }
}

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

Import selected table dumps
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "backup_point": "2026-08-24_02-00-00",
    "restore_mode": "import",
    "database": "exampleacct_app",
    "tables": [
      "users.sql"
    ]
  }
}

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

Successful result

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

FieldDocumented type or shape
restore_hashrandom tenant-bound job identifier
job_statusrunning
restore_modeimport|dump
locationoriginal for import or alternative for dump
selected_countnumber of accepted database or table selections

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/mysql/restore/{restore_hash}root reseller userCheck whether a database restore is still running or has finished.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact restore_hash returned by MySQL restore start.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mysql/restore/0123456789abcdef0123456789abcdef' \
  -H 'X-Api-User: demo' \
  -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 MySQL restore status
{
  "path_parameters": {
    "username": "exampleacct",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Read MySQL restore status
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
job_statusrunning|completed|failed|finished|not_found
runningboolean
log_existsboolean
last_linelast non-empty restore log line

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/backup/local/mysql/restore/{restore_hash}/abortroot reseller userStop a running database restore.

Before you start

Stopping the job does not undo files or data already restored.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact restore_hash returned by MySQL restore start.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mysql/restore/0123456789abcdef0123456789abcdef/abort' \
  -H 'X-Api-User: demo' \
  -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.

Abort MySQL restore
{
  "path_parameters": {
    "username": "exampleacct",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Abort MySQL restore
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess
messageRestore aborted.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/backup/local/mysql/restore/{restore_hash}/logroot reseller userRead the progress messages for a database restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

restore_hashRequired
Send in
URL path
Type
32-character string
Accepted values
Any value matching 32-character string
Example
0123456789abcdef0123456789abcdef

Exact restore_hash returned by MySQL restore start.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username.

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": {
    "restore_hash": "0123456789abcdef0123456789abcdef",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/exampleacct/backup/local/mysql/restore/0123456789abcdef0123456789abcdef/log' \
  -H 'X-Api-User: demo' \
  -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 MySQL restore log
{
  "path_parameters": {
    "username": "exampleacct",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Read MySQL restore log
{
  "path_parameters": {
    "username": "demo",
    "restore_hash": "0123456789abcdef0123456789abcdef"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
contentrestore job log text

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/backup/local/startroot reseller userStart a your account’s local backup.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

tagOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TAG_FROM_LIST_RESPONSE

Optional custom backup tag. When omitted, SHM generates one automatically.

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": {
    "tag": "TAG_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/backup/local/start' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"tag":"TAG_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": {
    "tag": "TAG_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/accounts/{username}/backup/local/statusroot reseller userView your account’s local backup status.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

tagOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TAG_FROM_LIST_RESPONSE

Optional backup tag to poll a specific local backup run.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "tag": "TAG_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/status?tag=TAG_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "tag": "TAG_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/accounts/{username}/backup/remote-contextroot reseller userView the remote backup options available to your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/remote-context' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/backup/remote/files/abortroot reseller userAbort your account’s remote file restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

sessionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SESSION_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": {
    "session": "SESSION_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/backup/remote/files/abort' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"session":"SESSION_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": {
    "session": "SESSION_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/accounts/{username}/backup/remote/files/contentroot reseller userView your account’s remote backup file content.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

dateRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
DATE_FROM_LIST_RESPONSE

Remote backup point date or identifier.

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.

fileRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
error.log

File path. File name to read inside the selected backup point path.

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. Use the relevant list/read endpoint for this resource and copy the returned file name.

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

Optional folder path inside the selected backup point.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "date": "DATE_FROM_LIST_RESPONSE",
    "file": "error.log",
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/remote/files/content?date=DATE_FROM_LIST_RESPONSE&file=error.log' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "date": "DATE_FROM_LIST_RESPONSE",
    "file": "error.log"
  },
  "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/accounts/{username}/backup/remote/files/itemsroot reseller userList your account’s remote backup files and folders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

dateRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
DATE_FROM_LIST_RESPONSE

Remote backup point date or identifier returned by `/backup/remote/files/points`.

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.

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

Optional folder path inside the selected backup point.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "date": "DATE_FROM_LIST_RESPONSE",
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/remote/files/items?date=DATE_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "date": "DATE_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/accounts/{username}/backup/remote/files/pointsroot reseller userList your account’s remote file backup points.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/remote/files/points' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/backup/remote/files/restoreroot reseller userStart your account’s remote file restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

dateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DATE_FROM_LIST_RESPONSE

Validation and use:

locationOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
LOCATION_FROM_LIST_RESPONSE

Validation and use:

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "date": "DATE_FROM_LIST_RESPONSE",
    "location": "LOCATION_FROM_LIST_RESPONSE",
    "path": "/home/demo/public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/backup/remote/files/restore' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","date":"DATE_FROM_LIST_RESPONSE","location":"LOCATION_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": {
    "path": "/home/demo/public_html",
    "date": "DATE_FROM_LIST_RESPONSE",
    "location": "LOCATION_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/accounts/{username}/backup/remote/mysql/abortroot reseller userAbort your account’s remote MySQL restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

sessionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SESSION_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": {
    "session": "SESSION_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/backup/remote/mysql/abort' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"session":"SESSION_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": {
    "session": "SESSION_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/accounts/{username}/backup/remote/mysql/itemsroot reseller userList your account’s remote MySQL backup databases or tables.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

dateRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
DATE_FROM_LIST_RESPONSE

Remote MySQL backup point date or identifier.

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.

dbNameOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
DBNAME_FROM_LIST_RESPONSE

Optional database name filter to list tables inside one backed-up database.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "date": "DATE_FROM_LIST_RESPONSE",
    "dbName": "DBNAME_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/remote/mysql/items?date=DATE_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "date": "DATE_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/accounts/{username}/backup/remote/mysql/pointsroot reseller userList your account’s remote MySQL backup points.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/backup/remote/mysql/points' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/backup/remote/mysql/restoreroot reseller userStart your account’s remote MySQL restore.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

databaseOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DATABASE_FROM_LIST_RESPONSE

Validation and use:

dateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DATE_FROM_LIST_RESPONSE

Validation and use:

locationOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
LOCATION_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": {
    "database": "DATABASE_FROM_LIST_RESPONSE",
    "date": "DATE_FROM_LIST_RESPONSE",
    "location": "LOCATION_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/backup/remote/mysql/restore' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"date":"DATE_FROM_LIST_RESPONSE","location":"LOCATION_FROM_LIST_RESPONSE","database":"DATABASE_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": {
    "date": "DATE_FROM_LIST_RESPONSE",
    "location": "LOCATION_FROM_LIST_RESPONSE",
    "database": "DATABASE_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."
}

Cloudflare

DELETE/v1/accounts/{username}/cloudflare/connectroot reseller userClear the saved Cloudflare API token for the account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 DELETE 'https://panel.example.com:882/v1/accounts/demo/cloudflare/connect' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/cloudflare/connectroot reseller userSave a Cloudflare API token for the account and optionally enable automatic subdomain sync.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

api_tokenRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Cloudflare API token with Zone Read and DNS Edit permissions.

Validation and use:

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

Set to `1` to enable automatic Cloudflare subdomain sync for this account.

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": {
    "api_token": "ONE_TIME_TOKEN",
    "auto_sync_subdomains": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/cloudflare/connect' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"api_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.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "api_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."
}
GET/v1/accounts/{username}/cloudflare/contextroot reseller userView your Cloudflare connection and the domains you can manage.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/cloudflare/context' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/cloudflare/domains/syncroot reseller userSync the local DNS zone for a selected domain to Cloudflare without removing unrelated Cloudflare records.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Account-owned main, addon, or parked domain to sync.

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": {
    "domain": "example.com"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/cloudflare/domains/sync' \
  -H 'X-Api-User: demo' \
  -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.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "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."
}
PATCH/v1/accounts/{username}/cloudflare/settingsroot reseller userUpdate your account’s Cloudflare settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Set to `1` to auto-sync supported subdomains to Cloudflare.

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": {
    "auto_sync_subdomains": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/cloudflare/settings' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"auto_sync_subdomains":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": {
    "auto_sync_subdomains": 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/accounts/{username}/cloudflare/subdomains/syncroot reseller userSync one account subdomain DNS record to Cloudflare.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Full subdomain name to sync.

Validation and use:

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address. Optional IPv4 override when syncing the subdomain.

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": {
    "domain": "example.com",
    "ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/cloudflare/subdomains/sync' \
  -H 'X-Api-User: demo' \
  -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.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "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."
}
GET/v1/accounts/{username}/cloudflare/zones/{zone_id}/recordsroot reseller userList Cloudflare DNS records for a matched zone connected to the account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_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",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/records' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "zone_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/accounts/{username}/cloudflare/zones/{zone_id}/recordsroot reseller userCreate a Cloudflare DNS record in a matched zone.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (9)

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_id value.

contentRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_FROM_LIST_RESPONSE

Record value/content.

Validation and use:

nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Record name inside the selected zone. Record owner name, such as @, www, or api.

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
A, AAAA, CNAME, TXT, MX
Example
A

DNS record type such as `A`, `AAAA`, `CNAME`, `MX`, `TXT`, or `SRV`. Allowed values: A, AAAA, CNAME, TXT, MX.

Validation and use:

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Optional Cloudflare record comment.

Validation and use:

priorityOptional
Send in
JSON body
Type
enum
Accepted values
priority
Example
priority

Priority for `MX` or similar record types. For MX records: priority. Allowed values: priority.

Validation and use:

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

Set to `1` to enable Cloudflare proxying when supported. For A, AAAA, or CNAME: enable or disable Cloudflare proxying.

Validation and use:

ttlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

Cloudflare TTL value. Use `1` for automatic TTL. TTL in seconds.

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",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "type": "A",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "priority": "priority",
    "proxied": 1,
    "ttl": 3600
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/records' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"A","name":"NAME_FROM_LIST_RESPONSE","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": {
    "username": "demo",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "type": "A",
    "name": "NAME_FROM_LIST_RESPONSE",
    "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."
}
DELETE/v1/accounts/{username}/cloudflare/zones/{zone_id}/records/{record_id}root reseller userDelete a Cloudflare DNS record from a matched zone.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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

Record 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 corresponding list endpoint for this resource and copy the returned record_id value.

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_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": {
    "record_id": 1,
    "username": "demo",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/records/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "zone_id": 1,
    "record_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/accounts/{username}/cloudflare/zones/{zone_id}/records/{record_id}root reseller userUpdate a Cloudflare DNS record in a matched zone.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (10)

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

Record 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 corresponding list endpoint for this resource and copy the returned record_id value.

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_id value.

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Updated optional record comment.

Validation and use:

contentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_FROM_LIST_RESPONSE

Record value/content.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Updated record name. Record owner name, such as @, www, or api.

Validation and use:

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

For MX records: priority.

Validation and use:

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

Set to `1` or `0` to change proxy state. For A, AAAA, or CNAME: enable or disable Cloudflare proxying.

Validation and use:

ttlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

TTL in seconds.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
A, AAAA, CNAME, TXT, MX
Example
A

Updated DNS record type. Allowed values: A, AAAA, CNAME, TXT, MX.

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": {
    "record_id": 1,
    "username": "demo",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "priority": 1,
    "proxied": 1,
    "ttl": 3600,
    "type": "A"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/records/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"A","name":"NAME_FROM_LIST_RESPONSE","content":"CONTENT_FROM_LIST_RESPONSE","ttl":3600}'

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",
    "zone_id": 1,
    "record_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "type": "A",
    "name": "NAME_FROM_LIST_RESPONSE",
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "ttl": 3600
  }
}

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."
}

Cloudflare DNS

POST/v1/accounts/{username}/cloudflare/zones/{zone_id}/cache/purgeroot reseller userPurge your account’s Cloudflare zone cache.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_id value.

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

Optional Cloudflare files purge payload.

Validation and use:

hostsOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
HOSTS_FROM_LIST_RESPONSE

Optional Cloudflare hosts purge payload.

Validation and use:

prefixesOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
PREFIXES_FROM_LIST_RESPONSE

Optional Cloudflare prefixes purge payload.

Validation and use:

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

Purge all cached files for the zone.

Validation and use:

tagsOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
TAGS_FROM_LIST_RESPONSE

Optional Cloudflare tags purge payload.

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",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "files": "FILES_FROM_LIST_RESPONSE",
    "hosts": "HOSTS_FROM_LIST_RESPONSE",
    "prefixes": "PREFIXES_FROM_LIST_RESPONSE",
    "purge_everything": 1,
    "tags": "TAGS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/cache/purge' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"purge_everything":1,"files":"FILES_FROM_LIST_RESPONSE","tags":"TAGS_FROM_LIST_RESPONSE","hosts":"HOSTS_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",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "purge_everything": 1,
    "files": "FILES_FROM_LIST_RESPONSE",
    "tags": "TAGS_FROM_LIST_RESPONSE",
    "hosts": "HOSTS_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/accounts/{username}/cloudflare/zones/{zone_id}/settingsroot reseller userList your account’s Cloudflare zone settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_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",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/settings' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "zone_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/accounts/{username}/cloudflare/zones/{zone_id}/settings/{setting}root reseller userUpdate your account’s Cloudflare zone setting.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

settingRequired
Send in
URL path
Type
enum
Accepted values
development_mode, security_level, cache_level, always_online, brotli
Example
development_mode

Allowed values: development_mode, security_level, cache_level, always_online, brotli.

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

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.

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

Zone 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 corresponding list endpoint for this resource and copy the returned zone_id value.

valueRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
VALUE_FROM_LIST_RESPONSE

Cloudflare setting 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": {
    "setting": "development_mode",
    "username": "demo",
    "zone_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "value": "VALUE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/cloudflare/zones/1/settings/development_mode' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"value":"VALUE_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",
    "zone_id": 1,
    "setting": "development_mode"
  },
  "query_parameters": {},
  "json_body": {
    "value": "VALUE_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."
}

Cronjobs

GET/v1/accounts/{username}/cronjobsroot reseller userList cron jobs.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

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

DataTables draw counter. Supplying `draw`, `start`, or `length` enables paged mode.

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. Rows per page, limited to 500. Defaults to 25 in paged mode.

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.

order_dirOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
ORDER_DIR_FROM_LIST_RESPONSE

Sort direction. Logical crontab order: `asc` or `desc`.

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.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search term or search payload. Case-insensitive schedule and command search, limited to 160 characters.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `search`.

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. Zero-based row offset in paged mode.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "length": 25,
    "order_dir": "ORDER_DIR_FROM_LIST_RESPONSE",
    "search": "account",
    "search_value": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/cronjobs?search=account&search_value=account&order_dir=ORDER_DIR_FROM_LIST_RESPONSE&draw=1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "search": "account",
    "search_value": "account",
    "order_dir": "ORDER_DIR_FROM_LIST_RESPONSE",
    "draw": 1
  },
  "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/accounts/{username}/cronjobsroot reseller userCreate cron job.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

commandRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/usr/bin/php /home/demo/scripts/task.php

Command or shell command to execute. Cron command (single line).

Validation and use:

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

Cron day-of-month field. Default: "*".

Validation and use:

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

Cron hour field. Default: "*".

Validation and use:

minuteOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
*/10

Cron minute field. Default: "*".

Validation and use:

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

Cron month field. Default: "*".

Validation and use:

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

Cron weekday field. Default: "*".

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": {
    "command": "/usr/bin/php /home/demo/scripts/task.php",
    "day": "*",
    "hour": "*",
    "minute": "*/10",
    "month": "*",
    "weekday": "*"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/cronjobs' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"minute":"*/10","hour":"*","day":"*","month":"*","weekday":"*","command":"/usr/bin/php /home/demo/scripts/task.php"}'

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.

Run every 10 minutes
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "minute": "*/10",
    "hour": "*",
    "day": "*",
    "month": "*",
    "weekday": "*",
    "command": "/usr/bin/php /home/demo/scripts/task.php"
  }
}

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/accounts/{username}/cronjobs/{id}root reseller userDelete cron job.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/cronjobs

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/cronjobs/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/cronjobs/{id}root reseller userEdit cron job.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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. GET /v1/accounts/{username}/cronjobs

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.

commandRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMAND_FROM_LIST_RESPONSE

Command or shell command to execute. Command executed by cron.

Validation and use:

timeRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
*/10 * * * *

Cron time expression (5 fields), e.g. "*/5 * * * *".

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "command": "COMMAND_FROM_LIST_RESPONSE",
    "time": "*/10 * * * *"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/cronjobs/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"time":"*/10 * * * *","command":"COMMAND_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",
    "id": 1
  },
  "query_parameters": {},
  "json_body": {
    "time": "*/10 * * * *",
    "command": "COMMAND_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/accounts/{username}/cronjobs/mailtoroot reseller userView cron MAILTO recipient.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/cronjobs/mailto' \
  -H 'X-Api-User: demo' \
  -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."
}
PATCH/v1/accounts/{username}/cronjobs/mailtoroot reseller userSet cron MAILTO recipient.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

emailRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin@example.com

Email address. Notification email (must be a valid email 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "email": "admin@example.com"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/cronjobs/mailto' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"email":"admin@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.

Set MAILTO
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "admin@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."
}

Database Users

GET/v1/accounts/{username}/database-usersroot reseller userList your database logins and their permitted remote connections.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/database-users' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/database-usersroot reseller userCreate database user.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

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

List of existing databases (owned by this account) that this user should access.

Validation and use:

dbuser_nameRequired
Send in
JSON body
Type
enum
Accepted values
letters, numbers, underscore
Example
letters

Database username. Allowed: letters, numbers, underscore. Max 64 chars. Must be unique platform-wide.

Validation and use:

hashed_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Root-only migration hash (`*` + 40 hex chars) applied when importing an existing MySQL password. Root-only MySQL native password hash (format: * + 40 hex chars). Used only when migration=1.

Validation and use:

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

Host list. Optional customer-managed remote MySQL hosts. Empty or omitted means no external host. Intrinsic local and active-endpoint identities are protected, added automatically, and omitted from managed-host responses. Optional customer-managed remote MySQL host entries. Omit or send an empty array when no external host is needed. SHM keeps intrinsic local and active-endpoint access protected and omits it from this customer-managed list. Allowed remote formats include IPv4, IPv6, FQDN, and patterns using % / _. Loopback and the active endpoint host are ignored as protected infrastructure values.

Validation and use:

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

Root-only migration flag. Omit it for normal database-user creation. Root-only migration helper flag. When set to "1", hashed_password may be provided.

Validation and use:

privilegesOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ALL

Comma-separated privilege list. Default: "ALL". Supported privilege tokens are ALL, USAGE, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, and TRIGGER.

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": {
    "dbuser_databases": [
      "demo_db"
    ],
    "dbuser_name": "letters",
    "hashed_password": "STRONG_PASSWORD",
    "hosts_array": [
      "203.0.113.10"
    ],
    "migration": 1,
    "privileges": "ALL"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/database-users' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"dbuser_name":"letters","dbuser_databases":["demo_db"],"privileges":"ALL"}'

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 DB user with ALL privileges on one DB
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "dbuser_name": "letters",
    "dbuser_databases": [
      "demo_db"
    ],
    "privileges": "ALL"
  }
}

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

Create read-only DB user
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "dbuser_name": "letters",
    "dbuser_databases": [
      "demo_db"
    ],
    "privileges": "SELECT",
    "hosts_array": [
      "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."
}
DELETE/v1/accounts/{username}/database-users/{id}root reseller userDelete database user.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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.

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/database-users/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/database-users/{id}root reseller userChange a database user's password, permissions or permitted remote connections.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

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.

db_permissionsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
DB_PERMISSIONS_FROM_LIST_RESPONSE

Database permission list.

Validation and use:

dbuserpasswordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Database user password.

Validation and use:

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

Host list. Replacement customer-managed remote MySQL hosts. Empty removes external hosts; omitted preserves them. Intrinsic local and active-endpoint identities are protected, maintained automatically, and omitted from managed-host responses. Replacement customer-managed remote MySQL host allow-list. Omit to preserve current remote hosts; send an empty list to remove them. SHM keeps intrinsic local and active-endpoint access protected and omits it from this customer-managed list. Allowed remote formats include IPv4, IPv6, FQDN, and patterns using % / _. Loopback and the active endpoint host are ignored as protected infrastructure values.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Set a new database user password. Alias: "dbuserpassword".

Validation and use:

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

Permission value or mode. Replace-style permissions list. Omit to preserve the current permissions; an explicit empty list is rejected. Supported privilege tokens are ALL, USAGE, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, and TRIGGER. Unsupported values are rejected before SQL is executed.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "db_permissions": "DB_PERMISSIONS_FROM_LIST_RESPONSE",
    "dbuserpassword": "STRONG_PASSWORD",
    "hosts": [],
    "password": "STRONG_PASSWORD",
    "permissions": [
      "SELECT"
    ]
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/database-users/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"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.

Rotate password only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "password": "STRONG_PASSWORD"
  }
}

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

Remove remote access and keep read-only privileges
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "permissions": [
      "SELECT"
    ],
    "hosts": []
  }
}

Requires a documented runtime value 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."
}

Databases

GET/v1/accounts/{username}/databasesroot reseller userList databases.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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_userRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account user for this legacy account-specific endpoint. Canonical endpoint: GET /v1/accounts/{username}/databases.

Validation and use:

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

Include sizes query parameter. Omit or set to 1/true to include live MySQL size_mb values. Set to 0/false/off/no for a fast metadata-only list; rows then include size_pending=true and no cached size is used.

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": {
    "account_user": "demo",
    "include_sizes": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/databases?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 databases with live sizes
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

List databases quickly without size calculation
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "include_sizes": 0
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Successful result

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

FieldDocumented type or shape
countint
sizes_includedbool
databasesarray<{id:int,database:string,users:string,size_mb:string|null,size_pending:bool}>

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/databasesroot reseller userCreate database.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

database_nameRequired
Send in
JSON body
Type
enum
Accepted values
letters, numbers, underscore
Example
letters

Preferred database-name field (no prefix). Allowed: letters, numbers, underscore. Max 64 chars. Example: "demo_db". Legacy alias: "databasename".

Validation and use:

databasenameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DATABASENAME_FROM_LIST_RESPONSE

Legacy alias for "database_name". Omit when using the preferred field.

Validation and use:

db_usersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
DB_USERS_FROM_LIST_RESPONSE

Database user list. Alias for "selectdbusers". Used only when "selectdbusers" is empty or omitted.

Validation and use:

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

Root-only migration reconciliation flag. When enabled, SHM may reconcile a database already present in MySQL or in the target account YAML. Omit this parameter for normal database creation.

Validation and use:

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

When enabled, creates a same-name database user with ALL privileges. The generated password is returned once as "dbuser_password" in the successful response. Default: 0.

Validation and use:

selectdbusersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
SELECTDBUSERS_FROM_LIST_RESPONSE

Selected database users. Existing database users that should receive their stored privileges on the new database. Accepts an array or comma-separated string.

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": {
    "database_name": "letters",
    "databasename": "DATABASENAME_FROM_LIST_RESPONSE",
    "db_users": "DB_USERS_FROM_LIST_RESPONSE",
    "migration": 1,
    "newdbuser": 1,
    "selectdbusers": "SELECTDBUSERS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/databases' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"database_name":"letters"}'

Example note: Requires a documented runtime value 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 database
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "database_name": "letters"
  }
}

Requires a documented runtime value 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/accounts/{username}/databases/{id}root reseller userDelete database.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/databases

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/databases/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/databases/{id}root reseller userEdit database user assignments.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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. GET /v1/accounts/{username}/databases

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.

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

Selected database users. Database users that should have access to this database (array, or comma-separated string). Alias: "db_users".

Validation and use:

db_usersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
DB_USERS_FROM_LIST_RESPONSE

Database user list.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "selectdbusers": [
      "demo_dbuser"
    ],
    "db_users": "DB_USERS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/databases/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"selectdbusers":["demo_dbuser"]}'

Example note: Requires a documented runtime value 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.

Assign a single DB user
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "selectdbusers": [
      "demo_dbuser"
    ]
  }
}

Requires a documented runtime value 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/accounts/{username}/databases/ai-accessroot reseller userInspect or work with data in your account's MySQL or MariaDB databases.

Before you start

Only the listed actions and permitted SQL statements are accepted. Check the database and proposed change before updating data.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

actionRequired
Send in
JSON body
Type
enum
Accepted values
list_databases, list_tables, describe_table, read_rows, execute_sql
Example
list_databases

Requested action name. Allowed values: `list_databases`, `list_tables`, `describe_table`, `read_rows`, `execute_sql`. Allowed values: list_databases, list_tables, describe_table, read_rows, execute_sql.

Validation and use:

databaseConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo_app

Owned database name. Required for `list_tables`, `describe_table`, `read_rows`, and `execute_sql`. Exact database owned by the target account. Required except for list_databases. Derive it from list_databases; never guess another account database.

Validation and use: Choose the account or resource you want to use.

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

Result size limit. Row limit for `read_rows`. Range: `1-200`. Default: `50`. read_rows page size. Range: 1-200. Default: 50.

Validation and use:

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

Row offset for `read_rows`. Default: `0`. read_rows zero-based offset. Default: 0.

Validation and use:

schemaOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SCHEMA_FROM_LIST_RESPONSE

Compatibility alias for `database`. Do not send both fields. Compatibility alias for database. Do not send both database and schema.

Validation and use:

sqlConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SQL_FROM_LIST_RESPONSE

Single SQL statement for `execute_sql`, capped at 20,000 bytes and 10 seconds. Only limited reads and table/index-scoped statements are accepted. Server administration, users/grants, files, delays, locks, system schemas, and multiple statements are blocked. Any mutating SQL requires the AI destructive-action confirmation gate. Exactly one allowlisted SQL statement for execute_sql, capped at 20,000 bytes and a limited execution time. Do not place SQL in another field.

Validation and use: Choose the account or resource you want to use.

tableConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
orders

Table name inside `database`. Required for `describe_table` and `read_rows`. Exact table inside database. Required for describe_table and read_rows. Derive it from list_tables.

Validation and use: Choose the account or resource you want to 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": {
    "action": "list_databases",
    "database": "demo_app",
    "limit": 50,
    "offset": 0,
    "schema": "SCHEMA_FROM_LIST_RESPONSE",
    "sql": "SQL_FROM_LIST_RESPONSE",
    "table": "orders"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/databases/ai-access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"action":"list_databases"}'

Example note: Requires a documented runtime value 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 in your account databases
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "list_databases"
  }
}

Requires a documented runtime value before QA can execute this request.

List tables in a derived owned database
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "list_tables",
    "database": "demo_app"
  }
}

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

Read a limited redacted table page
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "read_rows",
    "database": "demo_app",
    "table": "orders",
    "limit": 50,
    "offset": 0
  }
}

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

Successful result

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

FieldDocumented type or shape
actionstring
databasestring
tablestring
databases[]["id","database","users[]"]
tables[]["table_name","table_type","engine","estimated_rows","data_bytes","index_bytes","total_bytes","collation"]
columns[]["name","type","nullable","default","key","extra","collation","comment"]
indexes[]["index_name","non_unique","seq_in_index","column_name","sub_part","index_type"]
rows[]object
affected_rowsint
insert_idint
warning_countint
sensitive_fields_redactedbool

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/phpmyadmin/accessroot reseller userGet a sign-in link to manage your account's databases in phpMyAdmin.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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

Authorized target SHM account username. Root may target any account, a reseller only an owned account, and an end user only their own account.

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

hostRequired
Send in
JSON body
Type
hostname|IPv4|IPv6
Accepted values
Any value matching hostname|IPv4|IPv6
Example
hosting.example.com

SHM provider host used to construct the configured phpMyAdmin bridge URL. Supply the trusted server hostname or address without a URL path.

Validation and use:

remote_ipOptional
Send in
JSON body
Type
IP address
Accepted values
Any value matching IP address
Example
203.0.113.10

Original client IP bound to the short-lived sign-on token when available.

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": {
    "host": "hosting.example.com",
    "remote_ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/phpmyadmin/access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"host":"hosting.example.com","remote_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.

Prepare phpMyAdmin access
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "host": "hosting.example.com",
    "remote_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."
}

Diagnostics

GET/v1/accounts/{username}/diagnostics/app-checkroot reseller userIdentify a website's application and see the checks available for it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Optional in your account domain to focus on. Defaults to all detected sites.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/app-check?domain=example.com' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com"
  },
  "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/accounts/{username}/diagnostics/centerroot reseller userRun the available diagnostic checks for a selected website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Optional in your account domain to inspect. Defaults to the main 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.

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

Optional request path to probe. Defaults to `/`.

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.

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

Bounded number of HTTP probe samples. Range: `1-5`.

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.

schemeOptional
Send in
Query string
Type
enum
Accepted values
http, https
Example
http

Optional scheme. Allowed values: `http`, `https`. Defaults to `https`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "path": "/home/demo/public_html",
    "sample_count": 1,
    "scheme": "http"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/center?domain=example.com&path=%2Fhome%2Fdemo%2Fpublic_html&scheme=http&sample_count=1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "path": "/home/demo/public_html",
    "scheme": "http",
    "sample_count": 1
  },
  "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/accounts/{username}/diagnostics/code-searchroot reseller userSearch your application's files for text related to a problem.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (15)

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

Target SHM account system username. Root may target any account, a reseller only an account it owns, and an end user only its own account.

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

patternRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
Fatal error

Text or POSIX extended regular expression to find. Newline, NUL, DEL, and unsupported control characters are rejected. Alias: q.

Validation and use:

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

1 for case-sensitive grep; 0 for case-insensitive grep. Default: 1.

Validation and use:

extensionsOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
php,phtml,inc

Comma-separated extension allowlist. At most 24 entries; each may contain letters, numbers, dot, underscore, plus, or hyphen. Omit to inspect every limited text file.

Validation and use:

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

1 includes vendor and node_modules. Default: 0 for a faster application-owned-code search.

Validation and use:

limitOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
40

Maximum sorted matches returned. Default: 40.

Validation and use: Minimum 1. Maximum 200.

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

Legacy alias used only when match_mode is absent. 1 maps to literal and 0 maps to regex. Default: 1.

Validation and use:

match_modeOptional
Send in
Query string
Type
enum
Accepted values
literal, word, regex
Example
literal

Matching mode. literal is fixed-string, word is complete fixed-word, and regex is timeout-limited POSIX ERE. Default: literal.

Validation and use:

max_depthOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
10

Maximum recursion depth below path. Default: 8.

Validation and use: Minimum 1. Maximum 12.

max_file_size_kbOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
256

Maximum candidate file size in KiB. Default: 256. Binary files are ignored.

Validation and use: Minimum 16. Maximum 1024.

max_filesOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
5000

Maximum regular files passed to grep. Default: 5000.

Validation and use: Minimum 1. Maximum 20000.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/public_html

Existing account-home-relative directory. Default: /public_html. Absolute host paths, traversal, and any current target outside the account home are rejected.

Validation and use:

qOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
handleCheckout

Alias of pattern. Prefer pattern.

Validation and use:

timeout_secondsOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
6

Hard wall-clock timeout. Default: 8 seconds. A timeout returns any already collected matches with timed_out=1 and truncated=1.

Validation and use: Minimum 1. Maximum 20.

workersOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
4

Parallel grep worker count. Default: 4.

Validation and use: Minimum 1. Maximum 4.

Complete 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": {
    "pattern": "Fatal error",
    "case_sensitive": 1,
    "extensions": "php,phtml,inc",
    "include_dependencies": 0,
    "limit": 40,
    "literal": 1,
    "match_mode": "literal",
    "max_depth": 10,
    "max_file_size_kb": 256,
    "max_files": 5000,
    "path": "/public_html",
    "q": "handleCheckout",
    "timeout_seconds": 6,
    "workers": 4
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/code-search?pattern=Fatal+error&path=%2Fpublic_html&match_mode=literal&extensions=php%2Cphtml%2Cinc&limit=40' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Locate one PHP error or symbol quickly
{
  "path_parameters": {},
  "query_parameters": {
    "pattern": "Fatal error",
    "path": "/public_html",
    "match_mode": "literal",
    "extensions": "php,phtml,inc",
    "limit": 40
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Find a complete function name in application code
{
  "path_parameters": {},
  "query_parameters": {
    "pattern": "handleCheckout",
    "path": "/public_html",
    "match_mode": "word",
    "case_sensitive": 1,
    "extensions": "php,js,ts,tsx",
    "max_depth": 10
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Run a limited configuration-key regex
{
  "path_parameters": {},
  "query_parameters": {
    "pattern": "DB_(HOST|NAME|USER)",
    "path": "/public_html",
    "match_mode": "regex",
    "extensions": "env,php,ini,yaml,yml",
    "timeout_seconds": 6
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Locate a PHP error or symbol
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "pattern": "Fatal error",
    "path": "/public_html",
    "match_mode": "literal",
    "extensions": "php,phtml,inc",
    "limit": 40
  },
  "json_body": {}
}
Find a complete handler name
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "pattern": "handleCheckout",
    "path": "/public_html",
    "match_mode": "word",
    "extensions": "php,js,ts,tsx",
    "max_depth": 10
  },
  "json_body": {}
}
Search limited configuration keys
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "pattern": "DB_(HOST|NAME|USER)",
    "path": "/public_html",
    "match_mode": "regex",
    "extensions": "env,php,ini,yaml,yml",
    "timeout_seconds": 6
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
matches[]["file","line","preview","preview_redacted"]
match_countnumber of returned matches after the result cap
backendparallel_grep
elapsed_msserver-side search duration
timed_out1 when the hard timeout returned partial results
truncated1 when timeout, capture, or result limits may have omitted matches
redacted_preview_countnumber of returned previews whose secret-like value was replaced
securityread-only, account-scope, account-UID, symlink, and preview-redaction guarantees

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/diagnostics/config-mismatchroot reseller userFind application settings that do not match the website's current setup.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Optional in your account domain to inspect. Defaults to the main domain. Optional in your account domain to focus on.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/config-mismatch?domain=example.com' \
  -H 'X-Api-User: demo' \
  -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.

Check the main domain for drift
{
  "path_parameters": {},
  "query_parameters": {
    "domain": "example.com"
  },
  "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/accounts/{username}/diagnostics/file-changeroot reseller userSave a change to a text file and keep a recovery copy.

Before you start

Provide the file version you read before editing. SHM rejects the change if someone has changed the file since then.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 account, a reseller only an owned account, and a user only the current account.

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

contentRequired
Send in
JSON body
Type
UTF-8 string
Accepted values
Any value matching UTF-8 string
Example
<?php return ['debug' => false];

Complete replacement content. Maximum 2 MiB.

Validation and use:

expected_sha1Required
Send in
JSON body
Type
40-character lowercase SHA-1|absent
Accepted values
Any value matching 40-character lowercase SHA-1|absent
Example
0123456789abcdef0123456789abcdef01234567

SHA-1 returned by the exact prior file read. Use literal absent only to create a file that must still be missing. A stale value returns conflict without overwriting the file.

Validation and use:

fileRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/public_html/config/app.php

Account-home-relative target file. Its parent must exist. Absolute host paths, traversal, symlink components, directories, binary data, and unsupported text types are rejected.

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

reasonOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Disable production debug mode

Short audit and snapshot reason, limited to 240 characters. Default: AI-assisted account file change.

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": {
    "content": "<?php\nreturn ['debug' => false];\n",
    "expected_sha1": "0123456789abcdef0123456789abcdef01234567",
    "file": "/public_html/config/app.php",
    "reason": "Disable production debug mode"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/diagnostics/file-change' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"file":"/public_html/config/app.php","content":"<?php\nreturn ['\''debug'\'' => false];\n","expected_sha1":"0123456789abcdef0123456789abcdef01234567","reason":"Disable production debug mode"}'

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 an existing application file
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "file": "/public_html/config/app.php",
    "content": "<?php\nreturn ['debug' => false];\n",
    "expected_sha1": "0123456789abcdef0123456789abcdef01234567",
    "reason": "Disable production debug mode"
  }
}

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

Create a new stylesheet only if absent
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "file": "/public_html/assets/customer.css",
    "content": "body { color: inherit; }\n",
    "expected_sha1": "absent",
    "reason": "Customer-approved design adjustment"
  }
}

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

Update an existing application file safely
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "file": "/public_html/config/app.php",
    "content": "<?php\nreturn ['debug' => false];\n",
    "expected_sha1": "0123456789abcdef0123456789abcdef01234567",
    "reason": "Disable production debug mode"
  }
}

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

Create a stylesheet only if it remains absent
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "file": "/public_html/assets/customer.css",
    "content": "body { color: inherit; }\n",
    "expected_sha1": "absent",
    "reason": "Customer-approved design change"
  }
}

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

Successful result

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

FieldDocumented type or shape
filenormalized account-relative path
before_sha1validated prior SHA-1 or absent
after_sha1read-back SHA-1 of the committed content
verificationread-back, content-match, SHA-1, and storage checks
rollback.tokenaccount-bound rollback token guarded against later file edits

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/diagnostics/fix-planroot reseller userReview suggested repairs for a website problem without applying them.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

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

Optional in your account domain to focus on. Defaults to the main domain.

Validation and use:

issueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ISSUE_FROM_LIST_RESPONSE

Alias of `symptom`. Prefer `symptom`. Alias of symptom. Prefer symptom.

Validation and use:

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

Optional request path to probe. Defaults to `/`.

Validation and use:

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

Bounded number of HTTP probe samples. Range: `1-5`. Bounded number of probe samples. Range: 1-5.

Validation and use:

schemeOptional
Send in
JSON body
Type
enum
Accepted values
http, https
Example
https

Optional scheme. Allowed values: `http`, `https`. Defaults to `https`. Probe scheme. Allowed values: http, https. Default: https.

Validation and use:

symptomOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Site is slow, repair it

Free-text symptom such as `site slow`, `HTTPS error`, or `site broken`. Alias: `issue`. Free-text user symptom such as "site slow", "SSL error", or "site broken". Alias: issue.

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": {
    "domain": "example.com",
    "issue": "ISSUE_FROM_LIST_RESPONSE",
    "path": "/",
    "sample_count": 1,
    "scheme": "https",
    "symptom": "Site is slow, repair it"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/diagnostics/fix-plan' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","path":"/","scheme":"https","symptom":"Site is slow, repair it"}'

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.

Plan safe fixes for a slow site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "path": "/",
    "scheme": "https",
    "symptom": "Site is slow, repair it"
  }
}

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

Plan safe fixes for an HTTPS problem
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "shop.example.com",
    "symptom": "Certificate error on HTTPS"
  }
}

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

Plan safe fixes for a broken PHP site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "app.example.com",
    "symptom": "The site shows a server error"
  }
}

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/accounts/{username}/diagnostics/fix-runroot reseller userApply one of the repairs offered by the diagnostic check.

Before you start

Use an action returned by the repair plan and check its result before trying another change.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (15)

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.

max_entriesOptional
Send in
Query string
Type
string|integer
Accepted values
Any value matching string|integer
Example
1

Max entries query parameter. For `permissions_repair`, safety cap on scanned entries. Range: `100-100000`. Default: `30000`. For permissions_repair, safety cap on scanned entries. Range: 100-100000. Default: 30000.

Validation and use:

actionRequired
Send in
JSON body
Type
enum
Accepted values
reconcile_php_fpm, run_autossl, clear_web_cache, permissions_repair, wordpress_repair_pack, laravel_clear_caches
Example
reconcile_php_fpm

Safe action to execute. Allowed values: `reconcile_php_fpm`, `run_autossl`, `clear_web_cache`, `permissions_repair`, `wordpress_repair_pack`, `laravel_clear_caches`. Alias: `fix_id`. Allowed values: reconcile_php_fpm, run_autossl, clear_web_cache, permissions_repair, wordpress_repair_pack, laravel_clear_caches. Alias: fix_id.

Validation and use:

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

Optional in your account domain to target. Defaults to the main domain.

Validation and use:

fix_idOptional
Send in
JSON body
Type
enum
Accepted values
reconcile_php_fpm, run_autossl, clear_web_cache, permissions_repair, wordpress_repair_pack, laravel_clear_caches
Example
reconcile_php_fpm

Alias of `action`. Prefer `action`. Alias of action. Prefer action. Allowed values: reconcile_php_fpm, run_autossl, clear_web_cache, permissions_repair, wordpress_repair_pack, laravel_clear_caches.

Validation and use:

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

For `run_autossl`, set to `1` to force renewal. Alias: `force_renewal`. For run_autossl, set to 1 to force renewal. Alias: force_renewal.

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`. Prefer `force`. Alias of force. Prefer force.

Validation and use:

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

Optional selected website id for addon/subdomain/parked actions. Optional selected website id when you already know the addon/subdomain/parked target.

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

packOptional
Send in
JSON body
Type
enum
Accepted values
safe_recovery, debug_recovery, plugin_disable, theme_fallback
Example
safe_recovery

For `wordpress_repair_pack`, allowed values: `safe_recovery`, `debug_recovery`, `plugin_disable`, `theme_fallback`. For wordpress_repair_pack, allowed values: safe_recovery, debug_recovery, plugin_disable, theme_fallback.

Validation and use:

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

For `permissions_repair`, optional account-relative target path. Defaults to the focused domain document root. For permissions_repair, optional account-relative existing file/folder. Defaults to the focused document root.

Validation and use:

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

For `wordpress_repair_pack` with `plugin_disable`, the plugin file key if you want an exact plugin match. For wordpress_repair_pack with plugin_disable, the exact plugin file key when needed.

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

plugin_slugOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PLUGIN_SLUG_FROM_LIST_RESPONSE

For `wordpress_repair_pack` with `plugin_disable`, the plugin slug to target. For wordpress_repair_pack with plugin_disable, the plugin slug to target.

Validation and use:

profileOptional
Send in
JSON body
Type
enum
Accepted values
auto, generic_php, wordpress, laravel
Example
auto

For `permissions_repair`, allowed values: `auto`, `generic_php`, `wordpress`, `laravel`. Default: `auto`. For permissions_repair, allowed values: auto, generic_php, wordpress, laravel. Default: auto.

Validation and use:

theme_slugOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
THEME_SLUG_FROM_LIST_RESPONSE

For `wordpress_repair_pack` with `theme_fallback`, optional fallback theme slug. For wordpress_repair_pack with theme_fallback, optional explicit fallback theme slug.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain, parked
Example
addon

Optional explicit selected website type. Common values: `main`, `addon`, `subdomain`, `parked`. Common values: main, addon, subdomain, parked. Parked is valid only for run_autossl. Allowed values: main, addon, subdomain, parked.

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": {
    "max_entries": 1
  },
  "json_body": {
    "action": "reconcile_php_fpm",
    "domain": "example.com",
    "fix_id": "reconcile_php_fpm",
    "force": 1,
    "force_renewal": 1,
    "id": 1,
    "pack": "safe_recovery",
    "path": "/public_html",
    "plugin_file": "error.log",
    "plugin_slug": "PLUGIN_SLUG_FROM_LIST_RESPONSE",
    "profile": "auto",
    "theme_slug": "THEME_SLUG_FROM_LIST_RESPONSE",
    "type": "addon"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/diagnostics/fix-run' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"action":"reconcile_php_fpm","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.

Run PHP-FPM reconciliation
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "reconcile_php_fpm",
    "domain": "example.com"
  }
}

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

Run AutoSSL for one addon domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "run_autossl",
    "domain": "shop.example.com",
    "type": "addon",
    "id": 1
  }
}

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

Clear cache for one subdomain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "clear_web_cache",
    "domain": "cdn.example.com",
    "type": "subdomain",
    "id": 2
  }
}

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

Repair ownership and permissions for the site root
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "permissions_repair",
    "domain": "example.com",
    "path": "/public_html",
    "profile": "auto"
  }
}

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

Run a WordPress safe recovery pack
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "wordpress_repair_pack",
    "domain": "blog.example.com",
    "path": "/home/demo/public_html",
    "pack": "safe_recovery"
  }
}

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

Clear Laravel caches
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "laravel_clear_caches",
    "domain": "app.example.com",
    "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."
}
GET/v1/accounts/{username}/diagnostics/http-proberoot reseller userCheck whether your website responds at its configured public IP address.

Before you start

The check reports redirects without following them. Private or reserved IP addresses cannot be tested here.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (9)

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.

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

Domain name. Account-owned domain to probe. Defaults to the main domain. Account-owned domain. Defaults to the main account domain; foreign domains are rejected.

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.

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

Compatibility flag only. Redirects are reported but not followed by account diagnostics. Compatibility flag. The first response is reported and redirects are never followed.

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.

methodOptional
Send in
Query string
Type
enum
Accepted values
GET, HEAD
Example
HEAD

Method request field. Allowed values: GET, HEAD. Probe method. Allowed values: `GET`, `HEAD`. Defaults to `GET`. Default: GET.

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.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/

Request path to probe. Defaults to `/`. Request path beginning with /. Maximum 512 bytes. Default: /.

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.

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

Number of limited probe samples. Range: `1-5`. Number of limited samples. Default: 1.

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. Minimum 1. Maximum 5.

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

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.

schemeOptional
Send in
Query string
Type
enum
Accepted values
http, https
Example
https

Scheme request field. Allowed values: http, https. Probe scheme. Allowed values: `http`, `https`. Defaults to `http`. Default: http.

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.

timeout_secondsOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 6
Example
6

Probe timeout in seconds. Range: `2-15`. Per-sample timeout in seconds.

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. Minimum 2. Maximum 15. Default: 6.

Complete 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": {
    "domain": "example.com",
    "follow_redirects": 1,
    "method": "HEAD",
    "path": "/",
    "sample_count": 1,
    "samples": 1,
    "scheme": "https",
    "timeout_seconds": 6
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/http-probe?scheme=https&path=%2F&sample_count=1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Probe the main site over HTTPS
{
  "path_parameters": {},
  "query_parameters": {
    "scheme": "https",
    "path": "/",
    "sample_count": 1
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Probe an owned health path
{
  "path_parameters": {},
  "query_parameters": {
    "domain": "example.com",
    "scheme": "https",
    "path": "/health",
    "method": "HEAD"
  },
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
domainstring
pathstring
schemehttp|https
methodGET|HEAD
sample_countint
follow_redirectsint
follow_redirects_requestedint
redirect_policystring
probe_ipvalidated public IP pinned for every sample
topologyobject
averagesobject
samples[]bounded HTTP timing/status rows

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/diagnostics/log-summaryroot reseller userReview recent website requests and errors for signs of a problem.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

access_linesOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
200

How many recent access-log lines to analyze. Range: `200-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.

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

Domain name. Account-owned domain to inspect. Defaults to the main 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.

error_linesOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
200

How many recent error-log lines to summarize. Range: `50-4000`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "access_lines": 200,
    "domain": "example.com",
    "error_lines": 200
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/log-summary?domain=example.com&access_lines=200&error_lines=200' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "access_lines": 200,
    "error_lines": 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."
}
GET/v1/accounts/{username}/diagnostics/mysql-summaryroot reseller userReview your account's database activity for slow or repeated queries.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

modeOptional
Send in
Query string
Type
enum
Accepted values
current, sampled
Example
current

Listing or response mode. Allowed values: current, sampled. Allowed values: `current`, `sampled`. Defaults to `current`.

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.

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

For `sampled` mode, number of snapshots to take. Range: `1-5`.

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.

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

Delay between MySQL snapshots in milliseconds. Range: `100-2000`.

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.

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

Seconds threshold for flagging a long-running process.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "mode": "current",
    "sample_count": 1,
    "sleep_ms": 1,
    "slow_threshold": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/mysql-summary?mode=current&sample_count=1&sleep_ms=1&slow_threshold=1' \
  -H 'X-Api-User: demo' \
  -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": {
    "mode": "current",
    "sample_count": 1,
    "sleep_ms": 1,
    "slow_threshold": 1
  },
  "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/accounts/{username}/diagnostics/permissions-repairroot reseller userPreview or repair file permissions inside your account.

Before you start

Choose a specific folder or file. This action cannot be applied to the account's entire home folder.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

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

Set to `1` to execute the ownership/permission changes after preview review. Set to 1 to execute the ownership and permission changes.

Validation and use:

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

Optional in your account domain used to resolve the default document root target when `path` is omitted. Optional in your account domain used to resolve the default document root when path is omitted.

Validation and use:

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

Set to `1` to preview only. Default: `1` unless `apply=1` is sent. Set to 1 to preview only. Default: 1 unless apply=1 is sent.

Validation and use:

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

Safety cap on scanned entries. Range: `100-100000`. Default: `30000`. Range: 100-100000. Default: 30000.

Validation and use:

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

Optional account-relative existing file or folder. Defaults to the selected domain document root or `/public_html` when no better target is given. Optional account-relative existing file/folder. Defaults to the selected domain document root or /public_html. The home root itself is rejected.

Validation and use:

profileOptional
Send in
JSON body
Type
enum
Accepted values
auto, generic_php, wordpress, laravel
Example
wordpress

Allowed values: `auto`, `generic_php`, `wordpress`, `laravel`. Default: `auto`. Allowed values: auto, generic_php, wordpress, laravel. Default: auto.

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": {
    "apply": 1,
    "domain": "example.com",
    "dry_run": 1,
    "max_entries": 1,
    "path": "/public_html",
    "profile": "wordpress"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/diagnostics/permissions-repair' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","path":"/public_html","profile":"wordpress","dry_run":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.

Preview a WordPress permission repair
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "path": "/public_html",
    "profile": "wordpress",
    "dry_run": 1
  }
}

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

Apply a detected Laravel repair
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "app.example.com",
    "path": "/apps/laravel-app",
    "profile": "laravel",
    "apply": 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/accounts/{username}/diagnostics/php-summaryroot reseller userCheck the PHP configuration and recent problems for a website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Account-owned domain to inspect. Defaults to the main 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.

linesOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string
Example
200

Number of lines to return. How many recent error-log lines to summarize. Range: `50-2000`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "lines": 200
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/php-summary?domain=example.com&lines=200' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "lines": 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."
}
GET/v1/accounts/{username}/diagnostics/proactive-insightsroot reseller userFind reported website issues that may need your attention.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Optional in your account domain to inspect. Defaults to the main 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.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/

Optional request path to probe. Defaults to `/`. Defaults to /.

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.

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

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.

schemeOptional
Send in
Query string
Type
enum
Accepted values
http, https
Example
https

Optional scheme. Allowed values: `http`, `https`. Defaults to `https`. Probe scheme. Allowed values: http, https. Default: https.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "path": "/",
    "sample_count": 1,
    "scheme": "https"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/proactive-insights?domain=example.com&path=%2F&scheme=https' \
  -H 'X-Api-User: demo' \
  -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.

Build proactive insights for the main site
{
  "path_parameters": {},
  "query_parameters": {
    "domain": "example.com",
    "path": "/",
    "scheme": "https"
  },
  "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/accounts/{username}/diagnostics/repair-sessionroot reseller userCheck a website problem, apply supported repairs and verify the result.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

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

Set to `1` to execute the selected safe fixes. Set to `0` to generate the repair workflow without changing anything. Default: `1`. Set to 1 to execute the safe fixes. Set to 0 to build the full workflow without changing anything. Default: 1.

Validation and use:

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

Optional in your account domain to focus on. Defaults to the main domain.

Validation and use:

issueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ISSUE_FROM_LIST_RESPONSE

Alias of `symptom`. Prefer `symptom`. Alias of symptom. Prefer symptom.

Validation and use:

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

Maximum number of plan actions to execute in one session. Range: `1-6`. Default: `3`. Maximum number of safe actions to execute. Range: 1-6. Default: 3.

Validation and use:

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

Optional request path to probe. Defaults to `/`. Defaults to /.

Validation and use:

schemeOptional
Send in
JSON body
Type
enum
Accepted values
http, https
Example
https

Optional scheme. Allowed values: `http`, `https`. Defaults to `https`. Probe scheme. Allowed values: http, https. Default: https.

Validation and use:

symptomOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Site is slow, repair it

Free-text incident summary such as `site broken`, `site slow`, `WordPress admin fatal`, or `Laravel cache issue`. Alias: `issue`. Free-text incident summary such as "site broken", "site slow", "WordPress admin fatal", or "Laravel cache issue". Alias: issue.

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": {
    "apply": 0,
    "domain": "example.com",
    "issue": "ISSUE_FROM_LIST_RESPONSE",
    "max_actions": 1,
    "path": "/",
    "scheme": "https",
    "symptom": "Site is slow, repair it"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/diagnostics/repair-session' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","path":"/","scheme":"https","symptom":"Site is slow, repair it","apply":0}'

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.

Plan only for a slow site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "path": "/",
    "scheme": "https",
    "symptom": "Site is slow, repair it",
    "apply": 0
  }
}

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

Run a full repair session for a broken WordPress site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "blog.example.com",
    "path": "/",
    "scheme": "https",
    "symptom": "WordPress admin is broken, repair it",
    "apply": 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/accounts/{username}/diagnostics/rollbackroot reseller userRestore the saved copy from an earlier diagnostic repair.

Before you start

Use the rollback token returned by that repair. It applies only to the account that created it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

tokenRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Rollback token returned by `diagnostics/repair-session`. Alias: `rollback_token`. Rollback token returned by diagnostics/repair-session. Alias: rollback_token.

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.

rollback_tokenOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ONE_TIME_TOKEN

Alias of `token`. Prefer `token`. Alias of token. Prefer token.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "token": "ONE_TIME_TOKEN",
    "rollback_token": "ONE_TIME_TOKEN"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/diagnostics/rollback' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"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.

Rollback one repair snapshot
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "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."
}
GET/v1/accounts/{username}/diagnostics/runtime-summaryroot reseller userCheck the applications and supporting services used by a website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Optional in your account domain used to correlate the configured PHP/Node.js/Podman backend. Omit for an account-wide runtime inventory. Optional in your account domain to correlate with its configured backend. Foreign domains are rejected.

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.

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

Run limited git status for at most 20 repositories after the account-home repository scan. After repository discovery, run limited git status for at most 20 repositories. Default: 1.

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. Default: 1.

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

Include limited redacted/fingerprinted Node.js log summaries for the focused or unhealthy apps. Include limited Node.js log fingerprints/samples for the focused or unhealthy apps. Default: 1.

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. Default: 1.

log_linesOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 120
Example
120

Tail size used only when include_logs is enabled. Node.js log tail size. Default: 120.

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. Minimum 20. Maximum 500. Default: 120.

Complete 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": {
    "domain": "example.com",
    "include_git_status": 1,
    "include_logs": 1,
    "log_lines": 120
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/diagnostics/runtime-summary?domain=example.com&include_logs=1&log_lines=120&include_git_status=1' \
  -H 'X-Api-User: demo' \
  -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.

Focused application runtime diagnosis
{
  "path_parameters": {},
  "query_parameters": {
    "domain": "example.com",
    "include_logs": 1,
    "log_lines": 120,
    "include_git_status": 1
  },
  "json_body": {}
}

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

Fast account runtime inventory
{
  "path_parameters": {},
  "query_parameters": {
    "include_logs": 0,
    "include_git_status": 0
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Diagnose the active application runtime
{
  "path_parameters": {},
  "query_parameters": {
    "domain": "app.example.com",
    "include_logs": 1,
    "log_lines": 120,
    "include_git_status": 1
  },
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
focusdomain and detected web topology
nodejssanitized app/runtime status, bounded log summaries, and exact lifecycle endpoints
podmancontainer state, Compose project metadata, and exact diagnostic/lifecycle endpoints
gitbounded repository scan/status and exact repository action endpoints
postgresqlowned databases, account-scoped processes, and exact inspection/process endpoints
recommendations[]["severity","code","message","endpoint"]
securityaccount scope and interactive-shell exposure statement

Error response

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

Disk Usage

GET/v1/accounts/{username}/disk-usageroot reseller userFind the files and folders using your account's storage space.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

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

Path value.

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.

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

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.

unitOptional
Send in
Query string
Type
enum
Accepted values
auto, mb, gb
Example
auto

Unit request field. Allowed values: auto, mb, gb.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "path": "/home/demo/public_html",
    "show_files": 1,
    "unit": "auto"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/disk-usage?path=%2Fhome%2Fdemo%2Fpublic_html&unit=auto&show_files=1' \
  -H 'X-Api-User: demo' \
  -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": {
    "path": "/home/demo/public_html",
    "unit": "auto",
    "show_files": 1
  },
  "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/accounts/{username}/disk-usageroot reseller userFind the files and folders using your account's storage space.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

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

Path value.

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.

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

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.

unitOptional
Send in
JSON body
Type
enum
Accepted values
auto, mb, gb
Example
auto

Unit request field. Allowed values: auto, mb, gb.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "show_files": 1,
    "unit": "auto"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/disk-usage' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","unit":"auto","show_files":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": {
    "path": "/home/demo/public_html",
    "unit": "auto",
    "show_files": 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."
}

Dns

POST/v1/dns/recordsroot reseller userCreate DNS record.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (23)

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

Zone domain (FQDN), e.g. "example.com".

Validation and use:

recordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
api

Record name/host label (e.g. "www", "@", "api").

Validation and use:

ttlRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

TTL in seconds from 0 through 604800.

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
a, aaaa, afsdb, caa, cname, dname, ds, hinfo, mx, ns, ptr, srv, txt
Example
a

Record type (lowercase). SOA is edited through PATCH and cannot be created separately.

Validation and use:

afsdbhostConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
AFSDBHOST_FROM_LIST_RESPONSE

For afsdb: hostname.

Validation and use: Choose the account or resource you want to use.

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

For afsdb: subtype.

Validation and use: Choose the account or resource you want to use.

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

For caa: flag.

Validation and use: Choose the account or resource you want to use.

caatagConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CAATAG_FROM_LIST_RESPONSE

For caa: tag.

Validation and use: Choose the account or resource you want to use.

caavalueConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CAAVALUE_FROM_LIST_RESPONSE

For caa: value.

Validation and use: Choose the account or resource you want to use.

dsalgorithmConditional
Send in
JSON body
Type
enum
Accepted values
3, 5, 6, 7, 8, 10, 13, 14
Example
13

Required for ds: DNSSEC algorithm number accepted by SHM.

Validation and use: Choose the account or resource you want to use.

dsdigestConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF

Required for ds: hexadecimal digest with exactly 40 characters for type 1, 64 for type 2, or 96 for type 4.

Validation and use: Choose the account or resource you want to use.

dsdigesttypeConditional
Send in
JSON body
Type
enum
Accepted values
1, 2, 4
Example
2

Required for ds: digest type 1 (SHA-1), 2 (SHA-256), or 4 (SHA-384).

Validation and use: Choose the account or resource you want to use.

dskeytagConditional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
12345

Required for ds: key tag from 0 through 65535.

Validation and use: Choose the account or resource you want to use.

hinfocpuConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HINFOCPU_FROM_LIST_RESPONSE

For hinfo: CPU string.

Validation and use: Choose the account or resource you want to use.

hinfoosConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HINFOOS_FROM_LIST_RESPONSE

For hinfo: OS string.

Validation and use: Choose the account or resource you want to use.

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

For mx: destination hostname.

Validation and use: Choose the account or resource you want to use.

mxpriorityConditional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
10

For mx: priority.

Validation and use: Choose the account or resource you want to use.

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

For a/aaaa/cname: optional provider proxy metadata stored with the record; it does not alter native PowerDNS answers.

Validation and use:

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

For srv: port.

Validation and use: Choose the account or resource you want to use.

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

For srv: priority.

Validation and use: Choose the account or resource you want to use.

srvtargetConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SRVTARGET_FROM_LIST_RESPONSE

For srv: target hostname.

Validation and use: Choose the account or resource you want to use.

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

For srv: weight.

Validation and use: Choose the account or resource you want to use.

valueConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
192.0.2.25

For a/aaaa/cname/dname/ns/ptr/txt: record value (IP/hostname/text). For txt, quotes are stripped automatically.

Validation and use: Choose the account or resource you want to 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",
    "record": "api",
    "ttl": "3600",
    "type": "a",
    "afsdbhost": "AFSDBHOST_FROM_LIST_RESPONSE",
    "afsdbtype": 1,
    "caaflag": 1,
    "caatag": "CAATAG_FROM_LIST_RESPONSE",
    "caavalue": "CAAVALUE_FROM_LIST_RESPONSE",
    "dsalgorithm": "13",
    "dsdigest": "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF",
    "dsdigesttype": "2",
    "dskeytag": "12345",
    "hinfocpu": "HINFOCPU_FROM_LIST_RESPONSE",
    "hinfoos": "HINFOOS_FROM_LIST_RESPONSE",
    "mxdestination": "mail.example.com.",
    "mxpriority": "10",
    "proxied": 1,
    "srvport": 1,
    "srvpriority": 1,
    "srvtarget": "SRVTARGET_FROM_LIST_RESPONSE",
    "srvweight": 1,
    "value": "192.0.2.25"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/dns/records' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","type":"a","record":"api","ttl":"3600","value":"192.0.2.25"}'

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.

A record
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "a",
    "record": "api",
    "ttl": "3600",
    "value": "192.0.2.25"
  }
}

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

CNAME record
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "cname",
    "record": "www",
    "ttl": "3600",
    "value": "example.com."
  }
}

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

MX record
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "mx",
    "record": "@",
    "ttl": "3600",
    "mxpriority": "10",
    "mxdestination": "mail.example.com."
  }
}

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

TXT record
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "txt",
    "record": "@",
    "ttl": "3600",
    "value": "v=spf1 a mx ~all"
  }
}

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

DS record
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "ds",
    "record": "@",
    "ttl": "3600",
    "dskeytag": "12345",
    "dsalgorithm": "13",
    "dsdigesttype": "2",
    "dsdigest": "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.

If a request_id is included, keep 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/dns/records/{id}root reseller userDelete DNS record.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (25)

idRequired
Send in
URL path
Type
integer|string
Accepted values
Any value matching integer|string
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.

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

Zone domain (FQDN), e.g. "example.com".

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
a, aaaa, afsdb, caa, cname, dname, ds, hinfo, mx, ns, ptr, srv, txt
Example
a

Existing record type (lowercase). SOA is required and cannot be deleted.

Validation and use:

afsdbhostOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
AFSDBHOST_FROM_LIST_RESPONSE

Optional afsdb hostname guard.

Validation and use:

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

Optional afsdb subtype guard.

Validation and use:

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

Optional caa flag guard.

Validation and use:

caatagOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CAATAG_FROM_LIST_RESPONSE

Optional caa tag guard.

Validation and use:

caavalueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CAAVALUE_FROM_LIST_RESPONSE

Optional caa value guard.

Validation and use:

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

Optional ds algorithm guard.

Validation and use:

dsdigestOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DSDIGEST_FROM_LIST_RESPONSE

Optional ds digest guard.

Validation and use:

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

Optional ds digest-type guard.

Validation and use:

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

Optional ds key-tag guard.

Validation and use:

fieldsOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
FIELDS_FROM_LIST_RESPONSE

Optional record-value guards when legacy duplicate ids exist; accepts the same guard keys as the top-level fields below.

Validation and use:

hinfocpuOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HINFOCPU_FROM_LIST_RESPONSE

Optional hinfo CPU guard.

Validation and use:

hinfoosOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HINFOOS_FROM_LIST_RESPONSE

Optional hinfo operating-system guard.

Validation and use:

mxdestinationOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MXDESTINATION_FROM_LIST_RESPONSE

Optional mx destination guard.

Validation and use:

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

Optional mx priority guard.

Validation and use:

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

Optional provider proxy-metadata guard for a/aaaa/cname.

Validation and use:

recordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RECORD_FROM_LIST_RESPONSE

Optional owner-name guard used to identify the exact row when duplicate ids exist.

Validation and use:

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

Optional srv port guard.

Validation and use:

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

Optional srv priority guard.

Validation and use:

srvtargetOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SRVTARGET_FROM_LIST_RESPONSE

Optional srv target guard.

Validation and use:

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

Optional srv weight guard.

Validation and use:

ttlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

Optional TTL guard used to identify the exact row when duplicate ids exist.

Validation and use:

valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
VALUE_FROM_LIST_RESPONSE

Optional value guard for a/aaaa/cname/dname/ns/ptr/txt.

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": {
    "domain": "example.com",
    "type": "a",
    "afsdbhost": "AFSDBHOST_FROM_LIST_RESPONSE",
    "afsdbtype": 1,
    "caaflag": 1,
    "caatag": "CAATAG_FROM_LIST_RESPONSE",
    "caavalue": "CAAVALUE_FROM_LIST_RESPONSE",
    "dsalgorithm": 1,
    "dsdigest": "DSDIGEST_FROM_LIST_RESPONSE",
    "dsdigesttype": 1,
    "dskeytag": 1,
    "fields": "FIELDS_FROM_LIST_RESPONSE",
    "hinfocpu": "HINFOCPU_FROM_LIST_RESPONSE",
    "hinfoos": "HINFOOS_FROM_LIST_RESPONSE",
    "mxdestination": "MXDESTINATION_FROM_LIST_RESPONSE",
    "mxpriority": 1,
    "proxied": 1,
    "record": "RECORD_FROM_LIST_RESPONSE",
    "srvport": 1,
    "srvpriority": 1,
    "srvtarget": "SRVTARGET_FROM_LIST_RESPONSE",
    "srvweight": 1,
    "ttl": 3600,
    "value": "VALUE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/dns/records/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","type":"a"}'

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 record
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "a"
  }
}

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/dns/records/{id}root reseller userEdit DNS record.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (31)

idRequired
Send in
URL path
Type
integer|string
Accepted values
Any value matching integer|string
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.

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

Zone domain (FQDN), e.g. "example.com".

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
a, aaaa, afsdb, caa, cname, dname, ds, hinfo, mx, ns, ptr, srv, txt, soa
Example
a

Existing record type (lowercase) used to locate the record id.

Validation and use:

afsdbhostOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
AFSDBHOST_FROM_LIST_RESPONSE

For afsdb: replacement hostname.

Validation and use:

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

For afsdb: replacement subtype.

Validation and use:

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

For caa: replacement flag from 0 through 255.

Validation and use:

caatagOptional
Send in
JSON body
Type
enum
Accepted values
issue, issuewild, iodef
Example
issue

For caa: replacement tag.

Validation and use:

caavalueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CAAVALUE_FROM_LIST_RESPONSE

For caa: replacement value.

Validation and use:

dsalgorithmOptional
Send in
JSON body
Type
enum
Accepted values
3, 5, 6, 7, 8, 10, 13, 14
Example
3

For ds: replacement DNSSEC algorithm number accepted by SHM.

Validation and use:

dsdigestOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DSDIGEST_FROM_LIST_RESPONSE

For ds: replacement hexadecimal digest; length must match its digest type (40, 64, or 96).

Validation and use:

dsdigesttypeOptional
Send in
JSON body
Type
enum
Accepted values
1, 2, 4
Example
1

For ds: replacement digest type.

Validation and use:

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

For ds: replacement key tag from 0 through 65535.

Validation and use:

eaddressOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EADDRESS_FROM_LIST_RESPONSE

For soa: replacement responsible-party address in DNS hostname format.

Validation and use:

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

For soa: replacement expire interval, maximum 2419200.

Validation and use:

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

Optional object of field→value updates (alternative to top-level fields).

Validation and use:

hinfocpuOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HINFOCPU_FROM_LIST_RESPONSE

For hinfo: replacement CPU string.

Validation and use:

hinfoosOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HINFOOS_FROM_LIST_RESPONSE

For hinfo: replacement operating-system string.

Validation and use:

mxdestinationOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MXDESTINATION_FROM_LIST_RESPONSE

For mx: replacement destination hostname.

Validation and use:

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

For mx: replacement priority.

Validation and use:

pnameserverOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PNAMESERVER_FROM_LIST_RESPONSE

For soa: replacement primary nameserver.

Validation and use:

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

For a/aaaa/cname: replacement provider proxy metadata.

Validation and use:

recordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
api

Record name/host label (if changing).

Validation and use:

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

For soa: replacement refresh interval, maximum 604800.

Validation and use:

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

For soa: replacement retry interval, maximum 2419200.

Validation and use:

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

For soa: replacement serial; SHM still advances it when zone content changes.

Validation and use:

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

For srv: replacement port.

Validation and use:

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

For srv: replacement priority.

Validation and use:

srvtargetOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SRVTARGET_FROM_LIST_RESPONSE

For srv: replacement target hostname.

Validation and use:

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

For srv: replacement weight.

Validation and use:

ttlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

TTL in seconds from 0 through 604800 (if changing).

Validation and use:

valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
192.0.2.26

For a/aaaa/cname/dname/ns/ptr/txt: replacement value. For txt, quotes are stripped automatically.

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": {
    "domain": "example.com",
    "type": "a",
    "afsdbhost": "AFSDBHOST_FROM_LIST_RESPONSE",
    "afsdbtype": 1,
    "caaflag": 1,
    "caatag": "issue",
    "caavalue": "CAAVALUE_FROM_LIST_RESPONSE",
    "dsalgorithm": 3,
    "dsdigest": "DSDIGEST_FROM_LIST_RESPONSE",
    "dsdigesttype": 1,
    "dskeytag": 1,
    "eaddress": "EADDRESS_FROM_LIST_RESPONSE",
    "expire": 1,
    "fields": {
      "value": "hello world"
    },
    "hinfocpu": "HINFOCPU_FROM_LIST_RESPONSE",
    "hinfoos": "HINFOOS_FROM_LIST_RESPONSE",
    "mxdestination": "MXDESTINATION_FROM_LIST_RESPONSE",
    "mxpriority": 1,
    "pnameserver": "PNAMESERVER_FROM_LIST_RESPONSE",
    "proxied": 1,
    "record": "api",
    "refresh": 1,
    "retry": 1,
    "serial": 1,
    "srvport": 1,
    "srvpriority": 1,
    "srvtarget": "SRVTARGET_FROM_LIST_RESPONSE",
    "srvweight": 1,
    "ttl": "3600",
    "value": "192.0.2.26"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/dns/records/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","type":"a","record":"api","ttl":"3600","value":"192.0.2.26"}'

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 A value
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "a",
    "record": "api",
    "ttl": "3600",
    "value": "192.0.2.26"
  }
}

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

Update via fields object
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "type": "txt",
    "fields": {
      "value": "hello world"
    }
  }
}

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/dns/zones/{domain}root reseller userView DNS zone data.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 GET 'https://panel.example.com:882/v1/dns/zones/example.com' \
  -H 'X-Api-User: demo' \
  -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."
}

DNS

POST/v1/dns/zones/{domain}/cloudflare/cache/purgeroot reseller userPurge DNS zone Cloudflare cache through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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.

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

Optional Cloudflare files purge payload.

Validation and use:

hostsOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
HOSTS_FROM_LIST_RESPONSE

Optional Cloudflare hosts purge payload.

Validation and use:

prefixesOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
PREFIXES_FROM_LIST_RESPONSE

Optional Cloudflare prefixes purge payload.

Validation and use:

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

Purge all cached files for the zone.

Validation and use:

tagsOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
TAGS_FROM_LIST_RESPONSE

Optional Cloudflare tags purge payload.

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": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "files": "FILES_FROM_LIST_RESPONSE",
    "hosts": "HOSTS_FROM_LIST_RESPONSE",
    "prefixes": "PREFIXES_FROM_LIST_RESPONSE",
    "purge_everything": true,
    "tags": "TAGS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/cache/purge' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"purge_everything":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.

Purge everything
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "purge_everything": 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/dns/zones/{domain}/cloudflare/recordsroot reseller userList DNS zone Cloudflare records through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 GET 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/records' \
  -H 'X-Api-User: demo' \
  -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/dns/zones/{domain}/cloudflare/recordsroot reseller userCreate DNS zone Cloudflare record through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

contentRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_FROM_LIST_RESPONSE

Record value/content.

Validation and use:

nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Record owner name, such as @, www, or api.

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
A, AAAA, CNAME, TXT, MX
Example
A

Allowed values: A, AAAA, CNAME, TXT, MX.

Validation and use:

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Optional record comment.

Validation and use:

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

For MX records: priority.

Validation and use:

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

For A, AAAA, or CNAME: enable or disable Cloudflare proxying.

Validation and use:

ttlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

TTL in seconds or 1 for automatic Cloudflare TTL.

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": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "type": "A",
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "priority": 1,
    "proxied": 1,
    "ttl": 3600
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/records' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"A","name":"NAME_FROM_LIST_RESPONSE","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": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "type": "A",
    "name": "NAME_FROM_LIST_RESPONSE",
    "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."
}
DELETE/v1/dns/zones/{domain}/cloudflare/records/{record_id}root reseller userDelete DNS zone Cloudflare record through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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.

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

Record 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 corresponding list endpoint for this resource and copy the returned record_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": {
    "domain": "example.com",
    "record_id": 1
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/records/1' \
  -H 'X-Api-User: demo' \
  -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",
    "record_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/dns/zones/{domain}/cloudflare/records/{record_id}root reseller userUpdate DNS zone Cloudflare record through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (9)

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.

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

Record 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 corresponding list endpoint for this resource and copy the returned record_id value.

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMMENT_FROM_LIST_RESPONSE

Optional record comment.

Validation and use:

contentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_FROM_LIST_RESPONSE

Record value/content.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Record owner name, such as @, www, or api.

Validation and use:

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

For MX records: priority.

Validation and use:

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

For A, AAAA, or CNAME: enable or disable Cloudflare proxying.

Validation and use:

ttlOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3600

TTL in seconds or 1 for automatic Cloudflare TTL.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
A, AAAA, CNAME, TXT, MX
Example
A

Allowed values: A, AAAA, CNAME, TXT, MX.

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": {
    "domain": "example.com",
    "record_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "comment": "COMMENT_FROM_LIST_RESPONSE",
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "priority": 1,
    "proxied": 1,
    "ttl": 3600,
    "type": "A"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/records/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"A","name":"NAME_FROM_LIST_RESPONSE","content":"CONTENT_FROM_LIST_RESPONSE","ttl":3600}'

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",
    "record_id": 1
  },
  "query_parameters": {},
  "json_body": {
    "type": "A",
    "name": "NAME_FROM_LIST_RESPONSE",
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "ttl": 3600
  }
}

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/dns/zones/{domain}/cloudflare/settingsroot reseller userView DNS zone Cloudflare settings through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 GET 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/settings' \
  -H 'X-Api-User: demo' \
  -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."
}
PATCH/v1/dns/zones/{domain}/cloudflare/settings/{setting}root reseller userUpdate DNS zone Cloudflare setting through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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.

settingRequired
Send in
URL path
Type
enum
Accepted values
development_mode, security_level, cache_level, always_online, brotli
Example
security_level

Allowed values: development_mode, security_level, cache_level, always_online, brotli.

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

valueRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
under_attack

Cloudflare setting value. For on/off settings use on or off; security_level accepts essentially_off, low, medium, high, under_attack; cache_level accepts basic, simplified, aggressive.

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": {
    "domain": "example.com",
    "setting": "security_level"
  },
  "query_parameters": {},
  "json_body": {
    "value": "under_attack"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/settings/security_level' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"value":"under_attack"}'

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 Under Attack mode
{
  "path_parameters": {
    "domain": "example.com",
    "setting": "security_level"
  },
  "query_parameters": {},
  "json_body": {
    "value": "under_attack"
  }
}

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/dns/zones/{domain}/cloudflare/statusroot reseller userView DNS zone Cloudflare status through your DNS service.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 GET 'https://panel.example.com:882/v1/dns/zones/example.com/cloudflare/status' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/dns/zones/{domain}/dnssecroot reseller userCheck DNSSEC status and get the records your domain registrar needs.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (1)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Account-owned DNS zone name. Root may use any managed zone; reseller and user access remains ownership-scoped.

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 GET 'https://panel.example.com:882/v1/dns/zones/example.com/dnssec' \
  -H 'X-Api-User: demo' \
  -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 automatic DNSSEC and cluster synchronization
{
  "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/dns/zones/{domain}/dnssec/disableroot reseller userTurn off DNSSEC signing for a domain.

Before you start

Follow the required registrar steps as well, so a stale DS record does not make the domain unreachable.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Account-owned DNS zone name.

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.

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

Validation and use:

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

Root-only recovery override for parent-DS safety. Non-root callers are rejected when true.

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": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "confirm": "example.com",
    "force": false
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/dns/zones/example.com/dnssec/disable' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"confirm":"example.com","force":false}'

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.

Disable automatic DNSSEC after parent DS removal
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "confirm": "example.com",
    "force": 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."
}
POST/v1/dns/zones/{domain}/dnssec/enableroot reseller userTurn on DNSSEC signing for a domain.

Before you start

Follow the registrar steps for publishing the DS record before treating setup as complete.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (1)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Account-owned DNS zone name.

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/dns/zones/example.com/dnssec/enable' \
  -H 'X-Api-User: demo' \
  -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.

Enable automatic DNSSEC
{
  "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/dns/zones/{domain}/dnssec/rolloverroot reseller userContinue a planned change of a domain's DNSSEC signing key.

Before you start

Follow the next step reported by SHM and make any required registrar change before continuing.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

domainRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
example.com

Account-owned DNS zone name with DNSSEC already enabled.

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.

phaseRequired
Send in
JSON body
Type
enum
Accepted values
begin, activate, complete
Example
begin

Requested safe rollover transition. Transitions must be performed in order.

Validation and use:

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

Administrator-only recovery override for the registrar DS check and required waiting period. It does not bypass ownership or authentication.

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": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "phase": "begin",
    "force": false
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/dns/zones/example.com/dnssec/rollover' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"phase":"begin"}'

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.

Publish the new CSK everywhere
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "phase": "begin"
  }
}

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

Activate the new CSK after parent DS publication
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "phase": "activate",
    "force": false
  }
}

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

Complete rollover after hold-down
{
  "path_parameters": {
    "domain": "example.com"
  },
  "query_parameters": {},
  "json_body": {
    "phase": "complete",
    "force": 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."
}

Docs

GET/v1/docsroot reseller userGet the list of API actions and the information each one accepts.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/docs' \
  -H 'X-Api-User: demo' \
  -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."
}

Domains

GET/v1/accounts/{username}/domains/{domain}/public-dns-checkroot reseller userCheck whether your domain's public DNS records match its settings in SHM.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}

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": {
    "domain": "example.com",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/domains/example.com/public-dns-check' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Check nameservers and public A records
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/domains/{domain}/routing-checkroot reseller userCheck whether visitors to your domain reach the expected server IP address.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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. GET /v1/accounts/{username}

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.

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

Compatibility flag only. Redirects are reported but never followed by this account-specific probe, preventing cross-host, private-network, metadata, and DNS-rebinding requests. Compatibility flag. Redirects are never followed by this account-specific probe; the first response is reported safely.

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.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/

Optional request path. Defaults to `/`. Optional request path to probe. Defaults to /.

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.

schemeOptional
Send in
Query string
Type
enum
Accepted values
http, https
Example
https

Scheme request field. Allowed values: http, https. Optional scheme. Allowed values: `http`, `https`. Default: `https`. Probe scheme. Default: https.

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.

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

Optional timeout in seconds. Range: `2-15`. Default: `8`. Probe timeout in seconds. Range: 2-15. Default: 8.

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": {
    "domain": "example.com",
    "username": "demo"
  },
  "query_parameters": {
    "follow_redirects": 0,
    "path": "/",
    "scheme": "https",
    "timeout_seconds": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/domains/example.com/routing-check?scheme=https&path=%2F&follow_redirects=0' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Check HTTPS routing on the main site
{
  "path_parameters": {},
  "query_parameters": {
    "scheme": "https",
    "path": "/",
    "follow_redirects": 0
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Check a specific HTTP path safely
{
  "path_parameters": {},
  "query_parameters": {
    "scheme": "http",
    "path": "/health",
    "follow_redirects": 0
  },
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/domains/{domain}/whois-summaryroot reseller userView a WHOIS summary for one in your account domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}

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": {
    "domain": "example.com",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/domains/example.com/whois-summary' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Inspect WHOIS for the main domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/domains/addonsroot reseller userList addon domains.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/domains/addons' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/domains/addonsroot reseller userCreate addon domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (10)

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.

document_rootRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
addon

Document root path. Relative under home or absolute `/home/<user>/...` path. Directory under the account home (or absolute path under the account home). Must not contain "..".

Validation and use:

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

Domain name. Addon FQDN. Addon FQDN, e.g. "shop.example.com". Punycode is accepted. Must be unique in platform records.

Validation and use:

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

Root-only migration-orchestration flag. External integrations should omit it or send 0. When an authorized SHM migration workflow enables it, final web, mail, DNS activation and account projection refresh are deferred until the private bulk-finalization stage. Default: 0 (immediate activation).

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4
Accepted values
Any value matching string|ipv4
Example
203.0.113.10

IPv4 address. Optional IPv4 override. Root may set a different IPv4; non-root callers may only omit it or use the account primary/shared IPv4. IPv4 to assign to the domain. Root may choose a different IPv4; non-root callers may only omit it or use the account primary/shared IPv4.

Validation and use:

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

Root-only migration flag. Omit it for normal addon creation. Root-only migration helper flag (when importing legacy data).

Validation and use:

opcacheOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OPCACHE_FROM_LIST_RESPONSE

Enable or disable OPcache for the new or updated hosted domain, using a supported toggle value.

Validation and use:

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

PHP runtime key assigned to the hosted domain, such as php83 or another version installed in Services.

Validation and use:

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

OPcache toggle.

Validation and use:

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

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "document_root": "addon",
    "domain": "addon.example.com",
    "defer_runtime": 1,
    "ip": "203.0.113.10",
    "migration": 1,
    "opcache": "OPCACHE_FROM_LIST_RESPONSE",
    "phpversion": "PHPVERSION_FROM_LIST_RESPONSE",
    "setopcache": 1,
    "setphpversion": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/domains/addons' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"addon.example.com","document_root":"addon"}'

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 addon domain (use account IP)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "addon.example.com",
    "document_root": "addon"
  }
}

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

Successful result

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

FieldDocumented type or shape
addon_idint
domainstring
document_rootstring
ipstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/domains/addons/{id}root reseller userDelete addon domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/domains/addons

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/domains/addons/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/domains/addons/{id}root reseller userEdit addon domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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. GET /v1/accounts/{username}/domains/addons

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.

document_rootRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
addon2

Document root path. Relative under home or absolute `/home/<user>/...` path. New directory under the account home (or absolute path under the account home). Omit to keep the current document root.

Validation and use:

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

Domain name. Addon FQDN. New addon FQDN. Omit to keep the current domain.

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4
Accepted values
Any value matching string|ipv4
Example
203.0.113.10

IPv4 address. Optional IPv4 override. Root may change the domain to a different IPv4; non-root callers may only keep the current IP or use the account primary/shared IPv4. IPv4 assigned to the domain. Root may change it to a different IPv4; non-root callers may only keep the current IP or use the account primary/shared IPv4.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "document_root": "addon2",
    "domain": "example.com",
    "ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/domains/addons/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"document_root":"addon2","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.

Change addon document root
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "document_root": "addon2"
  }
}

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/accounts/{username}/domains/parkedroot reseller userList parked domains.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/domains/parked' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/domains/parkedroot reseller userCreate parked domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Domain name. Parked FQDN. Parked FQDN, e.g. "example.net". Punycode is accepted. Must be unique in platform records.

Validation and use:

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

Root-only migration-orchestration flag. External integrations should omit it or send 0. When an authorized SHM migration workflow enables it, final web, mail, DNS activation and account projection refresh are deferred until the private bulk-finalization stage. Default: 0 (immediate activation).

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4
Accepted values
Any value matching string|ipv4
Example
203.0.113.10

IPv4 address. Optional IPv4 override. Root may set a different IPv4; non-root callers may only omit it or use the account primary/shared IPv4. IPv4 to assign to the domain. Root may choose a different IPv4; non-root callers may only omit it or use the account primary/shared IPv4.

Validation and use:

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

Root-only migration flag. Omit it for normal parked-domain creation. Root-only migration helper flag (when importing legacy data).

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": {
    "domain": "parked.example.com",
    "defer_runtime": 1,
    "ip": "203.0.113.10",
    "migration": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/domains/parked' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"parked.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 parked domain (use account IP)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "parked.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.

FieldDocumented type or shape
parked_idint
domainstring
document_rootstring
ipstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/domains/parked/{id}root reseller userDelete parked domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/domains/parked

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/domains/parked/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/domains/subdomainsroot reseller userList subdomains.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/domains/subdomains' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/domains/subdomainsroot reseller userCreate subdomain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (11)

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.

document_rootRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
blog

Document root path. Relative under home (example: `public_html/ai`) or absolute `/home/<user>/...`. Directory under the account home (or absolute path under the account home). Must not contain "..".

Validation and use:

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

Parent domain name. Parent domain (example: `example.com` or `.example.com`). Parent domain, e.g. "example.com" or ".example.com". Leading dot is accepted.

Validation and use:

subdomainRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
blog

Subdomain label. Subdomain label (example: `ai`). Subdomain label, e.g. "blog". Reserved labels are rejected (www, mail, ftp, webmail, cpanel, shm).

Validation and use:

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

Root-only migration-orchestration flag. External integrations should omit it or send 0. When an authorized SHM migration workflow enables it, final web, mail, DNS activation and account projection refresh are deferred until the private bulk-finalization stage. Default: 0 (immediate activation).

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4
Accepted values
Any value matching string|ipv4
Example
203.0.113.10

IPv4 address. Optional IPv4 override. Root may set a different IPv4; non-root callers may only omit it or use the account primary/shared IPv4. IPv4 to use for the domain and DNS A record. Root may choose a different IPv4; non-root callers may only omit it or use the account primary/shared IPv4.

Validation and use:

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

Root-only migration flag. Omit it for normal subdomain creation. Root-only migration helper flag (when importing legacy data).

Validation and use:

opcacheOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
OPCACHE_FROM_LIST_RESPONSE

Enable or disable OPcache for the new or updated hosted domain, using a supported toggle value.

Validation and use:

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

PHP runtime key assigned to the hosted domain, such as php83 or another version installed in Services.

Validation and use:

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

OPcache toggle.

Validation and use:

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

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "document_root": "blog",
    "parent": ".example.com",
    "subdomain": "blog",
    "defer_runtime": 1,
    "ip": "203.0.113.10",
    "migration": 1,
    "opcache": "OPCACHE_FROM_LIST_RESPONSE",
    "phpversion": "PHPVERSION_FROM_LIST_RESPONSE",
    "setopcache": 1,
    "setphpversion": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/domains/subdomains' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"subdomain":"blog","parent":".example.com","document_root":"blog"}'

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 blog subdomain (use account IP)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "subdomain": "blog",
    "parent": ".example.com",
    "document_root": "blog"
  }
}

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

Successful result

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

FieldDocumented type or shape
subdomain_idint
domainstring
document_rootstring
ipstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/domains/subdomains/{id}root reseller userDelete subdomain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/domains/subdomains

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/domains/subdomains/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/domains/subdomains/{id}root reseller userEdit subdomain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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. GET /v1/accounts/{username}/domains/subdomains

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.

document_rootRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
blog2

Document root path. Relative under home or absolute `/home/<user>/...` path. New directory under the account home (or absolute path under the account home). Omit to keep the current document root.

Validation and use:

parentRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PARENT_FROM_LIST_RESPONSE

Parent domain name. Parent domain with or without leading dot. New parent domain, with or without leading dot. Omit to keep the current parent.

Validation and use:

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

New subdomain label. Omit to keep the current label.

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4
Accepted values
Any value matching string|ipv4
Example
203.0.113.10

IPv4 address. Optional IPv4 override. Root may change the domain to a different IPv4; non-root callers may only keep the current IP or use the account primary/shared IPv4. IPv4 to use for the domain and DNS A record. Root may change it to a different IPv4; non-root callers may only keep the current IP or use the account primary/shared IPv4.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "document_root": "blog2",
    "parent": "PARENT_FROM_LIST_RESPONSE",
    "subdomain": "example.com",
    "ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/domains/subdomains/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"document_root":"blog2","parent":"PARENT_FROM_LIST_RESPONSE","subdomain":"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.

Change subdomain document root
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "document_root": "blog2"
  }
}

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/accounts/{username}/domains/tableroot reseller userSearch or browse your domains.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username} Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/domains/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/domains/tableroot reseller userSearch or browse your domains.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username} Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/domains/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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."
}

Email

PATCH/v1/accounts/{username}/emailroot reseller userUpdate account contact email.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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.

emailRequired
Send in
JSON body
Type
email|string
Accepted values
Any value matching email|string
Example
admin@example.com

New contact email address. New contact email. Alias: contact_email.

Validation and use:

account_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Account or mailbox password.

Validation and use:

contact_emailOptional
Send in
JSON body
Type
email|string
Accepted values
Any value matching email|string
Example
admin@example.com

Alias of `email`. Alias of email. Prefer email.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Password value.

Validation and use:

quotaOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
100

Quota value.

Validation and use:

quota_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
QUOTA_TYPE_FROM_LIST_RESPONSE

Quota type or unit.

Validation and use:

storage_spaceOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
100

Storage quota amount.

Validation and use:

storage_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STORAGE_TYPE_FROM_LIST_RESPONSE

Storage unit.

Validation and use:

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

Controls whether this mailbox may receive new mail.

Validation and use:

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

Controls whether mailbox authentication is blocked.

Validation and use:

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

Controls whether this mailbox may send authenticated outbound mail.

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": {
    "email": "admin@example.com",
    "account_password": "STRONG_PASSWORD",
    "contact_email": "admin@example.com",
    "password": "STRONG_PASSWORD",
    "quota": 100,
    "quota_type": "QUOTA_TYPE_FROM_LIST_RESPONSE",
    "storage_space": 100,
    "storage_type": "STORAGE_TYPE_FROM_LIST_RESPONSE",
    "suspended_incoming": 1,
    "suspended_login": 1,
    "suspended_outgoing": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/email' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"email":"admin@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.

Set contact email
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "admin@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."
}

Emails

GET/v1/accounts/{username}/emailsroot reseller userList the email inboxes in your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/emails' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/emailsroot reseller userCreate an email address with its own inbox.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (10)

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.

accountRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
info

Mailbox local-part or account identifier. Mailbox local-part (example: `test`). Mailbox local part, e.g. "info" (becomes info@example.com).

Validation and use:

account_passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Account or mailbox password. Mailbox password (min 8 chars).

Validation and use: Minimum length 8.

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

Domain name. Domain part (example: `example.com`). Domain for the mailbox, e.g. "example.com".

Validation and use:

storage_spaceRequired
Send in
JSON body
Type
string|number
Accepted values
Any value matching string|number
Example
1

Storage quota amount. Quota size (example: `100` with `MB`). Quota value; use 0 for unlimited.

Validation and use:

storage_typeRequired
Send in
JSON body
Type
enum
Accepted values
M, G, MB, GB
Example
G

Storage unit. Quota unit: MB or GB. Quota unit: "M" (MB) or "G" (GB). Case-insensitive.

Validation and use:

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

Root-only migration flag. If `1`, account_password is treated as an existing password hash. Root-only migration helper flag. When set to "1", account_password is treated as a pre-hashed value (advanced).

Validation and use:

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

1 to block incoming mail delivery.

Validation and use: Default: 0.

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

1 to block IMAP/POP login.

Validation and use: Default: 0.

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

1 to block outgoing mail sending.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "account": "info",
    "account_password": "STRONG_PASSWORD",
    "domain": "example.com",
    "storage_space": "1",
    "storage_type": "G",
    "migration": 1,
    "suspended_incoming": 0,
    "suspended_login": 0,
    "suspended_outgoing": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","account":"info","storage_type":"G","storage_space":"1","account_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 1GB mailbox
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "account": "info",
    "storage_type": "G",
    "storage_space": "1",
    "account_password": "STRONG_PASSWORD"
  }
}

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

Create unlimited mailbox (no quota)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "account": "support",
    "storage_type": "M",
    "storage_space": "0",
    "account_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.

FieldDocumented type or shape
emailstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/emails/{id}root reseller userDelete mailbox.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/emails

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/emails/{id}root reseller userEdit mailbox quota/password.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (11)

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. GET /v1/accounts/{username}/emails

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_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Account or mailbox password. Set new mailbox password (min 8 chars). Alias: password.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Alias of account_password. Prefer account_password.

Validation and use:

quotaOptional
Send in
JSON body
Type
string|number
Accepted values
Any value matching string|number
Example
100

Alias of storage_space. Prefer storage_space.

Validation and use:

quota_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
QUOTA_TYPE_FROM_LIST_RESPONSE

Quota type or unit. Alias of storage_type. Prefer storage_type.

Validation and use:

storage_spaceOptional
Send in
JSON body
Type
string|number
Accepted values
Any value matching string|number
Example
2

Storage quota amount. Quota value; use 0 or "unlimited" for unlimited. Alias: quota.

Validation and use:

storage_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
G

Storage unit. Quota unit: "M" (MB) or "G" (GB). Alias: quota_type.

Validation and use:

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

1 to block incoming mail delivery.

Validation and use:

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

1 to block IMAP/POP login.

Validation and use:

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

1 to block outgoing mail sending.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "account_password": "STRONG_PASSWORD",
    "password": "STRONG_PASSWORD",
    "quota": 100,
    "quota_type": "QUOTA_TYPE_FROM_LIST_RESPONSE",
    "storage_space": "2",
    "storage_type": "G",
    "suspended_incoming": 1,
    "suspended_login": 1,
    "suspended_outgoing": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"storage_type":"G","storage_space":"2"}'

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.

Increase quota
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "storage_type": "G",
    "storage_space": "2"
  }
}

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

Set unlimited quota
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "storage_space": "2"
  }
}

Requires a documented runtime value before QA can execute this request.

Suspend outgoing mail only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "suspended_outgoing": 1
  }
}

Requires a documented runtime value 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/accounts/{username}/emails/{id}/messagesroot reseller userList mailbox messages from one folder.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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. GET /v1/accounts/{username}/emails

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.

folderOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
INBOX

Mailbox folder name. Default: `INBOX`.

Validation and use:

fromOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
FROM_FROM_LIST_RESPONSE

Case-insensitive sender substring filter.

Validation and use:

limitOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
25

Page size. Default: `100`, min `1`, max `200`. Result page size. Default `100`; min `1`, max `200`.

Validation and use:

offsetOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Result offset for pagination. Alias: `start`. Result offset.

Validation and use:

qOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Global search substring over subject/from/to/snippet/folder/uid. Alias: `search`.

Validation and use:

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `q`.

Validation and use:

sinceOptional
Send in
Query string
Type
timestamp|string
Accepted values
Any value matching timestamp|string
Example
2026-04-01

Only keep messages received after this value. Accepted formats: unix timestamp, `YYYY-MM-DD`, or `YYYY-MM-DD HH:MM:SS`. Keep only messages received after this value. Accepted forms: unix timestamp, `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS`.

Validation and use:

startOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Alias of `offset`.

Validation and use:

subjectOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
SUBJECT_FROM_LIST_RESPONSE

Case-insensitive subject substring filter.

Validation and use:

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

Filter by read state: `1/true/on/unread` or `0/false/off/read`. Filter by read state. Accepted true values: `1`, `true`, `on`, `unread`. Accepted false values: `0`, `false`, `off`, `read`.

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,
    "username": "demo"
  },
  "query_parameters": {
    "folder": "INBOX",
    "from": "FROM_FROM_LIST_RESPONSE",
    "limit": 25,
    "offset": 0,
    "q": "account",
    "search": "account",
    "since": "2026-04-01",
    "start": 0,
    "subject": "SUBJECT_FROM_LIST_RESPONSE",
    "unread": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/1/messages?account_user=demo&folder=INBOX&limit=25' \
  -H 'X-Api-User: demo' \
  -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.

Latest inbox messages
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "folder": "INBOX",
    "limit": 25
  },
  "json_body": {}
}

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

Unread messages since one date
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "folder": "INBOX",
    "unread": 1,
    "since": "2026-04-01"
  },
  "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/accounts/{username}/emails/{id}/messages/{message_id}root reseller userDelete one mailbox message by moving it to Trash or permanently expunging it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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. GET /v1/accounts/{username}/emails

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

Message 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/accounts/{username}/emails

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.

folderOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
INBOX

Optional folder fallback when `message_id` is a plain numeric UID instead of the encoded message token. Required only when `{message_id}` is a plain numeric UID instead of the encoded message token.

Validation and use:

modeOptional
Send in
JSON body
Type
enum
Accepted values
trash, permanent
Example
trash

Allowed values: `trash` (default) or `permanent`.

Validation and use:

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

Boolean alias for `mode=permanent`.

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,
    "message_id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "folder": "INBOX",
    "mode": "trash",
    "permanent": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/1/messages/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"mode":"trash"}'

Example note: Requires a documented runtime value 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.

Move message to Trash
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "mode": "trash"
  }
}

Requires a documented runtime value before QA can execute this request.

Permanently expunge a plain UID from INBOX
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "folder": "INBOX",
    "mode": "permanent"
  }
}

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/accounts/{username}/emails/{id}/messages/{message_id}root reseller userRead an email's contents and attachment information.

Before you start

Long messages may be shortened. Use the raw-message action if you need the complete original message.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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. GET /v1/accounts/{username}/emails

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

Message 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/accounts/{username}/emails

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.

folderOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
INBOX

Optional folder fallback when `message_id` is a plain numeric UID instead of the encoded message token. Required only when `{message_id}` is a plain numeric UID instead of the encoded message 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": {
    "id": 1,
    "message_id": 1,
    "username": "demo"
  },
  "query_parameters": {
    "folder": "INBOX"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/1/messages/1?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 by encoded message token
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Read by plain UID + folder fallback
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "folder": "INBOX"
  },
  "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/accounts/{username}/emails/{id}/messages/{message_id}/rawroot reseller userDownload the complete original email, including its headers.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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. GET /v1/accounts/{username}/emails

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

Message 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/accounts/{username}/emails

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.

folderOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
INBOX

Optional folder fallback when `message_id` is a plain numeric UID instead of the encoded message token. Required only when `{message_id}` is a plain numeric UID instead of the encoded message 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": {
    "id": 1,
    "message_id": 1,
    "username": "demo"
  },
  "query_parameters": {
    "folder": "INBOX"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/1/messages/1/raw?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Raw source by encoded token
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Raw source by plain UID + folder fallback
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "folder": "INBOX"
  },
  "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/accounts/{username}/emails/{id}/messages/searchroot reseller userSearch mailbox messages across one folder or all folders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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. GET /v1/accounts/{username}/emails

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.

folderOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
INBOX

Optional folder name. Omit it to search across all mailbox folders. Omit it to search across all folders.

Validation and use:

fromOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
billing@example.net

Case-insensitive sender substring filter.

Validation and use:

limitOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
20

Page size. Default: `100`, min `1`, max `200`. Result page size. Default `100`; min `1`, max `200`.

Validation and use:

offsetOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Result offset for pagination. Alias: `start`. Result offset.

Validation and use:

qOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
invoice

Global search substring over subject/from/to/snippet/folder/uid. Alias: `search`.

Validation and use:

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

Alias of `q`.

Validation and use:

sinceOptional
Send in
JSON body
Type
timestamp|string
Accepted values
Any value matching timestamp|string
Example
SINCE_FROM_LIST_RESPONSE

Only keep messages received after this value. Accepted formats: unix timestamp, `YYYY-MM-DD`, or `YYYY-MM-DD HH:MM:SS`. Keep only messages received after this value. Accepted forms: unix timestamp, `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS`.

Validation and use:

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

Alias of `offset`.

Validation and use:

subjectOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
SUBJECT_FROM_LIST_RESPONSE

Case-insensitive subject substring filter.

Validation and use:

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

Filter by read state: `1/true/on/unread` or `0/false/off/read`. Filter by read state. Accepted true values: `1`, `true`, `on`, `unread`. Accepted false values: `0`, `false`, `off`, `read`.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "folder": "INBOX",
    "from": "billing@example.net",
    "limit": 20,
    "offset": 0,
    "q": "invoice",
    "search": "account",
    "since": "SINCE_FROM_LIST_RESPONSE",
    "start": 0,
    "subject": "SUBJECT_FROM_LIST_RESPONSE",
    "unread": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/1/messages/search' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"q":"invoice","limit":20}'

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.

Search invoices across all folders
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "q": "invoice",
    "limit": 20
  }
}

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

Search unread from one sender in INBOX
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "folder": "INBOX",
    "from": "billing@example.net",
    "unread": 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/accounts/{username}/emails/{id}/messages/sendroot reseller userSend an email from the selected mailbox.

Before you start

Check delivery warnings before retrying. If only some recipients were rejected, retry those recipients only. A failure to save the Sent copy does not mean the email was not delivered.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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. GET /v1/accounts/{username}/emails

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.

toRequired
Send in
JSON body
Type
string|array
Accepted values
Any value matching string|array
Example
["owner@example.net"]

Recipient list. Accepts a single email string, a comma-separated string, or an array of email addresses. Accepts one email string, a comma-separated string, or an array of email addresses.

Validation and use:

bccOptional
Send in
JSON body
Type
string|array
Accepted values
Any value matching string|array
Example
BCC_FROM_LIST_RESPONSE

Optional BCC recipient list. Accepts the same formats as `to`. Optional BCC recipients. Same formats as `to`.

Validation and use:

ccOptional
Send in
JSON body
Type
string|array
Accepted values
Any value matching string|array
Example
["team@example.net"]

Optional CC recipient list. Accepts the same formats as `to`. Optional CC recipients. Same formats as `to`.

Validation and use:

htmlOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
HTML_FROM_LIST_RESPONSE

Alias of `html_body`.

Validation and use:

html_bodyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
<p><strong>Summary</strong></p><p>The mailbox API test completed successfully.</p>

Optional HTML body. Alias: `html`.

Validation and use: Needed when: body.

reply_toOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
REPLY_TO_FROM_LIST_RESPONSE

Optional Reply-To address.

Validation and use:

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

Set to `0/false/off` to skip saving a Sent copy. Default: `1`.

Validation and use:

subjectOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Status update

Message subject. Header newlines are stripped. Header newlines are stripped automatically.

Validation and use:

textOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TEXT_FROM_LIST_RESPONSE

Alias of `text_body`.

Validation and use:

text_bodyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Hello, The mailbox API test completed successfully.

Plain-text body. Required when `html_body` is omitted. Alias: `text`.

Validation and use: Needed when: body.

Complete 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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "to": [
      "owner@example.net"
    ],
    "bcc": "BCC_FROM_LIST_RESPONSE",
    "cc": [
      "team@example.net"
    ],
    "html": "HTML_FROM_LIST_RESPONSE",
    "html_body": "<p><strong>Summary</strong></p><p>The mailbox API test completed successfully.</p>",
    "reply_to": "REPLY_TO_FROM_LIST_RESPONSE",
    "save_to_sent": 1,
    "subject": "Status update",
    "text": "TEXT_FROM_LIST_RESPONSE",
    "text_body": "Hello,\n\nThe mailbox API test completed successfully.\n"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/1/messages/send' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"to":["owner@example.net"],"subject":"Status update","text_body":"Hello,\n\nThe mailbox API test completed successfully.\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.

Send plain-text message
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "to": [
      "owner@example.net"
    ],
    "subject": "Status update",
    "text_body": "Hello,\n\nThe mailbox API test completed successfully.\n"
  }
}

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

Send multipart message with HTML
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "to": "owner@example.net",
    "cc": [
      "team@example.net"
    ],
    "subject": "HTML summary",
    "text_body": "See the HTML version for the formatted summary.",
    "html_body": "<p><strong>Summary</strong></p><p>The mailbox API test completed successfully.</p>",
    "save_to_sent": 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/accounts/{username}/emails/autorespondersroot reseller userList mailbox automatic replies.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

emailOptional
Send in
Query string
Type
email
Accepted values
Any value matching email
Example
team@example.com

Optional mailbox filter by email address; omit it to list all auto responders. Optional mailbox address filter used when email_id is omitted.

Validation and use:

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

Optional mailbox filter by numeric mailbox id. Optional exact mailbox id filter.

Validation and use: GET /v1/accounts/{username}/emails

Complete 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": {
    "email": "team@example.com",
    "email_id": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/autoresponders?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 all autoresponders
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

List one mailbox responder
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo",
    "email": "team@example.com"
  },
  "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/accounts/{username}/emails/autorespondersroot reseller userCreate mailbox automatic reply.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (14)

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.

bodyRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
<p>Hello {{sender_name}},</p><p>Thank you for contacting {{custom.company_name}}. We will reply as soon as possible.</p><p>Regards,<br>{{mailbox_email}}</p>

Auto responder message body. Supports the complete documented variable catalog in plain-text or HTML mode. Unknown tokens remain literal. Plain-text or HTML body template. Supports every automatic, custom, and legacy token returned by the catalog.

Validation and use:

subjectRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Out of office: {{original_subject}}

Auto responder subject line. Supports `{{original_subject}}`, `{{sender_name}}`, `{{sender_email}}`, `{{mailbox_email}}`, `{{mailbox_name}}`, and `{{mailbox_domain}}`; legacy `%subject%`, `%from%`, and `%email%` aliases are also accepted. Subject template. Supports every automatic, custom, and legacy token returned by the catalog.

Validation and use:

charsetOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UTF-8

Optional MIME charset for HTML autoresponder bodies; defaults to UTF-8. HTML MIME charset; defaults to UTF-8. Letters, digits, dot, underscore, and hyphen only.

Validation and use:

custom_variablesOptional
Send in
JSON body
Type
object<string,string>
Accepted values
Any value matching object<string,string>
Example
{"company_name":"Example Team"}

Object with up to 25 user-defined values. Names must match `^[a-z][a-z0-9_]{0,39}$`; values are non-empty strings up to 2048 bytes each and 16384 bytes total. Insert them as `{{custom.variable_name}}` in subject or body. Up to 25 saved values. Names must match ^[a-z][a-z0-9_]{0,39}$; every value is non-empty, at most 2048 bytes, and all values together are at most 16384 bytes. Insert a value with {{custom.variable_name}} in subject or body.

Validation and use:

emailConditional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
team@example.com

Mailbox email address. Use this or `email_id`. Existing mailbox address. Use this or email_id.

Validation and use: Needed when: required if email id is omitted.

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

Mailbox id. Use this or `email`. Existing mailbox id. Use this or email.

Validation and use: GET /v1/accounts/{username}/emails Needed when: required if email is omitted.

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

Set to `1` to enable or `0` to disable without deleting. Enable immediately; defaults to 1.

Validation and use:

ends_atOptional
Send in
JSON body
Type
string|yyyy-mm-ddthh:mm
Accepted values
Any value matching string|yyyy-mm-ddthh:mm
Example
2026-07-20T09:00

Optional `YYYY-MM-DDTHH:MM` local end time. Local server end time; empty means never. Must be later than starts_at when both are supplied.

Validation and use:

from_addressOptional
Send in
JSON body
Type
string|email|display-name address
Accepted values
Any value matching string|email|display-name address
Example
FROM_ADDRESS_FROM_LIST_RESPONSE

Optional reply-from address or display-name address; defaults to the mailbox address. Reply identity as email or Display Name <email>; defaults to the mailbox.

Validation and use:

interval_hoursOptional
Send in
JSON body
Type
string|integer 0..8760
Accepted values
Any value matching string|integer 0..8760
Example
24

Vacation resend interval in hours. `0` replies to every received message. Hours between replies to the same sender. Zero replies to every eligible message. Defaults to 24.

Validation and use:

interval_secondsOptional
Send in
JSON body
Type
string|integer 0..31536000
Accepted values
Any value matching string|integer 0..31536000
Example
86400

Optional exact vacation resend interval in seconds, retained for imported and API-created responders. Exact interval override, retained for imported responders and API callers.

Validation and use:

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

Set to `1` when the body should be sent as HTML. Send body as HTML MIME when true; defaults to plain text.

Validation and use:

starts_atOptional
Send in
JSON body
Type
string|yyyy-mm-ddthh:mm
Accepted values
Any value matching string|yyyy-mm-ddthh:mm
Example
2026-07-10T17:00

Optional `YYYY-MM-DDTHH:MM` local start time. Local server start time; empty means immediately.

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": {
    "body": "<p>Hello {{sender_name}},</p><p>Thank you for contacting {{custom.company_name}}. We will reply as soon as possible.</p><p>Regards,<br>{{mailbox_email}}</p>",
    "subject": "Out of office: {{original_subject}}",
    "charset": "UTF-8",
    "custom_variables": {
      "company_name": "Example Team"
    },
    "email": "team@example.com",
    "email_id": 1,
    "enabled": 1,
    "ends_at": "2026-07-20T09:00",
    "from_address": "FROM_ADDRESS_FROM_LIST_RESPONSE",
    "interval_hours": 24,
    "interval_seconds": 86400,
    "is_html": 1,
    "starts_at": "2026-07-10T17:00"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/autoresponders' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"email":"team@example.com","enabled":1,"interval_hours":24,"from_address":"FROM_ADDRESS_FROM_LIST_RESPONSE","subject":"Out of office: {{original_subject}}","body":"<p>Hello {{sender_name}},</p><p>Thank you for contacting {{custom.company_name}}. We will reply as soon as possible.</p><p>Regards,<br>{{mailbox_email}}</p>","is_html":1,"charset":"UTF-8","custom_variables":{"company_name":"Example Team"},"starts_at":"2026-07-10T17:00","ends_at":"2026-07-20T09:00"}'

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 professional HTML out-of-office responder
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "team@example.com",
    "enabled": 1,
    "interval_hours": 24,
    "from_address": "FROM_ADDRESS_FROM_LIST_RESPONSE",
    "subject": "Out of office: {{original_subject}}",
    "body": "<p>Hello {{sender_name}},</p><p>Thank you for contacting {{custom.company_name}}. We will reply as soon as possible.</p><p>Regards,<br>{{mailbox_email}}</p>",
    "is_html": 1,
    "charset": "UTF-8",
    "custom_variables": {
      "company_name": "Example Team"
    },
    "starts_at": "2026-07-10T17:00",
    "ends_at": "2026-07-20T09:00"
  }
}

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

Create a responder using legacy aliases
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email_id": 1,
    "interval_hours": 0,
    "subject": "Re: %subject%",
    "body": "Hello %from%, your message from %email% was received.",
    "is_html": 0
  }
}

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

Professional HTML out of office with a custom value
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "team@example.com",
    "enabled": 1,
    "interval_hours": 24,
    "from_address": "FROM_ADDRESS_FROM_LIST_RESPONSE",
    "subject": "Out of office: {{original_subject}}",
    "body": "<p>Hello {{sender_name}},</p><p>Thank you for contacting {{custom.company_name}}. We will reply after we return.</p><p>{{mailbox_email}}</p>",
    "is_html": 1,
    "charset": "UTF-8",
    "custom_variables": {
      "company_name": "Example Team"
    }
  }
}

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

Responder using legacy aliases
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email_id": 1,
    "interval_hours": 0,
    "subject": "Re: %subject%",
    "body": "Hello %from%, we received your email from %email%.",
    "is_html": 0
  }
}

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/accounts/{username}/emails/autoresponders/{id}root reseller userDelete mailbox automatic reply.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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. GET /v1/accounts/{username}/emails

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.

emailOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
admin@example.com

Email address. Optional mailbox email address to narrow deletion to a specific mailbox. Optional expected mailbox address when email_id is omitted.

Validation and use:

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

Optional mailbox id to narrow deletion to a specific mailbox. Optional expected mailbox id.

Validation and use: GET /v1/accounts/{username}/emails

Complete 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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "email": "admin@example.com",
    "email_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/autoresponders/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"email_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.

Delete one autoresponder
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email_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."
}
PATCH/v1/accounts/{username}/emails/autoresponders/{id}root reseller userEdit mailbox automatic reply.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (15)

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. GET /v1/accounts/{username}/emails

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.

bodyOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Hello {{sender_name}},\n\nWe will respond {{custom.response_time}}.\n\n{{mailbox_email}}

Auto responder message body. Supports every preferred and legacy variable returned by the autoresponder catalog endpoint; unknown tokens remain literal. Body template with automatic, custom, or legacy variables.

Validation and use:

charsetOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UTF-8

Optional MIME charset for HTML autoresponder bodies; defaults to UTF-8. HTML MIME charset.

Validation and use:

custom_variablesOptional
Send in
JSON body
Type
object<string,string>
Accepted values
Any value matching object<string,string>
Example
{"response_time":"within one business day"}

Replacement object for all saved custom variables. Send `{}` to clear them. Names and values use the same limits as create. Omit this field to preserve existing custom variables. Complete replacement custom-variable object using the create limits. Send {} to clear it; omit it to preserve current values.

Validation and use:

emailOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
admin@example.com

Email address. Optional mailbox email address when moving the auto responder. Mailbox-address alternative to email_id.

Validation and use:

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

Optional mailbox id when moving the auto responder. Move the responder to another existing mailbox id.

Validation and use: GET /v1/accounts/{username}/emails

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

Set to `1` to enable or `0` to disable. Enable or disable without deleting.

Validation and use:

ends_atOptional
Send in
JSON body
Type
string|yyyy-mm-ddthh:mm
Accepted values
Any value matching string|yyyy-mm-ddthh:mm
Example
ENDS_AT_FROM_LIST_RESPONSE

Optional `YYYY-MM-DDTHH:MM` local end time. Local server end time; empty clears it.

Validation and use:

from_addressOptional
Send in
JSON body
Type
string|email|display-name address
Accepted values
Any value matching string|email|display-name address
Example
FROM_ADDRESS_FROM_LIST_RESPONSE

Optional reply-from address or display-name address; defaults to the mailbox address. Reply identity as email or Display Name <email>.

Validation and use:

interval_hoursOptional
Send in
JSON body
Type
string|integer 0..8760
Accepted values
Any value matching string|integer 0..8760
Example
24

Vacation resend interval in hours. `0` replies to every received message. Hours between replies; zero replies to every eligible message.

Validation and use:

interval_secondsOptional
Send in
JSON body
Type
string|integer 0..31536000
Accepted values
Any value matching string|integer 0..31536000
Example
86400

Optional exact vacation resend interval in seconds, retained for imported and API-created responders. Exact interval override.

Validation and use:

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

Set to `1` when the body should be sent as HTML. Switch between HTML and plain text.

Validation and use:

starts_atOptional
Send in
JSON body
Type
string|yyyy-mm-ddthh:mm
Accepted values
Any value matching string|yyyy-mm-ddthh:mm
Example
STARTS_AT_FROM_LIST_RESPONSE

Optional `YYYY-MM-DDTHH:MM` local start time. Local server start time; empty clears it.

Validation and use:

subjectOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
We received: {{original_subject}}

Auto responder subject line. Supports every preferred and legacy variable returned by the autoresponder catalog endpoint. Subject template with automatic, custom, or legacy variables.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "body": "Hello {{sender_name}},\\n\\nWe will respond {{custom.response_time}}.\\n\\n{{mailbox_email}}",
    "charset": "UTF-8",
    "custom_variables": {
      "response_time": "within one business day"
    },
    "email": "admin@example.com",
    "email_id": 1,
    "enabled": 1,
    "ends_at": "ENDS_AT_FROM_LIST_RESPONSE",
    "from_address": "FROM_ADDRESS_FROM_LIST_RESPONSE",
    "interval_hours": 24,
    "interval_seconds": 86400,
    "is_html": 0,
    "starts_at": "STARTS_AT_FROM_LIST_RESPONSE",
    "subject": "We received: {{original_subject}}"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/autoresponders/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"subject":"We received: {{original_subject}}","body":"Hello {{sender_name}},\\n\\nWe will respond {{custom.response_time}}.\\n\\n{{mailbox_email}}","is_html":0,"charset":"UTF-8","custom_variables":{"response_time":"within one business day"}}'

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 message content with dynamic variables
{
  "path_parameters": {
    "id": 1
  },
  "query_parameters": {},
  "json_body": {
    "subject": "We received: {{original_subject}}",
    "body": "Hello {{sender_name}},\\n\\nWe will respond {{custom.response_time}}.\\n\\n{{mailbox_email}}",
    "is_html": 0,
    "charset": "UTF-8",
    "custom_variables": {
      "response_time": "within one business day"
    }
  }
}

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

Update template content and custom values
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "subject": "We received: {{original_subject}}",
    "body": "Hello {{sender_name}},\\n\\nWe will respond {{custom.response_time}}.\\n\\n{{mailbox_email}}",
    "is_html": 0,
    "charset": "UTF-8",
    "custom_variables": {
      "response_time": "within one business day"
    }
  }
}

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/accounts/{username}/emails/autoresponders/catalogroot reseller userBrowse automatic-reply templates and the details you can personalize.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/emails/autoresponders/catalog' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Load templates and variables before authoring an autoresponder
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Load templates and variables
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Successful result

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

FieldDocumented type or shape
catalog_versioninteger catalog contract version.
preferred_syntaxstring naming the preferred double-brace variable syntax.
variablesarray of token, legacy_alias, label, description, value_source, automatic, dynamic, and allowed_in metadata.
custom_variablesobject describing token format, name validation, count limit, and per-value/total size limits.
templatesarray of id, name, description, subject, body, is_html, charset, and recommended_interval_hours presets.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/emails/autoresponders/tableroot reseller userSearch or browse your automatic email replies.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/autoresponders/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/emails/autoresponders/tableroot reseller userSearch or browse your automatic email replies.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/autoresponders/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/accounts/{username}/emails/filtersroot reseller userList email filters.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

emailOptional
Send in
Query string
Type
email|string
Accepted values
Any value matching email|string
Example
info@example.com

Optional mailbox filter by email address; omit it to list all filters. Mailbox address alternative to email_id.

Validation and use:

email_idOptional
Send in
Query string
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Optional mailbox filter by numeric mailbox id. Mailbox id to list mailbox-specific filters.

Validation and use: GET /v1/accounts/{username}/emails

scopeOptional
Send in
Query string
Type
enum
Accepted values
mailbox, global
Example
global

Optional filter scope. Use global to list account-wide filters or mailbox to list mailbox-specific filters. Allowed values: global or mailbox. Use global to list account-wide filters only.

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": {
    "email": "info@example.com",
    "email_id": 1,
    "scope": "global"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/filters' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"scope":"global"}'

Example note: Requires a documented runtime value 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 global filters
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "scope": "global"
  }
}

Requires a documented runtime value before QA can execute this request.

List one mailbox filters
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "info@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."
}
POST/v1/accounts/{username}/emails/filtersroot reseller userCreate email filter.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (14)

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.

filter_nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Global sender block

Filter display name. Filter display name (unique per scope/mailbox).

Validation and use:

rulesRequired
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
[{"field":"from","operator":"contains","value":"bulk-mailer.example"}]

Rule list. At least one filter rule definition. Array of rules. Canonical rule keys: field, operator, value. Legacy keys also accepted: part, match, val.

Validation and use:

actionOptional
Send in
JSON body
Type
enum
Accepted values
discard, deliver, redirect, fail, pipe, stop
Example
discard

Alias of `filter_action`. Alias of filter_action. Allowed values: discard, deliver, redirect, fail, pipe, stop.

Validation and use:

action_extraOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
accounting@example.com

Required only for `deliver`, `redirect`, `fail`, or `pipe` actions. Required for deliver, redirect, fail, or pipe.

Validation and use:

actionsOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
ACTIONS_FROM_LIST_RESPONSE

Structured action payload. Optional alternative to `filter_action` / `action`. Alternative legacy actions payload (advanced): actions[0].action + actions[0].dest.

Validation and use:

emailConditional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
sales@example.com

Mailbox email address. Required for mailbox scope unless email_id is provided. Omit for global scope. Mailbox address for mailbox scope (alternative to email_id).

Validation and use: Choose the account or resource you want to use.

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

Mailbox id. Required for mailbox scope unless email is provided. Omit for global scope. Mailbox id for mailbox scope (preferred). Alternative: email.

Validation and use: GET /v1/accounts/{username}/emails Choose the account or resource you want to use.

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

1 to enable filter (default 1).

Validation and use:

filter_actionOptional
Send in
JSON body
Type
enum
Accepted values
discard, deliver, redirect, fail, pipe, stop
Example
discard

Simple action name. Defaults to `discard` when omitted. Allowed values: discard, deliver, redirect, fail, pipe, stop. If the selected action requires a target, also send action_extra. Alias accepted: action (legacy).

Validation and use:

filter_scopeOptional
Send in
JSON body
Type
enum
Accepted values
mailbox, global
Example
mailbox

Alias of scope, accepted by UI forms. Alias of scope, used by UI forms. Allowed values: mailbox, global.

Validation and use:

globalOptional
Send in
JSON body
Type
enum
Accepted values
0, 1
Example
0

Boolean alias for scope=global. Allowed values: 0, 1.

Validation and use:

logicalOptional
Send in
JSON body
Type
enum
Accepted values
and, or
Example
or

Allowed values: or, and.

Validation and use:

scopeOptional
Send in
JSON body
Type
enum
Accepted values
mailbox, global
Example
global

Filter scope: mailbox (default) or global. Global filters apply to every mailbox on the account. Allowed values: mailbox (default) or global.

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": {
    "filter_name": "Global sender block",
    "rules": [
      {
        "field": "from",
        "operator": "contains",
        "value": "bulk-mailer.example"
      }
    ],
    "action": "discard",
    "action_extra": "accounting@example.com",
    "actions": "ACTIONS_FROM_LIST_RESPONSE",
    "email": "sales@example.com",
    "email_id": 1,
    "enabled": 1,
    "filter_action": "discard",
    "filter_scope": "mailbox",
    "global": 0,
    "logical": "or",
    "scope": "global"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/filters' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"scope":"global","filter_name":"Global sender block","logical":"or","rules":[{"field":"from","operator":"contains","value":"bulk-mailer.example"}],"filter_action":"discard"}'

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.

Discard sender globally
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "scope": "global",
    "filter_name": "Global sender block",
    "logical": "or",
    "rules": [
      {
        "field": "from",
        "operator": "contains",
        "value": "bulk-mailer.example"
      }
    ],
    "filter_action": "discard"
  }
}

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

Discard spam-like messages
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "sales@example.com",
    "filter_name": "Discard obvious spam",
    "logical": "or",
    "rules": [
      {
        "field": "subject",
        "operator": "contains",
        "value": "[SPAM]"
      },
      {
        "field": "from",
        "operator": "contains",
        "value": "bulk-mailer.example"
      }
    ],
    "filter_action": "discard"
  }
}

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

Redirect invoices to another mailbox
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "billing@example.com",
    "filter_name": "Forward invoices",
    "rules": [
      {
        "field": "subject",
        "operator": "contains",
        "value": "Invoice"
      }
    ],
    "filter_action": "redirect",
    "action_extra": "accounting@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/accounts/{username}/emails/filters/{id}root reseller userDelete email filter.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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. GET /v1/accounts/{username}/emails

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.

emailOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
info@example.com

Email address. Optional mailbox email address to narrow deletion to a specific mailbox. Mailbox address alternative to email_id (omit the field entirely if not using it).

Validation and use:

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

Optional mailbox id to narrow deletion to a specific mailbox. Mailbox id. If provided, the filter is deleted only if it belongs to this mailbox.

Validation and use: GET /v1/accounts/{username}/emails

scopeOptional
Send in
JSON body
Type
enum
Accepted values
mailbox, global
Example
mailbox

Optional guard: global deletes only a global filter; mailbox deletes only mailbox-specific filters. Optional guard: global or mailbox. Allowed values: mailbox, global.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "email": "info@example.com",
    "email_id": 1,
    "scope": "mailbox"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/filters/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 by filter id only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Delete with mailbox guard
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "info@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."
}
PATCH/v1/accounts/{username}/emails/filters/{id}root reseller userEdit email filter.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (14)

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. GET /v1/accounts/{username}/emails

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.

action_extraOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ACTION_EXTRA_FROM_LIST_RESPONSE

Action target/extra data for actions that require it.

Validation and use:

actionsOptional
Send in
JSON body
Type
array
Accepted values
Any value matching array
Example
ACTIONS_FROM_LIST_RESPONSE

Legacy actions payload (advanced).

Validation and use:

emailOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
admin@example.com

Email address. Optional mailbox email address when moving the filter to another mailbox. Change mailbox by email address (optional).

Validation and use:

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

Optional mailbox id when moving the filter to another mailbox. Change mailbox by id (optional). Alternative: email.

Validation and use: GET /v1/accounts/{username}/emails

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

1 enable, 0 disable.

Validation and use:

filter_actionOptional
Send in
JSON body
Type
enum
Accepted values
discard, deliver, redirect, fail, pipe, stop
Example
discard

Action name. Prefer filter_action. Alias accepted: action (legacy). Allowed values: discard, deliver, redirect, fail, pipe, stop.

Validation and use:

filter_nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FILTER_NAME_FROM_LIST_RESPONSE

Filter name (must not be empty).

Validation and use:

filter_scopeOptional
Send in
JSON body
Type
enum
Accepted values
mailbox, global
Example
mailbox

Alias of scope, accepted by UI forms. Alias of scope, used by UI forms. Allowed values: mailbox, global.

Validation and use:

globalOptional
Send in
JSON body
Type
enum
Accepted values
0, 1
Example
0

Boolean alias for scope=global. Allowed values: 0, 1.

Validation and use:

logicalOptional
Send in
JSON body
Type
enum
Accepted values
and, or
Example
and

and|or. Allowed values: and, or.

Validation and use:

rulesOptional
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
[]

Rule list. Rules array (if provided must be a non-empty array).

Validation and use:

scopeOptional
Send in
JSON body
Type
enum
Accepted values
mailbox, global
Example
mailbox

Change filter scope to mailbox or global. Moving from global to mailbox requires email_id or email. Change scope to mailbox or global. Moving a global filter to mailbox scope requires email_id or email. Allowed values: mailbox, global.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "action_extra": "ACTION_EXTRA_FROM_LIST_RESPONSE",
    "actions": "ACTIONS_FROM_LIST_RESPONSE",
    "email": "admin@example.com",
    "email_id": 1,
    "enabled": 0,
    "filter_action": "discard",
    "filter_name": "FILTER_NAME_FROM_LIST_RESPONSE",
    "filter_scope": "mailbox",
    "global": 0,
    "logical": "and",
    "rules": [],
    "scope": "mailbox"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/filters/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"enabled":0}'

Example note: Requires a documented runtime value 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.

Disable filter
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "enabled": 0
  }
}

Requires a documented runtime value 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/accounts/{username}/emails/filters/tableroot reseller userSearch or browse your email filters.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/filters/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/emails/filters/tableroot reseller userSearch or browse your email filters.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/filters/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/accounts/{username}/emails/forwardersroot reseller userList email forwarders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/emails/forwarders' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/emails/forwardersroot reseller userCreate email forwarder.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

destinationRequired
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
owner@example.net

Destination value or redirect target. Alias of `target`. Destination email address. Alias: target.

Validation and use:

sourceRequired
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
sales@example.com

Source email address under a managed domain. Use `*@example.com` for catch-all/default-address forwarding. Source email address under an account-managed domain. Use `*@example.com` for a catch-all/default-address forwarder on a managed domain. Other wildcard patterns are rejected.

Validation and use:

targetRequired
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
TARGET_FROM_LIST_RESPONSE

Destination email address. Alias of destination. Prefer destination.

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": {
    "destination": "owner@example.net",
    "source": "sales@example.com",
    "target": "TARGET_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/forwarders' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"source":"sales@example.com","destination":"owner@example.net","target":"TARGET_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.

Forward sales@ to owner@
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source": "sales@example.com",
    "destination": "owner@example.net"
  }
}

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

Forward all unmatched mail for a domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "source": "*@example.com",
    "destination": "catchall@example.net"
  }
}

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/accounts/{username}/emails/forwarders/{id}root reseller userDelete email forwarder.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/emails

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/forwarders/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/emails/forwarders/{id}root reseller userEdit email forwarder.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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. GET /v1/accounts/{username}/emails

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.

destinationOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
new-owner@example.net

Destination value or redirect target. Alias of `target`. Destination email address. Alias: target.

Validation and use:

sourceOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
SOURCE_FROM_LIST_RESPONSE

Source email address under a managed domain. Use `*@example.com` for catch-all/default-address forwarding. Source email address. Use `*@example.com` only for catch-all/default-address forwarding on a managed domain.

Validation and use:

targetOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
TARGET_FROM_LIST_RESPONSE

Destination email address. Alias of destination. Prefer destination.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "destination": "new-owner@example.net",
    "source": "SOURCE_FROM_LIST_RESPONSE",
    "target": "TARGET_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/forwarders/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"destination":"new-owner@example.net"}'

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 destination
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "destination": "new-owner@example.net"
  }
}

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/accounts/{username}/emails/forwarders/tableroot reseller userSearch or browse your email forwarders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/forwarders/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/emails/forwarders/tableroot reseller userSearch or browse your email forwarders.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/forwarders/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/accounts/{username}/emails/mailing-listsroot reseller userList Mailman mailing lists.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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_userRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Owner account username for the legacy endpoint. Canonical endpoint uses {username} in the path.

Validation and use:

addressOptional
Send in
Query string
Type
email|string
Accepted values
Any value matching email|string
Example
ADDRESS_FROM_LIST_RESPONSE

Optional mailing list address filter. Optional list address filter.

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": {
    "account_user": "demo",
    "address": "ADDRESS_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 mailing lists
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/mailing-listsroot reseller userCreate Mailman mailing list.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (11)

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_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Owner account username for the legacy endpoint. Canonical endpoint uses {username} in the path.

Validation and use:

addressRequired
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
news@example.com

Mailing list address under an account-managed mail domain. Mailing list address, for example news@example.com.

Validation and use:

emailOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin@example.com

Email address.

Validation and use:

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

1 to route list traffic through Exim/Mailman, 0 to keep it disabled. 1 enables Exim routing to Mailman, 0 keeps the list disabled.

Validation and use:

header_matchesOptional
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
[{"header":"subject","pattern":"[SPAM]","action":"hold","enabled":1}]

Optional array of header match rules with header, pattern, action, enabled. Actions: accept, hold, reject, discard. Header rules. Each row accepts header, pattern, action, and enabled. Actions are accept, hold, reject, discard.

Validation and use:

membersOptional
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
[{"email":"member@example.net"}]

Optional array of member rows or email strings. Optional members. Each row can be an email string or an object with email/status.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
News

Display name for the list. Display name.

Validation and use:

ownerOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
owner@example.com

Owner username or owner filter. List owner email address; defaults to the list address.

Validation and use:

owner_emailOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin@example.com

Validation and use:

settingsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"archive_policy":"private","subscription_policy":"moderate","default_nonmember_action":"hold"}

Optional Mailman settings object. Supported keys: advertised, archive_policy, subscription_policy, unsubscription_policy, default_member_action, default_nonmember_action, digests_enabled, dmarc_moderation_notice, autorespond_postings, autoresponse_postings_text, newsgroup_moderation, max_message_size, max_num_recipients. Mailman settings: advertised, archive_policy, subscription_policy, unsubscription_policy, default_member_action, default_nonmember_action, digests_enabled, dmarc_moderation_notice, autorespond_postings, autoresponse_postings_text, newsgroup_moderation, max_message_size, max_num_recipients.

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": {
    "account_user": "demo",
    "address": "news@example.com",
    "email": "admin@example.com",
    "enabled": 1,
    "header_matches": [
      {
        "header": "subject",
        "pattern": "[SPAM]",
        "action": "hold",
        "enabled": 1
      }
    ],
    "members": [
      {
        "email": "member@example.net"
      }
    ],
    "name": "News",
    "owner": "owner@example.com",
    "owner_email": "admin@example.com",
    "settings": {
      "archive_policy": "private",
      "subscription_policy": "moderate",
      "default_nonmember_action": "hold"
    }
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"address":"news@example.com","name":"News","owner":"owner@example.com","enabled":1,"members":[{"email":"member@example.net"}],"settings":{"archive_policy":"private","subscription_policy":"moderate","default_nonmember_action":"hold"},"header_matches":[{"header":"subject","pattern":"[SPAM]","action":"hold","enabled":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.

Create mailing list
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "address": "news@example.com",
    "name": "News",
    "owner": "owner@example.com",
    "enabled": 1,
    "members": [
      {
        "email": "member@example.net"
      }
    ],
    "settings": {
      "archive_policy": "private",
      "subscription_policy": "moderate",
      "default_nonmember_action": "hold"
    },
    "header_matches": [
      {
        "header": "subject",
        "pattern": "[SPAM]",
        "action": "hold",
        "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."
}
DELETE/v1/accounts/{username}/emails/mailing-lists/{id}root reseller userDelete Mailman mailing list.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/emails

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 list
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/mailing-lists/{id}root reseller userEdit Mailman mailing list.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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. GET /v1/accounts/{username}/emails

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_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Owner account username for the legacy endpoint. Canonical endpoint uses {username} in the path.

Validation and use:

addressOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
ADDRESS_FROM_LIST_RESPONSE

Optional new mailing list address under an account-managed mail domain. Optional new list address.

Validation and use:

emailOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin@example.com

Email address.

Validation and use:

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

1 to enable routing, 0 to disable routing. 1 enables Exim routing, 0 disables it.

Validation and use:

header_matchesOptional
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
HEADER_MATCHES_FROM_LIST_RESPONSE

Optional full replacement array of header match rules. Omit the field to keep current rules. Full replacement header rule array. Omit this field to keep existing rules.

Validation and use:

membersOptional
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
MEMBERS_FROM_LIST_RESPONSE

Optional full replacement member array. Optional full replacement member list.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Display name for the list. Display name.

Validation and use:

ownerOptional
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
OWNER_FROM_LIST_RESPONSE

Owner username or owner filter. List owner email address.

Validation and use:

owner_emailOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin@example.com

Validation and use:

settingsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"default_nonmember_action":"discard"}

Optional partial Mailman settings object. Omitted keys keep their current values.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "address": "ADDRESS_FROM_LIST_RESPONSE",
    "email": "admin@example.com",
    "enabled": 0,
    "header_matches": "HEADER_MATCHES_FROM_LIST_RESPONSE",
    "members": "MEMBERS_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "owner": "OWNER_FROM_LIST_RESPONSE",
    "owner_email": "admin@example.com",
    "settings": {
      "default_nonmember_action": "discard"
    }
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"enabled":0,"account_user":"demo"}'

Example note: Requires a documented runtime value 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.

Disable list
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "enabled": 0
  }
}

Requires a documented runtime value before QA can execute this request.

Change moderation
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "settings": {
      "default_nonmember_action": "discard"
    }
  }
}

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/accounts/{username}/emails/mailing-lists/{id}/membersroot reseller userAdd Mailman mailing list member.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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. GET /v1/accounts/{username}/emails

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_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo

Owner account username for the legacy endpoint. Canonical endpoint uses {username} in the path.

Validation and use:

emailRequired
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
member@example.net

Member email address.

Validation and use:

memberOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MEMBER_FROM_LIST_RESPONSE

Validation and use:

statusOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STATUS_FROM_LIST_RESPONSE

Optional member status, defaults to enabled. Optional member status; defaults to 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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "account_user": "demo",
    "email": "member@example.net",
    "member": "MEMBER_FROM_LIST_RESPONSE",
    "status": "STATUS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists/1/members' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"email":"member@example.net","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.

Add member
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "email": "member@example.net"
  }
}

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/accounts/{username}/emails/mailing-lists/{id}/members/{member_id}root reseller userDelete Mailman mailing list member.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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. GET /v1/accounts/{username}/emails

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

Member 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/accounts/{username}/emails

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": {
    "id": 1,
    "member_id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists/1/members/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 member
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/mailing-lists/tableroot reseller userSearch or browse your mailing lists.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account; resellers only owned accounts; users only their own account.

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

collectionOptional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Only for `/resources/table`: resource collection to read. Common values: `domains`, `dns_domains`, `mail_domains`, `ftp_domains`, `email_accounts`, `ftp_accounts`, `email_forwarders`, `email_mailing_lists`, `email_filters`, `email_autoresponders`, `email_spam_rules`, `databases`, `database_users`, `postgresql_databases`, `postgresql_users`, `ip_access`, `web_settings`, `php_runtime`, `cache_targets`. Allowed values: domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets.

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.

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

Set to `1` for a compact list projection. Mailing-list rows omit the potentially large members array while preserving `member_count`; fetch the exact record without compact mode when editing.

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.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Alias of `type_filter` for domain table callers.

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.

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

DataTables draw counter echoed back unchanged.

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.

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

Optional exact mailbox id filter for mailbox-scoped indexed resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

Set to `1` for database collections to enrich only the returned page with current database sizes in one batch query.

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.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Alias of `type_filter` used by lightweight selectors.

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
integer
Accepted values
Any value matching integer
Example
25

Maximum rows to return. Defaults to 100 and is limited by the native index reader.

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.

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

Alias of `email_id`.

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. GET /v1/accounts/{username}/emails

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
ORDER_BY_FROM_LIST_RESPONSE

Sort field. Defaults to `sort_key`; the email accounts table also supports `address` and numeric `storage_usage`.

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.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction for the selected order field. Allowed values: `asc`, `desc`. Defaults to `asc`.

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.

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

Optional exact indexed resource identifier. Useful for loading one full record after a compact list row is selected.

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. GET /v1/accounts/{username}/emails

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `search` for DataTables integrations.

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.

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

For cache target collections, filter the entire indexed result by server-cache state: `1` for enabled or `0` for disabled.

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
integer
Accepted values
Any value matching integer
Example
0

Zero-based result offset. Defaults to 0.

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.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values include `main`, `addon`, `subdomain`, `parked`; email filter values include `global` and `mailbox`; spam values include `whitelist` and `blacklist`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": 1,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": 1,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 25,
    "mailbox_id": 1,
    "order_by": "ORDER_BY_FROM_LIST_RESPONSE",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/mailing-lists/tableroot reseller userSearch or browse your mailing lists.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account; resellers only owned accounts; users only their own account.

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

collectionOptional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Only for `/resources/table`: resource collection to read. Common values: `domains`, `dns_domains`, `mail_domains`, `ftp_domains`, `email_accounts`, `ftp_accounts`, `email_forwarders`, `email_mailing_lists`, `email_filters`, `email_autoresponders`, `email_spam_rules`, `databases`, `database_users`, `postgresql_databases`, `postgresql_users`, `ip_access`, `web_settings`, `php_runtime`, `cache_targets`. Allowed values: domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets.

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.

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

Set to `1` for a compact list projection. Mailing-list rows omit the potentially large members array while preserving `member_count`; fetch the exact record without compact mode when editing.

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.

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

Alias of `type_filter` for domain table callers.

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.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

DataTables draw counter echoed back unchanged.

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.

email_idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

Optional exact mailbox id filter for mailbox-scoped indexed resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

Set to `1` for database collections to enrich only the returned page with current database sizes in one batch query.

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.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Alias of `type_filter` used by lightweight selectors.

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
JSON body
Type
integer
Accepted values
Any value matching integer
Example
25

Maximum rows to return. Defaults to 100 and is limited by the native index reader.

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.

mailbox_idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

Alias of `email_id`.

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. GET /v1/accounts/{username}/emails

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ORDER_BY_FROM_LIST_RESPONSE

Sort field. Defaults to `sort_key`; the email accounts table also supports `address` and numeric `storage_usage`.

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.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction for the selected order field. Allowed values: `asc`, `desc`. Defaults to `asc`.

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.

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

Optional exact indexed resource identifier. Useful for loading one full record after a compact list row is selected.

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. GET /v1/accounts/{username}/emails

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Alias of `search` for DataTables integrations.

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.

servercache_filterOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

For cache target collections, filter the entire indexed result by server-cache state: `1` for enabled or `0` for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer
Example
0

Zero-based result offset. Defaults to 0.

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.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values include `main`, `addon`, `subdomain`, `parked`; email filter values include `global` and `mailbox`; spam values include `whitelist` and `blacklist`.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": 1,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": 1,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 25,
    "mailbox_id": 1,
    "order_by": "ORDER_BY_FROM_LIST_RESPONSE",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/mailing-lists/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/messages/contextroot reseller userSee which mailboxes you can use to read or send messages.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/emails/messages/context' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Load mailbox message context
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/spam-settingsroot reseller userView spam threshold and allow/deny rules.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/emails/spam-settings' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/emails/spam-settings/rulesroot reseller userCreate spam allow/deny rule.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

patternRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
*@spamdomain.tld

Search or match pattern. Pattern (allowed chars: letters/numbers/._*@-). Example: *@spamdomain.tld.

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
whitelist, blacklist
Example
blacklist

Type value. Allowed values: whitelist, blacklist. Rule type: `whitelist` or `blacklist`. Rule type: whitelist|blacklist.

Validation and use:

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Block known spam sender domain

Optional comment label.

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": {
    "pattern": "*@spamdomain.tld",
    "type": "blacklist",
    "comment": "Block known spam sender domain"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/spam-settings/rules' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"pattern":"*@spamdomain.tld","type":"blacklist","comment":"Block known spam sender domain"}'

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.

Blacklist spam domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "pattern": "*@spamdomain.tld",
    "type": "blacklist",
    "comment": "Block known spam sender domain"
  }
}

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/accounts/{username}/emails/spam-settings/rules/{id}root reseller userDelete spam allow/deny rule.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/emails

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/emails/spam-settings/rules/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/emails/spam-settings/rules/{id}root reseller userEdit spam allow/deny rule.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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. GET /v1/accounts/{username}/emails

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.

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Updated note

Comment label (optional).

Validation and use:

patternOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PATTERN_FROM_LIST_RESPONSE

Search or match pattern. Pattern (must not be empty if provided).

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
whitelist, blacklist
Example
whitelist

Type value. Allowed values: whitelist, blacklist. whitelist|blacklist (must not be empty if provided).

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "comment": "Updated note",
    "pattern": "PATTERN_FROM_LIST_RESPONSE",
    "type": "whitelist"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/spam-settings/rules/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"comment":"Updated note"}'

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 comment
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "comment": "Updated note"
  }
}

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/accounts/{username}/emails/spam-settings/tableroot reseller userList email spam whitelist/blacklist rules for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/spam-settings/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/emails/spam-settings/tableroot reseller userList email spam whitelist/blacklist rules for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. GET /v1/accounts/{username}/emails Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. GET /v1/accounts/{username}/emails

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/spam-settings/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/accounts/{username}/emails/spam-settings/thresholdroot reseller userUpdate spam threshold score.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

scoreRequired
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
5

Threshold score (1..1000).

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": {
    "score": "5"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/emails/spam-settings/threshold' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"score":"5"}'

Example note: Requires a documented runtime value 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 score to 5
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "score": "5"
  }
}

Requires a documented runtime value 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/accounts/{username}/emails/tableroot reseller userSearch or browse your email inboxes.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (20)

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

Target SHM account system username. Root can query any account; resellers only owned accounts; users only their own account.

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

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

Account username.

Validation and use:

collectionOptional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Only for `/resources/table`: resource collection to read. Common values: `domains`, `dns_domains`, `mail_domains`, `ftp_domains`, `email_accounts`, `ftp_accounts`, `email_forwarders`, `email_mailing_lists`, `email_filters`, `email_autoresponders`, `email_spam_rules`, `databases`, `database_users`, `postgresql_databases`, `postgresql_users`, `ip_access`, `web_settings`, `php_runtime`, `cache_targets`. Allowed values: domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets.

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.

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

Set to `1` for a compact list projection. Mailing-list rows omit the potentially large members array while preserving `member_count`; fetch the exact record without compact mode when editing.

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.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Alias of `type_filter` for domain table callers.

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.

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

DataTables draw counter. DataTables draw counter echoed back unchanged.

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.

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

Optional exact mailbox id filter for mailbox-scoped indexed resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

Set to `1` for database collections to enrich only the returned page with current database sizes in one batch query.

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.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Alias of `type_filter` used by lightweight selectors.

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. Maximum rows to return. Defaults to 100 and is limited by the native index reader.

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.

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

Alias of `email_id`.

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. GET /v1/accounts/{username}/emails

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
ORDER_BY_FROM_LIST_RESPONSE

Sort field. Defaults to `sort_key`; the email accounts table also supports `address` and numeric `storage_usage`.

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.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction for the selected order field. Allowed values: `asc`, `desc`. Defaults to `asc`.

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.

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

Optional exact indexed resource identifier. Useful for loading one full record after a compact list row is selected.

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. GET /v1/accounts/{username}/emails

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search term or search payload. Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `search` for DataTables integrations.

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.

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

For cache target collections, filter the entire indexed result by server-cache state: `1` for enabled or `0` for disabled.

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. Zero-based result offset. Defaults to 0.

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.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values include `main`, `addon`, `subdomain`, `parked`; email filter values include `global` and `mailbox`; spam values include `whitelist` and `blacklist`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "account_user": "demo",
    "collection": "domains",
    "compact": 1,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": 1,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 25,
    "mailbox_id": 1,
    "order_by": "ORDER_BY_FROM_LIST_RESPONSE",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/emails/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value 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/accounts/{username}/emails/tableroot reseller userSearch or browse your email inboxes.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (20)

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

Target SHM account system username. Root can query any account; resellers only owned accounts; users only their own account.

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

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

Account username.

Validation and use:

collectionOptional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Only for `/resources/table`: resource collection to read. Common values: `domains`, `dns_domains`, `mail_domains`, `ftp_domains`, `email_accounts`, `ftp_accounts`, `email_forwarders`, `email_mailing_lists`, `email_filters`, `email_autoresponders`, `email_spam_rules`, `databases`, `database_users`, `postgresql_databases`, `postgresql_users`, `ip_access`, `web_settings`, `php_runtime`, `cache_targets`. Allowed values: domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets.

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.

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

Set to `1` for a compact list projection. Mailing-list rows omit the potentially large members array while preserving `member_count`; fetch the exact record without compact mode when editing.

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.

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

Alias of `type_filter` for domain table callers.

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.

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

DataTables draw counter. DataTables draw counter echoed back unchanged.

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.

email_idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

Optional exact mailbox id filter for mailbox-scoped indexed resources such as email filters.

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. GET /v1/accounts/{username}/emails

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

Set to `1` for database collections to enrich only the returned page with current database sizes in one batch query.

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.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Alias of `type_filter` used by lightweight selectors.

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
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
25

Page size. Maximum rows to return. Defaults to 100 and is limited by the native index reader.

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.

mailbox_idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

Alias of `email_id`.

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. GET /v1/accounts/{username}/emails

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ORDER_BY_FROM_LIST_RESPONSE

Sort field. Defaults to `sort_key`; the email accounts table also supports `address` and numeric `storage_usage`.

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.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction for the selected order field. Allowed values: `asc`, `desc`. Defaults to `asc`.

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.

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

Optional exact indexed resource identifier. Useful for loading one full record after a compact list row is selected.

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. GET /v1/accounts/{username}/emails

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

Search term or search payload. Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Alias of `search` for DataTables integrations.

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.

servercache_filterOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
1

For cache target collections, filter the entire indexed result by server-cache state: `1` for enabled or `0` for disabled.

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
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
0

Row offset. Zero-based result offset. Defaults to 0.

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.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values include `main`, `addon`, `subdomain`, `parked`; email filter values include `global` and `mailbox`; spam values include `whitelist` and `blacklist`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {
    "collection": "domains",
    "compact": 1,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": 1,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 25,
    "mailbox_id": 1,
    "order_by": "ORDER_BY_FROM_LIST_RESPONSE",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/emails/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value 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/accounts/{username}/webmail/ssoroot reseller userGet a sign-in link to open your mailbox in Webmail.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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

Authorized target SHM account username. Root may target any account, a reseller only an owned account, and an end user only their own account.

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

emailRequired
Send in
Query string
Type
email address
Accepted values
Any value matching email address
Example
user@example.com

Exact mailbox address owned by the account. The mailbox must already exist.

Validation and use:

client_ipOptional
Send in
Query string
Type
IP address
Accepted values
Any value matching IP address
Example
203.0.113.10

Client IP embedded in the signed Roundcube payload. Invalid or omitted values use the loopback fallback.

Validation and use:

panel_hostOptional
Send in
Query string
Type
hostname[:port]
Accepted values
Any value matching hostname[:port]
Example
hosting.example.com:882

Trusted SHM panel host used to select the Roundcube destination. Untrusted values are ignored in favor of an account-domain or configured fallback host.

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": {
    "email": "user@example.com",
    "client_ip": "203.0.113.10",
    "panel_host": "hosting.example.com:882"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/webmail/sso?email=user%40example.com&client_ip=203.0.113.10&panel_host=hosting.example.com%3A882' \
  -H 'X-Api-User: demo' \
  -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.

Prepare Roundcube access for one mailbox
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "email": "user@example.com",
    "client_ip": "203.0.113.10",
    "panel_host": "hosting.example.com:882"
  },
  "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."
}

File Manager

GET/v1/accounts/{username}/file-managerroot reseller userList files and folders inside the account home directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (14)

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.

dirOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

Directory path.

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.

drawOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string; default: 0
Example
0

(mode=full) 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. Default: 0.

filter_kindOptional
Send in
Query string
Type
enum
Accepted values
all, files, folders
Example
all

Filter kind. Allowed values: all, files, folders. (mode=full) Filter by file type.

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. Default: all.

lengthOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string; default: 100
Example
100

(mode=full) 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. Minimum 1. Maximum 5000. Default: 100.

modeOptional
Send in
Query string
Type
enum
Accepted values
simple, full
Example
simple

Listing or response mode. Allowed values: simple, full. Response shape. `full` supports pagination/search/order.

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. Default: simple.

orderOptional
Send in
Query string
Type
object|string
Accepted values
Any value matching object|string
Example
ORDER_FROM_LIST_RESPONSE

Sort order payload.

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.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

(mode=full) Sort direction.

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. Default: asc.

order_idxOptional
Send in
Query string
Type
enum
Accepted values
1, 2, 5
Example
1

Sort column index. (mode=full) Sort column index: 1=name, 2=size, 5=mtime.

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. Default: 1.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: /
Example
/

Directory relative to account home.

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. Default: /.

searchOptional
Send in
Query string
Type
object|string
Accepted values
Any value matching object|string
Example
account

Search term or search payload. (mode=full) Search string or `{value:\"...\"}`.

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.

search[value]Optional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search[value] query parameter.

Validation and use:

startOptional
Send in
Query string
Type
int|string
Accepted values
Any value matching int|string; default: 0
Example
0

(mode=full) 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. Default: 0.

valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
VALUE_FROM_LIST_RESPONSE

Value payload.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "dir": "public_html",
    "draw": 0,
    "filter_kind": "all",
    "length": 100,
    "mode": "simple",
    "order": "ORDER_FROM_LIST_RESPONSE",
    "order_dir": "asc",
    "order_idx": 1,
    "path": "/",
    "search": "account",
    "search[value]": "account",
    "start": 0,
    "value": "VALUE_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/file-manager?path=%2F&mode=simple&value=VALUE_FROM_LIST_RESPONSE&dir=public_html' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "path": "/",
    "mode": "simple",
    "value": "VALUE_FROM_LIST_RESPONSE",
    "dir": "public_html"
  },
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
data[]["name","path","size","perms","modTime","is_dir","fileType","canOpen"]
breadcrumbs[]["name","path"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-managerroot reseller userList files and folders inside the account home directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (14)

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.

search[value]Optional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search[value] query parameter.

Validation and use:

dirOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Directory path.

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.

drawOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string; default: 0
Example
0

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. Default: 0.

filter_kindOptional
Send in
JSON body
Type
enum
Accepted values
all, files, folders
Example
all

Filter kind. Allowed values: all, files, folders.

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. Default: all.

lengthOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string; default: 100
Example
100

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. Minimum 1. Maximum 5000. Default: 100.

modeOptional
Send in
JSON body
Type
enum
Accepted values
simple, full
Example
simple

Operation mode. Allowed values: simple, full.

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. Default: simple.

orderOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
ORDER_FROM_LIST_RESPONSE

Sort order payload.

Validation and use:

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

order_idxOptional
Send in
JSON body
Type
enum
Accepted values
1, 2, 5
Example
1

Sort column index.

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. Default: 1.

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: /
Example
/

Directory relative to account home.

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. Default: /.

searchOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
account

Search term or search payload.

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
JSON body
Type
int|string
Accepted values
Any value matching int|string; default: 0
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. Default: 0.

valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
VALUE_FROM_LIST_RESPONSE

Value payload.

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": {
    "search[value]": "account"
  },
  "json_body": {
    "dir": "public_html",
    "draw": 0,
    "filter_kind": "all",
    "length": 100,
    "mode": "simple",
    "order": "ORDER_FROM_LIST_RESPONSE",
    "order_dir": "asc",
    "order_idx": 1,
    "path": "/",
    "search": "account",
    "start": 0,
    "value": "VALUE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/","mode":"simple","value":"VALUE_FROM_LIST_RESPONSE","dir":"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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/",
    "mode": "simple",
    "value": "VALUE_FROM_LIST_RESPONSE",
    "dir": "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."
}
GET/v1/accounts/{username}/file-manager/contentroot reseller userView a text file under the account home directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

fileRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html/wp-config.php

File path. Relative file path from account home. Full relative file path from the account home, for example public_html/wp-config.php. No leading / is required.

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. When the user names a file such as wp-config.php and recent context identifies the account/site, derive the full relative path and send it here.

filePathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

File path. UI compatibility: file name/path used with path. Optional UI compatibility file path field. Prefer sending full relative path in file.

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.

file_pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

Optional UI compatibility file path field. Prefer sending full relative path in file.

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.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

UI compatibility: directory path used with filePath. Optional UI compatibility directory field. Prefer sending full relative path in file.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "file": "public_html/wp-config.php",
    "filePath": "public_html",
    "file_path": "public_html",
    "path": "public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/file-manager/content?file=public_html%2Fwp-config.php' \
  -H 'X-Api-User: demo' \
  -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 WordPress config
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "file": "public_html/wp-config.php"
  },
  "json_body": {}
}

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

Read .htaccess
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "file": "public_html/.htaccess"
  },
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
contentstring
size_bytesint
permsstring
mtimeint
mimestring
sha1string

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/accounts/{username}/file-manager/contentroot reseller userSave a text file under the account home directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

contentRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_FROM_LIST_RESPONSE

Text content to save. New file content (UTF-8). Max 2MB.

Validation and use:

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

File path. Relative file path from account home.

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

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

Validation and use:

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

If true, create missing parent directories. New files can be created in existing directories.

Validation and use: Default: 0.

filePathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

File path. UI compatibility: file name/path used with path.

Validation and use:

file_pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Validation and use:

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

UI compatibility: directory path used with filePath.

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": {
    "content": "CONTENT_FROM_LIST_RESPONSE",
    "file": "error.log",
    "createDirs": 1,
    "create_dirs": 0,
    "filePath": "public_html",
    "file_path": "public_html",
    "path": "public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/file-manager/content' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"file":"error.log","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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "file": "error.log",
    "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/accounts/{username}/file-manager/contentroot reseller userView a text file under the account home directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

fileRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/wp-config.php

File path. Full relative file path from the account home, for example public_html/wp-config.php.

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. When the user names a file such as wp-config.php and recent context identifies the account/site, derive the full relative path and send it here.

filePathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

File path. Optional UI compatibility file path field. Prefer sending full relative path in file.

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.

file_pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Optional UI compatibility file path field. Prefer sending full relative path in file.

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.

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

Optional UI compatibility directory field. Prefer sending full relative path in file.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "file": "public_html/wp-config.php",
    "filePath": "public_html",
    "file_path": "public_html",
    "path": "public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/content' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"file":"public_html/wp-config.php"}'

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 WordPress config
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "file": "public_html/wp-config.php"
  }
}

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/accounts/{username}/file-manager/copyroot reseller userCopy files/folders into another destination directory under the account home.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

destinationRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DESTINATION_FROM_LIST_RESPONSE

Destination value or redirect target. Destination directory relative to account home. Missing directories are created. UI alias: `copyPath`.

Validation and use:

filesRequired
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
["public_html/index.php"]

Array of source file/folder paths relative to account home.

Validation and use:

copyPathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

UI compatibility alias for `destination`.

Validation and use:

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

If true, replace existing destination items.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "destination": "DESTINATION_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ],
    "copyPath": "public_html",
    "overwrite": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/copy' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"destination":"DESTINATION_FROM_LIST_RESPONSE","files":["public_html/index.php"]}'

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": {
    "destination": "DESTINATION_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ]
  }
}

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

Successful result

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

FieldDocumented type or shape
destinationstring
countint

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/file-manager/downloadroot reseller userDownload file manager file.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

File path.

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. Use the relevant list/read endpoint for this resource and copy the returned file name.

filePathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

File path.

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.

file_pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

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.

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
public_html

Path value.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "file": "error.log",
    "filePath": "public_html",
    "file_path": "public_html",
    "path": "public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/file-manager/download?path=public_html&file=error.log&filePath=public_html&file_path=public_html' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "path": "public_html",
    "file": "error.log",
    "filePath": "public_html",
    "file_path": "public_html"
  },
  "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/accounts/{username}/file-manager/fileroot reseller userCreate an empty file in an existing account directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

File name to create. UI alias: `fileName`.

Validation and use:

dirOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Directory path.

Validation and use:

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

UI compatibility alias for `name`.

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

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: /
Example
/

Destination directory relative to account home.

Validation and use: Default: /.

Complete 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": {
    "name": "NAME_FROM_LIST_RESPONSE",
    "dir": "public_html",
    "fileName": "error.log",
    "path": "/"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/file' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"name":"NAME_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"
  }
}

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

Successful result

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

FieldDocumented type or shape
pathstring
namestring
permsstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-manager/folderroot reseller userCreate a folder in an existing account directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Folder name to create. UI alias: `folderName`.

Validation and use:

dirOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Directory path.

Validation and use:

folderNameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FOLDERNAME_FROM_LIST_RESPONSE

UI compatibility alias for `name`.

Validation and use:

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: /
Example
/

Destination directory relative to account home.

Validation and use: Default: /.

Complete 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": {
    "name": "NAME_FROM_LIST_RESPONSE",
    "dir": "public_html",
    "folderName": "FOLDERNAME_FROM_LIST_RESPONSE",
    "path": "/"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/folder' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"name":"NAME_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"
  }
}

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

Successful result

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

FieldDocumented type or shape
pathstring
namestring
permsstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/accounts/{username}/file-manager/itemroot reseller userRename a file/folder and/or change its permissions.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Existing file or folder path relative to account home.

Validation and use:

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

File path. UI compatibility alias for `path`.

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

itemOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ITEM_FROM_LIST_RESPONSE

UI compatibility alias for `path`.

Validation and use:

newNameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NEWNAME_FROM_LIST_RESPONSE

UI compatibility alias for `new_name`.

Validation and use:

newPermsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NEWPERMS_FROM_LIST_RESPONSE

UI compatibility alias for `perms`.

Validation and use:

new_nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NEW_NAME_FROM_LIST_RESPONSE

New leaf name for the file or folder. UI alias: `newName`. At least one of `new_name` or `perms` must be provided.

Validation and use:

permsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PERMS_FROM_LIST_RESPONSE

Octal permissions like `0640` or `0750`. UI alias: `newPerms`.

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": {
    "path": "public_html",
    "file": "error.log",
    "item": "ITEM_FROM_LIST_RESPONSE",
    "newName": "NEWNAME_FROM_LIST_RESPONSE",
    "newPerms": "NEWPERMS_FROM_LIST_RESPONSE",
    "new_name": "NEW_NAME_FROM_LIST_RESPONSE",
    "perms": "PERMS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/file-manager/item' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"public_html"}'

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": {
    "path": "public_html"
  }
}

Successful result

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

FieldDocumented type or shape
pathstring
permsstring
renamedbool
permissions_changedbool

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-manager/moveroot reseller userMove files/folders into another destination directory under the account home.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

destinationRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DESTINATION_FROM_LIST_RESPONSE

Destination value or redirect target. Destination directory relative to account home. Missing directories are created. UI alias: `movePath`.

Validation and use:

filesRequired
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
["public_html/index.php"]

Array of source file/folder paths relative to account home.

Validation and use:

movePathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

UI compatibility alias for `destination`.

Validation and use:

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

If true, replace existing destination items.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "destination": "DESTINATION_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ],
    "movePath": "public_html",
    "overwrite": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/move' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"destination":"DESTINATION_FROM_LIST_RESPONSE","files":["public_html/index.php"]}'

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": {
    "destination": "DESTINATION_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ]
  }
}

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

Successful result

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

FieldDocumented type or shape
destinationstring
countint

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/file-manager/trashroot reseller userEmpty the account trash directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 DELETE 'https://panel.example.com:882/v1/accounts/demo/file-manager/trash' \
  -H 'X-Api-User: demo' \
  -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.

FieldDocumented type or shape
trashstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-manager/trashroot reseller userMove files/folders into the account trash directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

filesRequired
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
["public_html/index.php"]

Array of file/folder paths relative to account home.

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": {
    "files": [
      "public_html/index.php"
    ]
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/trash' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"files":["public_html/index.php"]}'

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": {
    "files": [
      "public_html/index.php"
    ]
  }
}

Successful result

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

FieldDocumented type or shape
destinationstring
countint

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-manager/unziproot reseller userExtract one or more ZIP archives into a destination folder.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

destinationRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DESTINATION_FROM_LIST_RESPONSE

Destination value or redirect target. Destination directory relative to account home. Missing directories are created. UI alias: `unzipPath`.

Validation and use:

filesRequired
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
["public_html/index.php"]

Array of `.zip` file paths relative to account home.

Validation and use:

unzipPathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

UI compatibility alias for `destination`.

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": {
    "destination": "DESTINATION_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ],
    "unzipPath": "public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/unzip' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"destination":"DESTINATION_FROM_LIST_RESPONSE","files":["public_html/index.php"]}'

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": {
    "destination": "DESTINATION_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ]
  }
}

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

Successful result

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

FieldDocumented type or shape
destinationstring
archives[]{"type":"array","description":"Archives extracted successfully."}
countint
warnings[]{"type":"array","description":"Non-fatal warnings for rejected archives, when present."}

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-manager/uploadroot reseller userUpload one or more files into an existing account directory.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (10)

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.

content_b64Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_B64_FROM_LIST_RESPONSE

Single-file convenience alias. Base64 file contents. Supports optional `data:*;base64,...` prefix.

Validation and use:

content_base64Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CONTENT_BASE64_FROM_LIST_RESPONSE

Validation and use:

dirOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

Directory path.

Validation and use:

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

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

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

Array of upload objects: `[{\"name\":\"hello.txt\",\"content_b64\":\"SGVsbG8K\"}]`. Use this or the single-file `name` + `content_b64` form.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Single-file convenience alias used with content_b64.

Validation and use:

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

If true, replace existing destination files.

Validation and use: Default: 0.

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: /
Example
/

Destination directory relative to account home. Must already exist.

Validation and use: Default: /.

staged_pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

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": {
    "content_b64": "CONTENT_B64_FROM_LIST_RESPONSE",
    "content_base64": "CONTENT_BASE64_FROM_LIST_RESPONSE",
    "dir": "public_html",
    "file_name": "error.log",
    "files": "FILES_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE",
    "overwrite": 0,
    "path": "/",
    "staged_path": "public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/upload' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/","name":"NAME_FROM_LIST_RESPONSE","dir":"public_html","file_name":"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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/",
    "name": "NAME_FROM_LIST_RESPONSE",
    "dir": "public_html",
    "file_name": "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.

FieldDocumented type or shape
pathstring
countint
total_bytesint
files[]{"type":"array","description":"Uploaded files with `name`, `size`, and `path`."}

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/file-manager/ziproot reseller userCreate a ZIP archive from one or more files/folders under the account home.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

archiveRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ARCHIVE_FROM_LIST_RESPONSE

Destination archive path relative to account home. `.zip` is added automatically if missing. UI alias: `zipPath`.

Validation and use:

filesRequired
Send in
JSON body
Type
object|string|array
Accepted values
Any value matching object|string|array
Example
["public_html/index.php"]

Array of relative file/folder paths to archive.

Validation and use:

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

If true, replace an existing archive.

Validation and use: Default: 0.

zipPathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

UI compatibility alias for `archive`.

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": {
    "archive": "ARCHIVE_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ],
    "overwrite": 0,
    "zipPath": "public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/file-manager/zip' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"archive":"ARCHIVE_FROM_LIST_RESPONSE","files":["public_html/index.php"]}'

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": {
    "archive": "ARCHIVE_FROM_LIST_RESPONSE",
    "files": [
      "public_html/index.php"
    ]
  }
}

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

Successful result

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

FieldDocumented type or shape
archivestring
countint
warnings[]{"type":"array","description":"Non-fatal warnings, for example when a preserved symlink target is inside the account but outside the selected archive scope."}

Error response

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

Ftp

GET/v1/accounts/{username}/ftp/accountsroot reseller userList FTP accounts.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/ftp/accounts' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/ftp/accountsroot reseller userCreate FTP account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (9)

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.

access_pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html

FTP root path (relative to account home or absolute under account home).

Validation and use:

ftp_passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

FTP password. FTP password (min 8 chars). For root-only migration=1 this may be a pre-hashed value (advanced).

Validation and use:

ftp_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy

FTP username. FTP username (local part). You may also send user@domain here; ftp_domain will be derived.

Validation and use: When the user asks for dev@, send ftp_user=dev and use ftp_domain only when a specific domain is known.

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

Validation and use:

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

FTP domain name. FTP domain (must be owned by the account). Optional if ftp_user contains @domain or if you want to default to main domain.

Validation and use:

ftp_quotaOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
2048

Quota in MB, or "unlimited".

Validation and use:

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

Root-only migration flag. If `1`, ftp_password is treated as a pre-hashed value. Root-only migration helper flag. When 1, ftp_password is treated as a hash (advanced).

Validation and use:

quotaOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
100

Quota 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "access_path": "public_html",
    "ftp_password": "STRONG_PASSWORD",
    "ftp_user": "deploy",
    "accesspath": "/home/demo/public_html",
    "ftp_domain": "example.com",
    "ftp_quota": "2048",
    "migration": 1,
    "quota": 100
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ftp/accounts' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ftp_user":"deploy","ftp_domain":"example.com","ftp_password":"STRONG_PASSWORD","ftp_quota":"2048","access_path":"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.

Create FTP user with quota
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ftp_user": "deploy",
    "ftp_domain": "example.com",
    "ftp_password": "STRONG_PASSWORD",
    "ftp_quota": "2048",
    "access_path": "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/accounts/{username}/ftp/accounts/{id}root reseller userDelete FTP account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/ftp/accounts

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/ftp/accounts/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/ftp/accounts/{id}root reseller userEdit FTP account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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. GET /v1/accounts/{username}/ftp/accounts

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.

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

Validation and use:

accesspathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/private

New FTP root path. Relative paths are resolved under the account home.

Validation and use:

account_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Account or mailbox password. Set new FTP password. Alias: "password".

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Password value.

Validation and use:

quotaOptional
Send in
JSON body
Type
string|integer
Accepted values
Any value matching string|integer
Example
2048

Quota in MB, or "unlimited".

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "access_path": "/home/demo/public_html",
    "accesspath": "public_html/private",
    "account_password": "STRONG_PASSWORD",
    "password": "STRONG_PASSWORD",
    "quota": "2048"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/ftp/accounts/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"quota":"2048"}'

Example note: Requires a documented runtime value 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 only quota
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "quota": "2048"
  }
}

Requires a documented runtime value before QA can execute this request.

Change only access path
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "accesspath": "public_html/private"
  }
}

Requires a documented runtime value before QA can execute this request.

Rotate FTP password
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "account_password": "STRONG_PASSWORD"
  }
}

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

Update path + quota together
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "accesspath": "public_html/app",
    "quota": "4096"
  }
}

Requires a documented runtime value 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."
}

FTP

GET/v1/accounts/{username}/ftp/accounts/tableroot reseller userSearch or browse your FTP accounts.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Account username.

Validation and use:

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.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search term or search payload.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "account_user": "demo",
    "draw": 1,
    "length": 25,
    "search": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ftp/accounts/table?search=account&draw=1&start=0&length=25' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "search": "account",
    "draw": 1,
    "start": 0,
    "length": 25
  },
  "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/accounts/{username}/ftp/accounts/tableroot reseller userSearch or browse your FTP accounts.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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
Query string
Type
string
Accepted values
Any value matching string
Example
demo

Account username.

Validation and use:

drawOptional
Send in
JSON body
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
JSON body
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.

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

Search term or search payload.

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
JSON body
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": {
    "username": "demo"
  },
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {
    "draw": 1,
    "length": 25,
    "search": "account",
    "start": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ftp/accounts/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"search":"account","draw":1,"start":0,"length":25}'

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": {
    "search": "account",
    "draw": 1,
    "start": 0,
    "length": 25
  }
}

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."
}

Git

POST/v1/accounts/{username}/git/actions/{action}root reseller userCheck a Git repository or carry out one of its available actions.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (21)

actionRequired
Send in
URL path
Type
enum
Accepted values
scan, validate, status, branches, remotes, log, fetch, pull, push, checkout, addall, commit, set_identity, init, init_bare, clone, cred_store, cred_reject
Example
scan

Path parameter. Allowed values: scan, validate, status, branches, remotes, log, fetch, pull, push, checkout, addall, commit, set_identity, init, init_bare, clone, cred_store, cred_reject

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

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.

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

Add all request field. Allowed values: 1, true, on. For commit: add all changes before commit (default 0).

Validation and use:

branchOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
main

Git branch name. For pull/push: branch name (optional).

Validation and use:

checkout_branchConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
main

For checkout: target branch/ref name.

Validation and use: Choose the account or resource you want to use.

clone_branchOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CLONE_BRANCH_FROM_LIST_RESPONSE

For clone: branch name (optional).

Validation and use:

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

For clone: depth (0=full).

Validation and use:

clone_pathConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/repo

For clone: target directory (relative to home).

Validation and use: Choose the account or resource you want to use.

clone_urlConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
https://github.com/example/repo.git

Git repository URL. For clone: repository URL (HTTPS or SSH).

Validation and use: Choose the account or resource you want to use.

commit_messageConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Update

Git commit message. For commit: commit message.

Validation and use: Choose the account or resource you want to use.

cred_hostConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
github.com

For cred_store/cred_reject: host (e.g. github.com).

Validation and use: Choose the account or resource you want to use.

cred_passConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TOKEN_OR_PASSWORD

For cred_store: password/token (sent as JSON; handle securely).

Validation and use: Choose the account or resource you want to use.

cred_userConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
username

For cred_store/cred_reject: username.

Validation and use: Choose the account or resource you want to use.

git_emailConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
you@example.com

For set_identity: Git user.email value.

Validation and use: Choose the account or resource you want to use.

git_nameConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Your Name

For set_identity: Git user.name value.

Validation and use: Choose the account or resource you want to use.

identity_scopeOptional
Send in
JSON body
Type
string|local|global
Accepted values
Any value matching string|local|global
Example
local

For set_identity: config scope (default local).

Validation and use:

init_pathConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/myapp

Initialization path. For init/init_bare: target directory (relative to home).

Validation and use: Choose the account or resource you want to use.

limitOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
120

Result size limit. For scan: max results (1..500). Default 120.

Validation and use:

max_depthOptional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
6

For scan: directory depth (1..12). Default 6.

Validation and use:

remoteOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
origin

Remote name. For pull/push: remote name (default origin).

Validation and use:

repo_pathConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/myapp

Repository path. Repository path relative to account home. Required for most repo actions (status/pull/push/etc).

Validation and use: Choose the account or resource you want to use.

Supported actions and option sets

action values (18)
scanvalidatestatusbranchesremoteslogfetchpullpushcheckoutaddallcommitset_identityinitinit_bareclonecred_storecred_reject
Action-specific request bodies
{
  "scan": {
    "max_depth": 6,
    "limit": 120
  },
  "validate": {
    "repo_path": "public_html/myapp"
  },
  "status": {
    "repo_path": "public_html/myapp"
  },
  "branches": {
    "repo_path": "public_html/myapp"
  },
  "remotes": {
    "repo_path": "public_html/myapp"
  },
  "log": {
    "repo_path": "public_html/myapp",
    "limit": 50
  },
  "fetch": {
    "repo_path": "public_html/myapp"
  },
  "pull": {
    "repo_path": "public_html/myapp",
    "remote": "origin",
    "branch": "main"
  },
  "push": {
    "repo_path": "public_html/myapp",
    "remote": "origin",
    "branch": "main"
  },
  "checkout": {
    "repo_path": "public_html/myapp",
    "checkout_branch": "main"
  },
  "addall": {
    "repo_path": "public_html/myapp"
  },
  "commit": {
    "repo_path": "public_html/myapp",
    "commit_message": "Update",
    "add_all": 1
  },
  "set_identity": {
    "repo_path": "public_html/myapp",
    "git_name": "Your Name",
    "git_email": "you@example.com",
    "identity_scope": "local"
  },
  "init": {
    "init_path": "public_html/myapp"
  },
  "init_bare": {
    "init_path": "git/myapp.git"
  },
  "clone": {
    "clone_url": "https://github.com/example/repo.git",
    "clone_path": "public_html/repo",
    "clone_depth": 0,
    "clone_branch": ""
  },
  "cred_store": {
    "cred_host": "github.com",
    "cred_user": "username",
    "cred_pass": "TOKEN_OR_PASSWORD"
  },
  "cred_reject": {
    "cred_host": "github.com",
    "cred_user": "username"
  }
}

Complete 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": "scan",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "add_all": 1,
    "branch": "main",
    "checkout_branch": "main",
    "clone_branch": "CLONE_BRANCH_FROM_LIST_RESPONSE",
    "clone_depth": 0,
    "clone_path": "public_html/repo",
    "clone_url": "https://github.com/example/repo.git",
    "commit_message": "Update",
    "cred_host": "github.com",
    "cred_pass": "TOKEN_OR_PASSWORD",
    "cred_user": "username",
    "git_email": "you@example.com",
    "git_name": "Your Name",
    "identity_scope": "local",
    "init_path": "public_html/myapp",
    "limit": 120,
    "max_depth": 6,
    "remote": "origin",
    "repo_path": "public_html/myapp"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/git/actions/scan' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"max_depth":6,"limit":120}'

Example note: Requires a documented runtime value 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.

Action: scan
{
  "path_parameters": {
    "action": "scan"
  },
  "query_parameters": {},
  "json_body": {
    "max_depth": 6,
    "limit": 120
  }
}

Requires a documented runtime value before QA can execute this request.

Action: validate
{
  "path_parameters": {
    "action": "validate"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: status
{
  "path_parameters": {
    "action": "status"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: branches
{
  "path_parameters": {
    "action": "branches"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: remotes
{
  "path_parameters": {
    "action": "remotes"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: log
{
  "path_parameters": {
    "action": "log"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp",
    "limit": 50
  }
}

Requires a documented runtime value before QA can execute this request.

Action: fetch
{
  "path_parameters": {
    "action": "fetch"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: pull
{
  "path_parameters": {
    "action": "pull"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp",
    "remote": "origin",
    "branch": "main"
  }
}

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

Action: push
{
  "path_parameters": {
    "action": "push"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp",
    "remote": "origin",
    "branch": "main"
  }
}

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

Action: checkout
{
  "path_parameters": {
    "action": "checkout"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp",
    "checkout_branch": "main"
  }
}

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

Action: addall
{
  "path_parameters": {
    "action": "addall"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: commit
{
  "path_parameters": {
    "action": "commit"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp",
    "commit_message": "Update",
    "add_all": 1
  }
}

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

Action: set_identity
{
  "path_parameters": {
    "action": "set_identity"
  },
  "query_parameters": {},
  "json_body": {
    "repo_path": "public_html/myapp",
    "git_name": "Your Name",
    "git_email": "you@example.com",
    "identity_scope": "local"
  }
}

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

Action: init
{
  "path_parameters": {
    "action": "init"
  },
  "query_parameters": {},
  "json_body": {
    "init_path": "public_html/myapp"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: init_bare
{
  "path_parameters": {
    "action": "init_bare"
  },
  "query_parameters": {},
  "json_body": {
    "init_path": "git/myapp.git"
  }
}

Requires a documented runtime value before QA can execute this request.

Action: clone
{
  "path_parameters": {
    "action": "clone"
  },
  "query_parameters": {},
  "json_body": {
    "clone_url": "https://github.com/example/repo.git",
    "clone_path": "public_html/repo",
    "clone_depth": 0
  }
}

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

Action: cred_store
{
  "path_parameters": {
    "action": "cred_store"
  },
  "query_parameters": {},
  "json_body": {
    "cred_host": "github.com",
    "cred_user": "username",
    "cred_pass": "TOKEN_OR_PASSWORD"
  }
}

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

Action: cred_reject
{
  "path_parameters": {
    "action": "cred_reject"
  },
  "query_parameters": {},
  "json_body": {
    "cred_host": "github.com",
    "cred_user": "username"
  }
}

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."
}

Health

GET/v1/healthroot reseller userCheck whether the SHM API is available.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/health' \
  -H 'X-Api-User: demo' \
  -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."
}

Information

GET/v1/accounts/{username}/informationroot reseller userView limited account information extras used by the account dashboard.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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

Target SHM account system username.

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

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

Set to `0` to omit the potentially large `domains` array. Account totals and all other information fields remain current.

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. Default: 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": {
    "username": "demo"
  },
  "query_parameters": {
    "include_domains": true
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

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

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value 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/accounts/{username}/informationroot reseller userView limited account information extras used by the account dashboard.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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

Target SHM account system username.

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

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

Set to `0` to omit the potentially large `domains` array. Account totals and all other information fields remain current.

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. Default: 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "include_domains": true
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/information' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value 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/accounts/{username}/information/health-centerroot reseller userReview the health of your websites, email, certificates and backups.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

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

Domain name. Optional in your account domain to focus on. Defaults to the main 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.

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

Optional request path to probe. Defaults to `/`.

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.

schemeOptional
Send in
Query string
Type
enum
Accepted values
http, https
Example
http

Optional scheme. Allowed values: `http`, `https`. Defaults to `https`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "path": "/home/demo/public_html",
    "scheme": "http"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/information/health-center?domain=example.com&path=%2Fhome%2Fdemo%2Fpublic_html&scheme=http' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "example.com",
    "path": "/home/demo/public_html",
    "scheme": "http"
  },
  "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/accounts/{username}/information/php-pools/actionroot reseller userRun an available control for one of your account's PHP services.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

cmdRequired
Send in
JSON body
Type
enum
Accepted values
start, stop, restart, reload
Example
start

Cmd request field. Allowed values: start, stop, restart, reload. Allowed values: `start`, `stop`, `restart`, `reload`.

Validation and use:

unitRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UNIT_FROM_LIST_RESPONSE

PHP-FPM systemd unit name to control.

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": {
    "cmd": "start",
    "unit": "UNIT_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/information/php-pools/action' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"unit":"UNIT_FROM_LIST_RESPONSE","cmd":"start"}'

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": {
    "unit": "UNIT_FROM_LIST_RESPONSE",
    "cmd": "start"
  }
}

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/accounts/{username}/information/php-pools/statusroot reseller userCheck whether a selected PHP service for your account is running.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

unitRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UNIT_FROM_LIST_RESPONSE

PHP-FPM systemd unit name returned by the information page or page context.

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": {
    "unit": "UNIT_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/information/php-pools/status' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"unit":"UNIT_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": {
    "unit": "UNIT_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."
}

Logs

GET/v1/accounts/{username}/logsroot reseller userRead a log for one of your websites or account services.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (18)

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.

logTypeRequired
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth
Example
access

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth. 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.

actionOptional
Send in
Query string
Type
enum
Accepted values
FetchLog, TailLog, DownloadLog
Example
FetchLog

Requested action name. Allowed values: FetchLog, TailLog, DownloadLog. FetchLog and TailLog apply only to access logs.

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

Domain name. Required for access/error/modsecurity/http_guard/ftp. Must be one of the account domains. Required for access, error, modsecurity, http_guard, or ftp logs. Omit for login and mail_auth logs.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Choose the account or resource you want to use.

downloadOptional
Send in
Query string
Type
enum
Accepted values
FetchLog, TailLog, DownloadLog
Example
FetchLog

Alias of action=DownloadLog. Allowed values: FetchLog, TailLog, 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 log filename from the label property returned by GET /v1/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
L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n

Optional explicit log file selection (from /logs/files). Base64-encoded absolute account-log path from the b64 property returned by GET /v1/logs/files. Alias: file_b64.

Validation and use: GET /v1/accounts/{username}/logs/files

file_b64Optional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n

Alias of fileB64.

Validation and use: GET /v1/accounts/{username}/logs/files

ftpAccountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

FTP account username. (logType=ftp) Optional filter. Must be one of the account FTP accounts. Alias of ftp_account.

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. GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

FTP account username. Optional FTP account filter when logType=ftp. Alias: ftpAccount.

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. GET /v1/accounts/{username}/ftp/accounts

ipOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address. For action=FetchLog: client IP filter.

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
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 500
Example
500

Number of lines to return. Line count for normal fetches. FetchLog uses a higher default and upper bound.

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. Minimum 1. Maximum 20000. Default: 500.

log_typeOptional
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth
Example
access

Log type. Alias of logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth.

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.

methodOptional
Send in
Query string
Type
enum
Accepted values
GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH
Example
GET

Method request field. Allowed values: GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH. For action=FetchLog: allowed values are GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH.

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.

offsetOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
0

For action=TailLog: byte offset from the live access.log tail stream.

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.

qOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search query string. For action=FetchLog: substring filter.

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.

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

For action=FetchLog: max parsed rows.

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.

statusOptional
Send in
Query string
Type
enum
Accepted values
2xx, 3xx, 4xx, 5xx
Example
5xx

For action=FetchLog: allowed values are 2xx, 3xx, 4xx, 5xx, or an exact 3-digit HTTP status code. Allowed values: 2xx, 3xx, 4xx, 5xx.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "logType": "access",
    "action": "FetchLog",
    "domain": "example.com",
    "download": "FetchLog",
    "file": "error.log",
    "fileB64": "L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n",
    "file_b64": "L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "ip": "203.0.113.10",
    "lines": 500,
    "log_type": "access",
    "method": "GET",
    "offset": 0,
    "q": "account",
    "rows": 1,
    "status": "5xx"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/logs?logType=access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"logType":"access","domain":"example.com","lines":500}'

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 access.log lines
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "access",
    "domain": "example.com",
    "lines": 500
  }
}

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

Analyze access.log
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "access",
    "domain": "example.com",
    "action": "FetchLog",
    "status": "5xx",
    "method": "GET"
  }
}

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

Download a log file
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "error",
    "domain": "example.com",
    "action": "DownloadLog"
  }
}

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

Successful result

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

FieldDocumented type or shape
contentstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/logsroot reseller userRead a log for one of your websites or account services.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (18)

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.

logTypeRequired
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth
Example
access

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth. 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.

actionOptional
Send in
JSON body
Type
enum
Accepted values
FetchLog, TailLog, DownloadLog
Example
FetchLog

Requested action name. Allowed values: FetchLog, TailLog, DownloadLog. FetchLog and TailLog apply only to access logs.

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

Domain name. Required for access/error/modsecurity/http_guard/ftp. Must be one of the account domains. Required for access, error, modsecurity, http_guard, or ftp logs. Omit for login and mail_auth logs.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Choose the account or resource you want to use.

downloadOptional
Send in
JSON body
Type
enum
Accepted values
FetchLog, TailLog, DownloadLog
Example
FetchLog

Alias of action=DownloadLog. Allowed values: FetchLog, TailLog, 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 log filename from the label property returned by POST /v1/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
L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n

Optional explicit log file selection (from /logs/files). Base64-encoded absolute account-log path from the b64 property returned by POST /v1/logs/files. Alias: file_b64.

Validation and use: GET /v1/accounts/{username}/logs/files

file_b64Optional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n

Alias of fileB64.

Validation and use: GET /v1/accounts/{username}/logs/files

ftpAccountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

FTP account username. (logType=ftp) Optional filter. Must be one of the account FTP accounts. Alias of ftp_account.

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. GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

FTP account username. Optional FTP account filter when logType=ftp. Alias: ftpAccount.

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. GET /v1/accounts/{username}/ftp/accounts

ipOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
203.0.113.10

IPv4 address. For action=FetchLog: client IP filter.

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; default: 500
Example
500

Number of lines to return. Line count for normal fetches. FetchLog uses a higher default and upper bound.

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. Minimum 1. Maximum 20000. Default: 500.

log_typeOptional
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth
Example
access

Log type. Alias of logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth.

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.

methodOptional
Send in
JSON body
Type
enum
Accepted values
GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH
Example
GET

Method request field. Allowed values: GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH. For action=FetchLog: allowed values are GET, POST, HEAD, PUT, DELETE, OPTIONS, PATCH.

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.

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

For action=TailLog: byte offset from the live access.log tail stream.

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.

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

Search query string. For action=FetchLog: substring filter.

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.

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

For action=FetchLog: max parsed rows.

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.

statusOptional
Send in
JSON body
Type
enum
Accepted values
2xx, 3xx, 4xx, 5xx
Example
2xx

For action=FetchLog: allowed values are 2xx, 3xx, 4xx, 5xx, or an exact 3-digit HTTP status code. Allowed values: 2xx, 3xx, 4xx, 5xx.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "logType": "access",
    "action": "FetchLog",
    "domain": "example.com",
    "download": "FetchLog",
    "file": "error.log",
    "fileB64": "L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n",
    "file_b64": "L3Zhci9sb2cvZG9tYWlucy9leGFtcGxlLmNvbS9hY2Nlc3MubG9n",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "ip": "203.0.113.10",
    "lines": 500,
    "log_type": "access",
    "method": "GET",
    "offset": 0,
    "q": "account",
    "rows": 1,
    "status": "2xx"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/logs' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "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/accounts/{username}/logs/filesroot reseller userList the website and service logs available to your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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

Owner account username path parameter. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

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

logTypeRequired
Send in
Query string
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth
Example
access

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth. 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.

domainConditional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Domain name. Required for access/error/modsecurity/http_guard/ftp. Must be one of the account domains. Required for access, error, modsecurity, http_guard, or ftp logs. Omit for login and mail_auth logs.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. 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

FTP account username. (logType=ftp) Optional filter. Must be one of the account FTP accounts. Alias of ftp_account.

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. GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

FTP account username. Optional FTP account filter when logType=ftp. Alias: ftpAccount.

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. 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
Example
access

Log type. Alias of logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "logType": "access",
    "domain": "example.com",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "log_type": "access"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/logs/files?logType=access&domain=example.com' \
  -H 'X-Api-User: demo' \
  -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 log files
{
  "path_parameters": {},
  "query_parameters": {
    "logType": "access",
    "domain": "example.com"
  },
  "json_body": {}
}

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

List account login log files
{
  "path_parameters": {},
  "query_parameters": {
    "logType": "login"
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Successful result

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

FieldDocumented type or shape
files[]["label","b64","size","mtime"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/logs/filesroot reseller userList the website and service logs available to your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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

Owner account username path parameter. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

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

logTypeRequired
Send in
JSON body
Type
enum
Accepted values
access, error, modsecurity, http_guard, ftp, login, mail_auth
Example
ftp

Log type. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth. 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.

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

Domain name. Required for access/error/modsecurity/http_guard/ftp. Must be one of the account domains. Required for access, error, modsecurity, http_guard, or ftp logs. Omit for login and mail_auth logs.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. 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

FTP account username. (logType=ftp) Optional filter. Must be one of the account FTP accounts. Alias of ftp_account.

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. GET /v1/accounts/{username}/ftp/accounts

ftp_accountOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
deploy@example.com

FTP account username. Optional FTP account filter when logType=ftp. Alias: ftpAccount.

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. 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
Example
access

Log type. Alias of logType. Allowed values: access, error, modsecurity, http_guard, ftp, login, mail_auth.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "logType": "ftp",
    "domain": "example.com",
    "ftpAccount": "deploy@example.com",
    "ftp_account": "deploy@example.com",
    "log_type": "access"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/logs/files' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"logType":"ftp","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.

List account FTP log files
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "logType": "ftp",
    "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."
}

Mail Delivery Reports

GET/v1/accounts/{username}/mail-delivery-reportsroot reseller userReview email delivery results for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

directionOptional
Send in
Query string
Type
enum
Accepted values
outgoing, incoming, both
Example
outgoing

Direction filter. Allowed values: outgoing, incoming, both. Outgoing / incoming / both.

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. Default: outgoing.

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

Set to `0` to omit the potentially large `domains` and `emails` selector arrays from the response. Filtering and authorization still use the full current account set.

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. Default: true.

rangeOptional
Send in
Query string
Type
enum
Accepted values
30, 60, 120, 180, 360, 1440, 10080
Example
60

Time range filter. Minutes to look back.

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. Default: 60.

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

Time range in minutes.

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.

senderOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
mailbox@example.com

Optional sender filter. Must match one of the account mailbox addresses (otherwise ignored).

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.

sender_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
mailbox@example.com

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.

statusOptional
Send in
Query string
Type
enum
Accepted values
all, accepted, delivered, deferred, failed, partial
Example
all

Status value. Allowed values: all, accepted, delivered, deferred, failed, partial. Filter by delivery summary status.

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. Default: all.

Complete 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": {
    "direction": "outgoing",
    "include_options": true,
    "range": 60,
    "range_minutes": 1,
    "sender": "mailbox@example.com",
    "sender_filter": "mailbox@example.com",
    "status": "all"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/mail-delivery-reports?status=all&direction=outgoing&sender=mailbox%40example.com&sender_filter=mailbox%40example.com' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "status": "all",
    "direction": "outgoing",
    "sender": "mailbox@example.com",
    "sender_filter": "mailbox@example.com"
  },
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
records[]["ts","time","id","direction","from","to","subject","status","auth","localUser","protocol","rcpts[]","raw[]"]
records[].status.key["accepted","delivered","deferred","failed","partial"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/mail-delivery-reportsroot reseller userReview email delivery results for your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

directionOptional
Send in
JSON body
Type
enum
Accepted values
outgoing, incoming, both
Example
outgoing

Direction filter. Allowed values: outgoing, incoming, both.

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. Default: outgoing.

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

Set to `0` to omit the potentially large `domains` and `emails` selector arrays from the 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. Default: true.

rangeOptional
Send in
JSON body
Type
enum
Accepted values
30, 60, 120, 180, 360, 1440, 10080
Example
60

Time range filter.

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. Default: 60.

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

Time range in minutes.

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.

senderOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
mailbox@example.com

Sender filter.

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.

sender_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
mailbox@example.com

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.

statusOptional
Send in
JSON body
Type
enum
Accepted values
all, accepted, delivered, deferred, failed, partial
Example
all

Status value. Allowed values: all, accepted, delivered, deferred, failed, partial.

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. Default: all.

Complete 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": {
    "direction": "outgoing",
    "include_options": true,
    "range": 60,
    "range_minutes": 1,
    "sender": "mailbox@example.com",
    "sender_filter": "mailbox@example.com",
    "status": "all"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/mail-delivery-reports' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"status":"all","direction":"outgoing","sender":"mailbox@example.com","sender_filter":"mailbox@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.

Example request
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "status": "all",
    "direction": "outgoing",
    "sender": "mailbox@example.com",
    "sender_filter": "mailbox@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."
}
GET/v1/accounts/{username}/mail-delivery-reports/contextroot reseller userCheck the domain settings that help your email reach its destination.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

domainOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
mail.example.com

Domain name. Optional in your account mail domain to focus on. Defaults to the main domain. Optional in your account mail domain. Defaults to the main account domain. Foreign domains are rejected.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "domain": "mail.example.com"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/mail-delivery-reports/context' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Diagnose the main mail domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Diagnose one owned addon mail domain
{
  "path_parameters": {},
  "query_parameters": {
    "domain": "mail.example.com"
  },
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
domainstring
account_userstring
mailbox_countint
dnsManaged-zone MX/SPF/DKIM/DMARC evidence and comparison checks.
public_dnsPublic MX targets and public-routability checks, SPF, DMARC, bounded DKIM selectors, sending IP, and PTR records.
deliverabilityFive-signal public deliverability score plus MX, mail-host, SPF, DMARC, DKIM, and PTR check details.
traceBounded 24-hour Exim status counts and up to 20 recent account-scoped records.
recommendationsStructured safe next actions derived from the observed evidence.

Error response

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

Mail Security

GET/v1/accounts/{username}/mail-securityroot reseller userView mailbox protection settings and recent security activity.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (6)

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

Target SHM account system username. Root can query any account; resellers only owned accounts; users only their own account. Account username.

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

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

DataTables draw counter. Client draw counter echoed in the response. Its presence enables limited mailbox paging.

Validation and use:

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

Mailbox page size. Defaults to 25 and is capped at 100.

Validation and use:

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search term or search payload. Case-insensitive mailbox address search, capped at 160 characters.

Validation and use:

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `search`.

Validation and use:

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

Row offset. Zero-based mailbox offset. Defaults to 0.

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": {
    "draw": 1,
    "length": 25,
    "search": "account",
    "search_value": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/mail-security' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Fetch Protected Mail context
{
  "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.

FieldDocumented type or shape
drawinteger
recordsTotalinteger
recordsFilteredinteger
startinteger
lengthinteger
mailboxes[]["id","email","protected_mail","app_password_count","app_passwords[]"]
recent_events[]["event_at","email","remote_ip","source","credential_type","result","reason","app_password_id"]
alerts[]["id","created_at","email","severity","title","message","status"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/accounts/{username}/mail-security/mailboxesroot reseller userChange Protected Mail for selected mailboxes or all mailboxes in the account.

Before you start

Check the selected mailboxes before applying a bulk change. Email apps need app passwords when Protected Mail is enabled.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account system username. Root can target any account; resellers only owned accounts; users only their own account. Account username.

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

emailsRequired
Send in
JSON body
Type
array<string>|comma-separated string|array|string
Accepted values
Any value matching array<string>|comma-separated string|array|string
Example
["sales@example.com","support@example.com"]

Mailbox addresses to update. `mailboxes` is accepted as an alias. Ignored for `scope=all`. Mailbox email addresses to update. String input may be newline or comma separated. Alias: mailboxes.

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

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

Enable or disable Protected Mail for the selected scope. 1/true/on to enable Protected Mail, 0/false/off to disable it.

Validation and use:

scopeRequired
Send in
JSON body
Type
enum
Accepted values
selected, all
Example
selected

Scope request field. Allowed values: selected, all. Use `selected` for explicitly supplied mailboxes or `all` for all in your account mailboxes. selected updates only the emails list; all updates every mailbox in the account.

Validation and use: Default: selected.

protected_mailOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
PROTECTED_MAIL_FROM_LIST_RESPONSE

Optional wrapper for `enabled` and `twofa_mode`; wrapped values take precedence over top-level aliases.

Validation and use:

security.protected_mailOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
SECURITY_PROTECTED_MAIL_FROM_LIST_RESPONSE

Optional nested wrapper for `enabled` and `twofa_mode`; it takes precedence over the top-level `protected_mail` wrapper.

Validation and use: Optional Send this value at the documented nested JSON body path.

twofa_modeOptional
Send in
JSON body
Type
enum
Accepted values
off, account, mailbox
Example
off

Protected Mail two-factor policy applied to each selected mailbox. 2FA mode to apply: off disables direct Webmail step-up only, account uses account 2FA, and mailbox requires preconfigured individual mailbox secrets. Omitting the field preserves each mailbox current mode. Protected Mail enablement is controlled separately by enabled.

Validation and use: Default: off.

Complete 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": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "emails": [
      "sales@example.com",
      "support@example.com"
    ],
    "enabled": true,
    "scope": "selected",
    "protected_mail": "PROTECTED_MAIL_FROM_LIST_RESPONSE",
    "security.protected_mail": "SECURITY_PROTECTED_MAIL_FROM_LIST_RESPONSE",
    "twofa_mode": "off"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/exampleacct/mail-security/mailboxes' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"scope":"selected","emails":["sales@example.com","support@example.com"],"enabled":true,"twofa_mode":"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 Protected Mail for two selected mailboxes
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "selected",
    "emails": [
      "sales@example.com",
      "support@example.com"
    ],
    "enabled": true,
    "twofa_mode": "off"
  }
}

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

Disable Protected Mail for all account mailboxes
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "all",
    "enabled": false,
    "twofa_mode": "off"
  }
}

Requires a documented runtime value before QA can execute this request.

Enable selected mailboxes with account 2FA
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "selected",
    "emails": [
      "user@example.com",
      "sales@example.com"
    ],
    "enabled": 1,
    "twofa_mode": "account"
  }
}

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

Disable Protected Mail for all mailboxes
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "all",
    "enabled": 0
  }
}

Requires a documented runtime value before QA can execute this request.

Successful result

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

FieldDocumented type or shape
updated_countnumber of account-owned mailboxes updated
mailboxescanonical addresses changed by this request
twofa_modeeffective selected policy

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/accounts/{username}/mail-security/mailboxes/{email}root reseller userChange Protected Mail and two-factor settings for one mailbox.

Before you start

When Protected Mail is enabled, email apps need their own app passwords. Turning off Webmail two-factor checks does not turn off that app-password requirement.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (10)

emailRequired
Send in
URL path
Type
string|path email|email
Accepted values
Any value matching string|path email|email
Example
mail@example.com

Exact mailbox address owned by the target account. URL-encode the address when necessary.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account system username. Root can target any account; resellers only owned accounts; users only their own account. Account username.

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

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

Enable or disable Protected Mail for the exact mailbox. 1/true/on to enable Protected Mail, 0/false/off to disable it.

Validation and use:

mailboxOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MAILBOX_FROM_LIST_RESPONSE

Validation and use:

protected_mailOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
PROTECTED_MAIL_FROM_LIST_RESPONSE

Optional wrapper for `enabled`, `twofa_mode`, `twofa_secret` and `twofacode`; wrapped values take precedence over top-level aliases.

Validation and use:

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

Object-form alias for enabled.

Validation and use: Optional Send this value at the documented nested JSON body path.

security.protected_mailOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
SECURITY_PROTECTED_MAIL_FROM_LIST_RESPONSE

Optional nested wrapper for the same Protected Mail fields; it takes precedence over the top-level `protected_mail` wrapper.

Validation and use: Optional Send this value at the documented nested JSON body path.

twofa_modeOptional
Send in
JSON body
Type
enum
Accepted values
off, account, mailbox
Example
off

Protected Mail two-factor policy. `account` uses the account two-factor secret; `mailbox` requires mailbox-specific two-factor setup. Use off for no direct Webmail 2FA step-up, account for account 2FA, or mailbox for individual mailbox 2FA. Omitting the field preserves the current mode. This does not disable Protected Mail or its external-client app-password requirement. Alias: protected_mail.twofa_mode.

Validation and use: Default: off.

twofa_secretOptional
Send in
JSON body
Type
string|base32 string
Accepted values
Any value matching string|base32 string
Example
STRONG_PASSWORD

Individual mailbox two-factor secret. Required together with `twofacode` when initially selecting `twofa_mode=mailbox`; the secret is stored only after code verification. `twofasecret` is accepted as an alias. New individual mailbox TOTP secret. Required with a valid twofacode when enabling mailbox mode for a mailbox that does not already have an individual secret. Alias: protected_mail.twofa_secret.

Validation and use:

twofacodeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
123456

Current TOTP code that verifies the supplied individual mailbox two-factor secret. `code` is accepted as an alias. Current TOTP code used to verify a supplied twofa_secret before it is stored. Alias: code or protected_mail.twofacode.

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": {
    "email": "mail@example.com",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": true,
    "mailbox": "MAILBOX_FROM_LIST_RESPONSE",
    "protected_mail": "PROTECTED_MAIL_FROM_LIST_RESPONSE",
    "protected_mail.enabled": 1,
    "security.protected_mail": "SECURITY_PROTECTED_MAIL_FROM_LIST_RESPONSE",
    "twofa_mode": "off",
    "twofa_secret": "STRONG_PASSWORD",
    "twofacode": "123456"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/exampleacct/mail-security/mailboxes/mail%40example.com' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"enabled":true,"twofa_mode":"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 Protected Mail for one mailbox
{
  "path_parameters": {
    "username": "exampleacct",
    "email": "mail@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": true,
    "twofa_mode": "off"
  }
}

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

Enable Protected Mail with account 2FA
{
  "path_parameters": {
    "username": "demo",
    "email": "user@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": 1,
    "twofa_mode": "account"
  }
}

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

Enable Protected Mail with individual mailbox 2FA
{
  "path_parameters": {
    "username": "demo",
    "email": "user@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": 1,
    "twofa_mode": "mailbox",
    "twofa_secret": "STRONG_PASSWORD",
    "twofacode": "123456"
  }
}

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

Disable Protected Mail
{
  "path_parameters": {
    "username": "demo",
    "email": "user@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "enabled": 0
  }
}

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

Successful result

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

FieldDocumented type or shape
emailcanonical mailbox address
protected_mail["enabled","twofa_mode","twofa_configured"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/mail-security/mailboxes/{email}/app-passwordsroot reseller userCreate a separate password for an email application.

Before you start

Copy the new password to a secure place when it is shown. You cannot view that password again later.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

emailRequired
Send in
URL path
Type
string|path email|email
Accepted values
Any value matching string|path email|email
Example
mail@example.com

Exact in your account mailbox address. URL-encode the address when necessary.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account system username. Account username.

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

labelOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: Mail app
Example
Desktop mail client

Human-readable application or device label. `name` is accepted as an alias. Human label for the app/device, for example iPhone, Outlook laptop, or CRM integration. Alias: name.

Validation and use: Default: Mail app.

mailboxOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MAILBOX_FROM_LIST_RESPONSE

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Alias of label. Prefer label.

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": {
    "email": "mail@example.com",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "label": "Desktop mail client",
    "mailbox": "MAILBOX_FROM_LIST_RESPONSE",
    "name": "NAME_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/mail-security/mailboxes/mail%40example.com/app-passwords' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"label":"Desktop mail client"}'

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 client application password
{
  "path_parameters": {
    "username": "exampleacct",
    "email": "mail@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "label": "Desktop mail client"
  }
}

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

Create iPhone app password
{
  "path_parameters": {
    "username": "demo",
    "email": "user@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "label": "iPhone Mail"
  }
}

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

Successful result

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

FieldDocumented type or shape
emailcanonical mailbox address
app_password_idrevocation identifier
labelstored application label
app_passwordone-time plaintext secret; never returned by subsequent context requests

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/mail-security/mailboxes/{email}/app-passwords/{app_password_id}root reseller userRevoke an email application's password.

Before you start

The application will need a valid replacement password before it can connect again.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

app_password_idRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Exact revocable application-password identifier for this mailbox. App password identifier returned by create/list responses.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned app_password_id value.

emailRequired
Send in
URL path
Type
string|path email|email
Accepted values
Any value matching string|path email|email
Example
mail@example.com

Exact in your account mailbox address. URL-encode the address when necessary.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account system username. Account username.

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": {
    "app_password_id": "STRONG_PASSWORD",
    "email": "mail@example.com",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/exampleacct/mail-security/mailboxes/mail%40example.com/app-passwords/STRONG_PASSWORD' \
  -H 'X-Api-User: demo' \
  -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.

Revoke a client application password
{
  "path_parameters": {
    "username": "exampleacct",
    "email": "mail@example.com",
    "app_password_id": "STRONG_PASSWORD"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Revoke app password
{
  "path_parameters": {
    "username": "demo",
    "email": "user@example.com",
    "app_password_id": "STRONG_PASSWORD"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess when an active application password was revoked

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/mail-security/mailboxes/{email}/lockdownroot reseller userBlock access to a mailbox you believe has been compromised.

Before you start

This stops sign-ins and authenticated sending, revokes app passwords and closes existing sessions. Incoming mail keeps its current setting. Read any warning about checks that could not be completed.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

emailRequired
Send in
URL path
Type
email
Accepted values
Any value matching email
Example
mail@example.com

Exact in your account mailbox address. URL-encode the address when required by the client.

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account username under the normal root, reseller-owned, or current-user ownership gate.

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

reasonOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Customer reported authenticated spam sending

Incident reason stored with the security alert, limited to 240 characters. Default: Suspected mailbox compromise.

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": {
    "email": "mail@example.com",
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "reason": "Customer reported authenticated spam sending"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/exampleacct/mail-security/mailboxes/mail%40example.com/lockdown' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"reason":"Customer reported authenticated spam sending"}'

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.

Lock down one compromised mailbox
{
  "path_parameters": {
    "username": "exampleacct",
    "email": "mail@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "reason": "Customer reported authenticated spam sending"
  }
}

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

Lock down a mailbox reported for spam
{
  "path_parameters": {
    "username": "demo",
    "email": "mail@example.com"
  },
  "query_parameters": {},
  "json_body": {
    "reason": "Customer reported authenticated spam sending"
  }
}

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

Successful result

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

FieldDocumented type or shape
login_suspended1 only after account YAML read-back verification
outgoing_suspended1 only after exact Exim map verification
incoming_state_preserved1 only when the previous incoming state remains exact
app_passwordsknown, removed, remaining, and verification counts
queued_messagesexact authenticated-mailbox queue matches, newly frozen count, remaining count, and scan verification
roundcube_sessionsremoved, remaining/unverified, and verification fields
dovecot_sessionsbefore/after observations, kicks, and zero-session verification
verification.complete1 only when YAML, ledger, maps, queue, Roundcube, and Dovecot checks all pass

Error response

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

MySQL Processes

GET/v1/accounts/{username}/mysql-processesroot reseller userView active MySQL or MariaDB connections and queries.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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

Authorized target SHM account username. Root may inspect any account, a reseller only an owned account, and an end user only their own account.

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

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": {
    "username": "demo"
  },
  "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/accounts/demo/mysql-processes?mode=full&draw=1&start=0&length=25&search=account&order_idx=1&order_dir=desc' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "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.

If a request_id is included, keep 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/accounts/{username}/mysql-processesroot reseller userView active MySQL or MariaDB connections and queries.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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

Authorized target SHM account username. Root may inspect any account, a reseller only an owned account, and an end user only their own account.

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

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": {
    "username": "demo"
  },
  "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/accounts/demo/mysql-processes' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "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/accounts/{username}/mysql-processes/{id}root reseller userStop a selected MySQL or MariaDB connection.

Before you start

Stopping a connection can interrupt the application using it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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/accounts/{username}/mysql-processes

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

Authorized target SHM account username. Root may target any account, a reseller only an owned account, and an end 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": {
    "id": 4101,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/mysql-processes/4101' \
  -H 'X-Api-User: demo' \
  -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,
    "username": "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."
}

Nodejs

GET/v1/accounts/{username}/nodejs/appsroot reseller userList Node.js applications with current status.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (11)

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.

app_idOptional
Send in
Query string
Type
string|integer
Accepted values
Any value matching string|integer
Example
1

Application ID. Exact application id used by limited status polling.

Validation and use: Minimum 1. GET /v1/accounts/{username}/nodejs/apps

drawOptional
Send in
Query string
Type
string|int
Accepted values
Any value matching string|int; default: 0
Example
1

DataTables draw counter. DataTables draw counter echoed in the limited response.

Validation and use: Minimum 0. Default: 0.

f_domainOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

F domain query parameter. Exact deployment-domain filter.

Validation and use:

f_modeOptional
Send in
Query string
Type
enum
Accepted values
production, development
Example
production

F mode query parameter. Exact configured application mode.

Validation and use:

f_statusOptional
Send in
Query string
Type
enum
Accepted values
running, stopped, errored, unknown
Example
running

F status query parameter. Current runtime-state group.

Validation and use:

f_versionOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
F_VERSION_FROM_LIST_RESPONSE

F version query parameter. Exact configured Node.js version.

Validation and use:

lengthOptional
Send in
Query string
Type
string|int
Accepted values
Any value matching string|int; default: 50
Example
50

Application page size.

Validation and use: Minimum 1. Maximum 500. Default: 50.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search term or search payload. Case-insensitive search across app name, domain, URL, path, version, runner, mode, and port. Native input is truncated to 160 bytes.

Validation and use: Maximum length 160.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search value query parameter. Compatibility alias of search. Prefer search. Native input is truncated to 160 bytes.

Validation and use: Maximum length 160.

startOptional
Send in
Query string
Type
string|int
Accepted values
Any value matching string|int; default: 0
Example
0

Row offset. Zero-based application offset.

Validation and use: Minimum 0. 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": {
    "username": "demo"
  },
  "query_parameters": {
    "app_id": 1,
    "draw": 1,
    "f_domain": "example.com",
    "f_mode": "production",
    "f_status": "running",
    "f_version": "F_VERSION_FROM_LIST_RESPONSE",
    "length": 50,
    "search": "account",
    "search_value": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps?draw=1&start=0&length=50' \
  -H 'X-Api-User: demo' \
  -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 a limited page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 50
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageHuman-readable result.
countTotal saved applications before filtering.
drawEchoed draw counter for paged requests.
recordsTotalTotal applications visible to the authorized account.
recordsFilteredApplications matching current filters.
apps[]Application configuration plus current runtime status, pid, health, runner, base_url, and autostart.
apps[].idApplication id.
apps[].nameApplication name.
apps[].domainOwned deployment domain.
apps[].base_urlApplication URL prefix.
apps[].modeproduction or development.
apps[].cwdCanonical application directory.
apps[].start_fileConfigured startup file.
apps[].start_cmdConfigured custom start command.
apps[].portAssigned unprivileged TCP port.
apps[].hostLoopback application host.
apps[].node_versionConfigured Node.js version.
apps[].runnerpm2 or node.
apps[].autostartManaged boot autostart state.
apps[].statusRunner-specific runtime status.
apps[].runtime_stateNormalized runtime state.
apps[].progress_stageNormalized lifecycle progress stage.
apps[].progress_messageConcise lifecycle progress result.
apps[].action_pendingWhether lifecycle readiness is still pending.
apps[].pidVerified managed process id when running.
apps[].envPersisted environment map.
apps[].createdCreation timestamp.
apps[].updatedLast configuration update timestamp.
apps[].last_actionLast persisted lifecycle action.
apps[].log_fileManaged application log path.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/nodejs/appsroot reseller userCreate a Node.js application.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (14)

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.

cwdRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
public_html/api

Existing application directory inside the account home, either relative to the home or an authorized absolute path.

Validation and use:

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

Main, addon, or subdomain owned by the account.

Validation and use: GET /v1/accounts/{username}/nodejs/domains

nameRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
api-engine

Unique application name within the account. Spaces are normalized to dashes before validation.

Validation and use: Minimum length 1. Maximum length 64. Pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$.

node_versionRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
20

Installed Node.js version returned by the domains endpoint.

Validation and use: GET /v1/accounts/{username}/nodejs/domains

portRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3001

Requested unprivileged TCP port. SHM may assign a different free port when the request is already reserved.

Validation and use: Minimum 1024. Maximum 65535.

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

Start the application from the managed account autostart pass after boot when enabled. Native input accepts JSON booleans and conventional 1/0, true/false, yes/no, or on/off values.

Validation and use: Default: false.

base_urlOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: /
Example
/

Application URL prefix. SHM adds a missing leading slash, removes trailing slashes, and rejects parent traversal.

Validation and use: Maximum length 255. Pattern: ^/[A-Za-z0-9._/-]+$. Default: /.

envOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object; default: {}
Example
{"LOG_LEVEL":"info"}

Map-only environment object with at most 100 keys matching ^[A-Za-z_][A-Za-z0-9_]*$. Each serialized value is limited to 4096 bytes. SHM overwrites NODE_ENV from mode.

Validation and use: Default: {}.

env_jsonOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
{"LOG_LEVEL":"info"}

Compatibility alternative containing one serialized JSON/YAML map; it is ignored when env is supplied. SHM overwrites NODE_ENV from mode.

Validation and use:

modeOptional
Send in
JSON body
Type
enum
Accepted values
production, development
Example
production

Runtime mode used for NODE_ENV and compatible watch behavior.

Validation and use: Default: production.

runnerOptional
Send in
JSON body
Type
enum
Accepted values
pm2, node
Example
pm2

Runtime supervisor. PM2 must be installed for the selected Node.js version when chosen.

Validation and use: Default: pm2.

start_cmdOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
npm start

Optional custom start command. Omit it to use start_file or an account-local package.json script.

Validation and use: Maximum length 2000.

start_fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
server.js

Optional existing readable startup file below cwd. Parent traversal is rejected.

Validation and use: Maximum length 255. Pattern: ^[A-Za-z0-9._/-]+$.

Complete 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": {
    "cwd": "public_html/api",
    "domain": "example.com",
    "name": "api-engine",
    "node_version": "20",
    "port": 3001,
    "autostart": true,
    "base_url": "/",
    "env": {
      "LOG_LEVEL": "info"
    },
    "env_json": "{\"LOG_LEVEL\":\"info\"}",
    "mode": "production",
    "runner": "pm2",
    "start_cmd": "npm start",
    "start_file": "server.js"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"name":"api-engine","domain":"example.com","cwd":"public_html/api","port":3001,"node_version":"20","runner":"pm2","autostart":true,"env":{"LOG_LEVEL":"info"}}'

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.

Register an application
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "name": "api-engine",
    "domain": "example.com",
    "cwd": "public_html/api",
    "port": 3001,
    "node_version": "20",
    "runner": "pm2",
    "autostart": true,
    "env": {
      "LOG_LEVEL": "info"
    }
  }
}

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

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageRegistration result and any reassigned-port notice.
appPersisted application configuration. Runtime start is a separate action.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
DELETE/v1/accounts/{username}/nodejs/apps/{id}root reseller userDelete a Node.js application.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/nodejs/apps

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageDeletion or cleanup-verification result.
app_idDeleted application id on success.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/nodejs/apps/{id}root reseller userView a single Node.js application configuration.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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. GET /v1/accounts/{username}/nodejs/apps

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess or warning.
titleHuman-readable result title.
messageHuman-readable result.
appApplication configuration including domain, base_url, runner, mode, port, environment, and autostart.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/accounts/{username}/nodejs/apps/{id}root reseller userEdit a Node.js application configuration.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (15)

idRequired
Send in
URL path
Type
int
Accepted values
Any value matching int
Example
3

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. GET /v1/accounts/{username}/nodejs/apps

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.

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

Enable or disable managed boot autostart. Native input accepts JSON booleans and conventional 1/0, true/false, yes/no, or on/off values.

Validation and use:

base_urlOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/api

Application URL prefix. SHM adds a missing leading slash, removes trailing slashes, and rejects parent traversal.

Validation and use: Maximum length 255. Pattern: ^/[A-Za-z0-9._/-]+$.

cwdOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CWD_FROM_LIST_RESPONSE

Existing application directory inside the account home.

Validation and use:

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

Main, addon, or subdomain owned by the account.

Validation and use: GET /v1/accounts/{username}/nodejs/domains

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

Replacement map-only environment object with at most 100 keys matching ^[A-Za-z_][A-Za-z0-9_]*$ and 4096 serialized bytes per value. SHM overwrites NODE_ENV from mode.

Validation and use:

env_jsonOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
{"LOG_LEVEL":"debug"}

Compatibility alternative containing one serialized JSON/YAML map; it is ignored when env is supplied. SHM overwrites NODE_ENV from mode.

Validation and use:

modeOptional
Send in
JSON body
Type
enum
Accepted values
production, development
Example
production

Runtime mode.

Validation and use:

nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NAME_FROM_LIST_RESPONSE

Unique application name within the account.

Validation and use: Minimum length 1. Maximum length 64. Pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$.

node_versionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
NODE_VERSION_FROM_LIST_RESPONSE

Installed Node.js version.

Validation and use: GET /v1/accounts/{username}/nodejs/domains

portOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
3010

Requested unprivileged TCP port.

Validation and use: Minimum 1024. Maximum 65535.

runnerOptional
Send in
JSON body
Type
enum
Accepted values
pm2, node
Example
pm2

Runtime supervisor.

Validation and use:

start_cmdOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
START_CMD_FROM_LIST_RESPONSE

Optional custom start command. An empty string clears it.

Validation and use: Maximum length 2000.

start_fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
server.js

Optional existing readable startup file below cwd. An empty string clears it; parent traversal is rejected.

Validation and use: Maximum length 255. Pattern: ^[A-Za-z0-9._/-]+$.

Complete 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": 3,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "autostart": true,
    "base_url": "/api",
    "cwd": "CWD_FROM_LIST_RESPONSE",
    "domain": "example.com",
    "env": {
      "LOG_LEVEL": "debug"
    },
    "env_json": "{\"LOG_LEVEL\":\"debug\"}",
    "mode": "production",
    "name": "NAME_FROM_LIST_RESPONSE",
    "node_version": "NODE_VERSION_FROM_LIST_RESPONSE",
    "port": 3010,
    "runner": "pm2",
    "start_cmd": "START_CMD_FROM_LIST_RESPONSE",
    "start_file": "server.js"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/3' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"port":3010}'

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 requested port
{
  "path_parameters": {
    "username": "demo",
    "id": 3
  },
  "query_parameters": {},
  "json_body": {
    "port": 3010
  }
}

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

Enable autostart
{
  "path_parameters": {
    "username": "demo",
    "id": 3
  },
  "query_parameters": {},
  "json_body": {
    "autostart": true
  }
}

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

Update environment
{
  "path_parameters": {
    "username": "demo",
    "id": 3
  },
  "query_parameters": {},
  "json_body": {
    "env": {
      "LOG_LEVEL": "debug"
    }
  }
}

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

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageUpdate result and any reassigned-port notice.
appComplete persisted application configuration after the partial update.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/nodejs/apps/{id}/actions/{action}root reseller userStart, stop or run another available control for a Node.js application.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

actionRequired
Send in
URL path
Type
enum
Accepted values
start, stop, restart, repair
Example
start

Lifecycle action. Allowed values: start, stop, restart, repair

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

idRequired
Send in
URL path
Type
int
Accepted values
Any value matching int
Example
3

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. GET /v1/accounts/{username}/nodejs/apps

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.

Supported actions and option sets

action values (4)
startstoprestartrepair
Action-specific request bodies
{
  "start": [],
  "stop": [],
  "restart": [],
  "repair": []
}

Complete 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",
    "id": 3,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/3/actions/start' \
  -H 'X-Api-User: demo' \
  -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.

Action: start
{
  "path_parameters": {
    "username": "demo",
    "id": 3,
    "action": "start"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Action: stop
{
  "path_parameters": {
    "username": "demo",
    "id": 3,
    "action": "stop"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Action: restart
{
  "path_parameters": {
    "username": "demo",
    "id": 3,
    "action": "restart"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Action: repair
{
  "path_parameters": {
    "username": "demo",
    "id": 3,
    "action": "repair"
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageLifecycle result.
actionExecuted lifecycle action.
app_idTarget application id.
runtime_statusRunner-specific status after the action.
runtime_stateNormalized running, stopped, or errored state.
progress_stageNormalized lifecycle completion stage.
progress_messageConcise lifecycle progress result.
action_pendingWhether runtime readiness is still pending.
pidVerified managed process id when running.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/nodejs/apps/{id}/logsroot reseller userRead a Node.js application's output and error messages.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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. GET /v1/accounts/{username}/nodejs/apps

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.

linesOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 200
Example
200

Number of lines to return. Optional log tail size. Defaults to `200`. Maximum lines read from each log stream.

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. Minimum 1. Maximum 2000. Default: 200.

Complete 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,
    "username": "demo"
  },
  "query_parameters": {
    "lines": 200
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/1/logs?lines=200' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "id": 1
  },
  "query_parameters": {
    "lines": 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.

FieldDocumented type or shape
statussuccess or warning.
titleHuman-readable result title.
messageHuman-readable result.
app_idTarget application id.
linesEffective bounded line count.
runnerConfigured pm2 or node runner.
out_fileResolved stdout log path.
err_fileResolved stderr log path.
outBounded stdout tail.
errBounded stderr tail.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/nodejs/apps/{id}/npm-installroot reseller userRun npm install inside Node.js app server and return output.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

idRequired
Send in
URL path
Type
int
Accepted values
Any value matching int
Example
3

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. GET /v1/accounts/{username}/nodejs/apps

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.

timeout_secondsOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 1200
Example
1800

Timeout in seconds. Bounded npm command timeout. Values outside the range are clamped.

Validation and use: Minimum 60. Maximum 3600. Default: 1200.

Complete 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": 3,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "timeout_seconds": 1800
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/3/npm-install' \
  -H 'X-Api-User: demo' \
  -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.

npm install with default timeout
{
  "path_parameters": {
    "username": "demo",
    "id": 3
  },
  "query_parameters": {},
  "json_body": {}
}

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

npm install with 30 minute timeout
{
  "path_parameters": {
    "username": "demo",
    "id": 3
  },
  "query_parameters": {},
  "json_body": {
    "timeout_seconds": 1800
  }
}

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

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messagenpm install result.
app_idTarget application id.
exit_codenpm process exit code.
trimmedWhether output exceeded the response cap.
outputSanitized bounded combined output.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/nodejs/discoveryroot reseller userFind Node.js projects in your account that you can set up as applications.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

limitOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 400
Example
100

Result size limit. Maximum discovered project rows.

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. Minimum 20. Maximum 1000. Default: 400.

max_depthOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 10
Example
8

Maximum recursive depth below the account home.

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. Minimum 2. Maximum 12. Default: 10.

Complete 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": {
    "limit": 100,
    "max_depth": 8
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/nodejs/discovery?max_depth=8&limit=100' \
  -H 'X-Api-User: demo' \
  -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.

Bounded discovery
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "max_depth": 8,
    "limit": 100
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageDiscovery result.
countNumber of discovered projects.
projects[]Project path, package name, suggested name/command, startup file, and entry-file candidates.
projects[].pathAccount-home-relative project directory.
projects[].suggestSuggested start command.
projects[].suggest_nameSuggested application name.
projects[].pkg_namepackage.json name.
projects[].mainpackage.json main entry.
projects[].start_scriptResolved package start script.
projects[].startup_fileSuggested startup file.
projects[].entry_files[]Detected candidate entry files.
projects[].has_packageWhether package.json was verified.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/nodejs/domainsroot reseller userList account domains available for Node.js app assignment.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/nodejs/domains' \
  -H 'X-Api-User: demo' \
  -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.

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageHuman-readable result.
countNumber of owned deployment domains.
domains[]Owned deployment targets with domain and type.
domains[].domainOwned domain name.
domains[].typemain, addon, or subdomain.
node_versions[]Installed Node.js versions accepted by create and PATCH.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/nodejs/ports/checkroot reseller userCheck requested Node.js port and provide a free suggestion.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

portRequired
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
3000

TCP port number. Requested application port.

Validation and use: Minimum 1024. Maximum 65535.

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

Application ID. Existing application id to exclude while checking its currently assigned port. Alias: id.

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

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

Resource ID. Compatibility alias of app_id. Prefer app_id.

Validation and use: Minimum 1. 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "port": 3000,
    "app_id": 1,
    "id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/nodejs/ports/check' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"port":3000}'

More examples

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

Check port 3000
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "port": 3000
  }
}

Successful result

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

FieldDocumented type or shape
statussuccess or error.
titleHuman-readable result title.
messageHuman-readable result.
requested_portValidated requested port.
is_freeBoolean availability result.
suggested_portRequested port when free, otherwise a free candidate.

Error response

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

Page Context

GET/v1/accounts/{username}/page-contextroot reseller userView an account overview and the tools available to it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/page-context' \
  -H 'X-Api-User: demo' \
  -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 account menu and platform capability state
{
  "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.

FieldDocumented type or shape
statusstring
messagestring
accountobject
show_breadcrumbboolean
featureprofileobject
runtime_capabilitiesobject{platform:object,cgroup:object,systemd:object,capabilities:object,podman:object,resource_limits:object,quota:object}
menuobject[]{type:string,feature:string,url:string,icon:string,label:string,available?:boolean,unavailable_reason?:string}

Error response

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

Password

PATCH/v1/accounts/{username}/passwordroot reseller userUpdate account password.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

New password (min 8 chars). Alias: new_password.

Validation and use:

new_passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

New password. Alias of `password`. Alias of password. Prefer 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "password": "STRONG_PASSWORD",
    "new_password": "STRONG_PASSWORD"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/password' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"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.

Rotate password
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "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."
}

PgSQL Processes

GET/v1/accounts/{username}/pgsql-processesroot reseller userView active PostgreSQL connections and queries.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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

Authorized target SHM account username. Root may inspect any account, a reseller only an owned account, and an end user only their own account.

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

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": {
    "username": "demo"
  },
  "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/accounts/demo/pgsql-processes?mode=full&draw=1&start=0&length=25&search=account&order_idx=1&order_dir=desc' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "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.

If a request_id is included, keep 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/accounts/{username}/pgsql-processesroot reseller userView active PostgreSQL connections and queries.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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

Authorized target SHM account username. Root may inspect any account, a reseller only an owned account, and an end user only their own account.

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

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": {
    "username": "demo"
  },
  "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/accounts/demo/pgsql-processes' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "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/accounts/{username}/pgsql-processes/{id}root reseller userStop a selected PostgreSQL connection.

Before you start

Stopping a connection can interrupt the application using it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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/accounts/{username}/pgsql-processes

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

Authorized target SHM account username. Root may target any account, a reseller only an owned account, and an end 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": {
    "id": 4101,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/pgsql-processes/4101' \
  -H 'X-Api-User: demo' \
  -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,
    "username": "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."
}

Php

POST/v1/accounts/{username}/php/fpm/reconcileroot reseller userRebuild and reload the PHP services used by your account's websites.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 POST 'https://panel.example.com:882/v1/accounts/demo/php/fpm/reconcile' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/accounts/{username}/php/runtimeroot reseller userSee which PHP version and OPcache setting each website uses.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/php/runtime' \
  -H 'X-Api-User: demo' \
  -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."
}
PATCH/v1/accounts/{username}/php/runtimeroot reseller userChange a website's PHP version or turn OPcache on or off.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Resource ID. Target id. For main use 0 (recommended). For addon/subdomain use the {id} from the respective list endpoint.

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

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target type: main, addon, subdomain. Allowed values: main, addon, subdomain.

Validation and use:

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

OPcache toggle. Enable/disable Opcache: "1" enable, "0" disable.

Validation and use:

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

PHP version setting. PHP version identifier in engine format, e.g. php82, php74.

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": {
    "id": 0,
    "type": "main",
    "setopcache": "1",
    "setphpversion": "php82"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/php/runtime' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"setphpversion":"php82"}'

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 PHP version (main)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "setphpversion": "php82"
  }
}

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

Enable Opcache (main)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "setopcache": "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/accounts/{username}/php/runtime/tableroot reseller userList PHP running service rows for main, addon, and subdomain web targets.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/php/runtime/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/php/runtime/tableroot reseller userList PHP running service rows for main, addon, and subdomain web targets.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/php/runtime/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/accounts/{username}/php/settingsroot reseller userView the PHP settings currently used by a website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

typeRequired
Send in
Query string
Type
enum
Accepted values
main, addon, subdomain
Example
main

Allowed values: main, addon, subdomain.

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.

idConditional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
0

Resource ID. For addon or subdomain targets: the item id from the corresponding domain list. For main, use 0 or omit the field on current account-specific calls that already imply the main domain.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Use the corresponding list endpoint for this resource and copy the returned id value. Choose the account or resource you want to 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": {
    "type": "main",
    "id": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/php/settings?type=main' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0}'

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 main-domain PHP settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0
  }
}

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

Read addon-domain PHP settings
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "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."
}
PATCH/v1/accounts/{username}/php/settingsroot reseller userChange PHP INI settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (18)

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.

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

Resource ID. Target id. For main use 0 (recommended). For addon/subdomain use the {id} from the respective list endpoint.

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

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target type: main, addon, subdomain. Allowed values: main, addon, subdomain.

Validation and use:

allow_url_fopenOptional
Send in
JSON body
Type
on|off|string
Accepted values
on, off
Example
on

allow_url_fopen. Values: on, off.

Validation and use:

date_timezoneOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
UTC

date.timezone value, e.g. "UTC" or "America/New_York". Field name uses underscore: date_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 function names to disable, e.g. "exec,shell_exec".

Validation and use:

display_errorsOptional
Send in
JSON body
Type
on|off|string
Accepted values
on, off
Example
on

display_errors. 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 using E_* constants and operators (&, |, ~).

Validation and use:

file_uploadsOptional
Send in
JSON body
Type
on|off|string
Accepted values
on, off
Example
on

file_uploads. Values: on, off.

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

max_execution_timeOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
30

max_execution_time seconds (1..3600).

Validation and use:

max_file_uploadsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
20

max_file_uploads (1..100).

Validation and use:

max_input_timeOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
60

max_input_time seconds (0..3600).

Validation and use:

max_input_varsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
5000

max_input_vars (1..10000).

Validation and use:

memory_limitOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1024M

memory_limit, e.g. "1024M". Must be digits + M.

Validation and use:

post_max_sizeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1024M

post_max_size, e.g. "1024M". Must be digits + M.

Validation and use:

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

session.gc_maxlifetime seconds (60..86400). Field name uses underscore: session_gc_maxlifetime.

Validation and use:

session_save_pathOptional
Send in
JSON body
Type
enum
Accepted values
/tmp, /home/{username}/
Example
/tmp

session.save_path. Allowed: /tmp or /home/{username}/...

Validation and use:

upload_max_filesizeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1024M

upload_max_filesize, e.g. "1024M". Must be digits + M.

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": {
    "id": 0,
    "type": "main",
    "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": "30",
    "max_file_uploads": "20",
    "max_input_time": "60",
    "max_input_vars": "5000",
    "memory_limit": "1024M",
    "post_max_size": "1024M",
    "session_gc_maxlifetime": 1,
    "session_save_path": "/tmp",
    "upload_max_filesize": "1024M"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/php/settings' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"memory_limit":"1024M","upload_max_filesize":"1024M","post_max_size":"1024M","max_file_uploads":"20","max_execution_time":"30","max_input_time":"60","max_input_vars":"5000"}'

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 common limits (main)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "memory_limit": "1024M",
    "upload_max_filesize": "1024M",
    "post_max_size": "1024M",
    "max_file_uploads": "20",
    "max_execution_time": "30",
    "max_input_time": "60",
    "max_input_vars": "5000"
  }
}

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

Toggle flags + set timezone (main)
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "allow_url_fopen": "on",
    "display_errors": "on",
    "file_uploads": "on",
    "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."
}

PHP

PATCH/v1/accounts/{username}/php/runtime/bulkroot reseller userBulk update PHP running service settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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

Account username. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

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

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

Runtime changes applied to every selected target. Include at least one of setphpversion or setopcache.

Validation and use:

targetsRequired
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
[{"type":"main","id":0},{"type":"addon","id":1}]

Non-empty list of in your account domain targets. Duplicate type/id pairs are ignored.

Validation and use:

changes.setopcacheOptional
Send in
JSON body
Type
enum
Accepted values
0, 1, off, on
Example
0

Disable or enable OPcache for every selected target. Accepted binary toggle forms are normalized to 0 or 1.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.setphpversionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
php83

Installed SHM PHP-FPM version identifier, for example php82 or php83. The matching executable must already exist.

Validation and use: Optional Send this value at the documented nested JSON body path. Pattern: ^php[0-9]{2}$.

targets[].idConditional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Use 0 for main or the PHP Manager list id for addon and subdomain targets.

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 when item present.

targets[].typeConditional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Domain target type. Parked domains are not selected directly; they inherit main-domain runtime changes.

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 when item present.

Complete 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": {
    "changes": {
      "setopcache": "1"
    },
    "targets": [
      {
        "type": "main",
        "id": 0
      },
      {
        "type": "addon",
        "id": 1
      }
    ],
    "changes.setopcache": 0,
    "changes.setphpversion": "php83",
    "targets[].id": 1,
    "targets[].type": "main"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/php/runtime/bulk' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"targets":[{"type":"main","id":0},{"type":"addon","id":1}],"changes":{"setopcache":"1"}}'

More examples

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

Enable OPcache on two domains
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "targets": [
      {
        "type": "main",
        "id": 0
      },
      {
        "type": "addon",
        "id": 1
      }
    ],
    "changes": {
      "setopcache": "1"
    }
  }
}
Switch one subdomain to an installed PHP version
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "targets": [
      {
        "type": "subdomain",
        "id": 2
      }
    ],
    "changes": {
      "setphpversion": "php83"
    }
  }
}

Successful result

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

If a request_id is included, keep 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/accounts/{username}/php/settings/bulkroot reseller userBulk update PHP settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

changesOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
CHANGES_FROM_LIST_RESPONSE

Validation and use:

targetsOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
TARGETS_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": {
    "changes": "CHANGES_FROM_LIST_RESPONSE",
    "targets": "TARGETS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/php/settings/bulk' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"targets":"TARGETS_FROM_LIST_RESPONSE","changes":"CHANGES_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": {
    "targets": "TARGETS_FROM_LIST_RESPONSE",
    "changes": "CHANGES_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."
}

Podman

POST/v1/accounts/{username}/podman/actions/{action}root reseller userManage your containers or a Compose application.

Before you start

Some actions continue in the background. Keep the returned operation ID and check its progress before starting another change.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (33)

actionRequired
Send in
URL path
Type
enum
Accepted values
dashboard_info, containers_list, container_config, container_logs, container_start, container_stop, container_restart, container_force_restart, container_remove, container_update, container_exec_session, images_list, images_simple, image_tags, image_ports, pull_image, image_remove, volumes_list, volume_inspect, volume_size, volume_remove, volume_prune, registry_list, registry_login, registry_logout, compose_projects_list, compose_project_get, compose_project_save, compose_project_delete, compose_config, compose_pull, compose_build, compose_up, compose_down, compose_restart, compose_operation_status, compose_status, compose_logs, suggest_port, run_container
Example
dashboard_info

Path parameter. Allowed values: dashboard_info, containers_list, container_config, container_logs, container_start, container_stop, container_restart, container_force_restart, container_remove, container_update, container_exec_session, images_list, images_simple, image_tags, image_ports, pull_image, image_remove, volumes_list, volume_inspect, volume_size, volume_remove, volume_prune, registry_list, registry_login, registry_logout, compose_projects_list, compose_project_get, compose_project_save, compose_project_delete, compose_config, compose_pull, compose_build, compose_up, compose_down, compose_restart, compose_operation_status, compose_status, compose_logs, suggest_port, run_container

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

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
myuser

For registry_login: registry username.

Validation and use: Required Replace this placeholder directly in the URL path. Choose the account or resource you want to use.

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

For compose_project_save/run_container/container_update: start automatically after server boot when set to 1/on/true. For run_container/container_update/compose_project_save: start automatically after server boot.

Validation and use:

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

For compose_pull, compose_build, compose_up, compose_down, or compose_restart: set to 1/on/true to return immediately with an operation_id and run through the detached account-bound worker. For compose_pull, compose_build, compose_up, compose_down, or compose_restart: set to 1/on/true to launch a detached account-bound worker and return operation_id without waiting for command completion. Omit it to preserve synchronous API behavior.

Validation and use:

composeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
COMPOSE_FROM_LIST_RESPONSE

Alias of yaml for compose_project_save. Prefer yaml.

Validation and use:

container_portConditional
Send in
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
80

For run_container/container_update: container port to expose (1..65535). Host port is auto-assigned.

Validation and use: Choose the account or resource you want to use.

cpusOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CPUS_FROM_LIST_RESPONSE

For run_container/container_update: CPU limit (e.g. "0.5", "1", "2").

Validation and use:

creds_passOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

For pull_image: registry password/token for a one-off pull (optional).

Validation and use:

creds_userOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CREDS_USER_FROM_LIST_RESPONSE

For pull_image: registry username for a one-off pull (optional).

Validation and use:

domainConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
main:1000

Domain name. Action-specific domain value (for example `run_container`). For run_container/container_update and compose_project_save: domain selector like main:{uid}, addon:{id}, subdomain:{id}. Compose containers with published ports are registered to this domain for Web Manager routing.

Validation and use: Choose the account or resource you want to use.

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

DataTables draw counter.

Validation and use:

envOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FOO=bar BAZ=qux

Environment variables. Action-specific environment content. For compose_project_save, this is the optional .env file content. For run_container/container_update: newline-separated KEY=VALUE entries. For compose_project_save: optional .env file content.

Validation and use:

imageConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
docker.io/library/nginx:latest

Container image name. Container image reference (repo[:tag]). Required for pull_image/run_container/container_update/image_ports/image_tags.

Validation and use: Choose the account or resource you want to use.

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

Page size.

Validation and use:

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

Number of lines to return. Action-specific log tail size (for example `container_logs`). For container_logs: number of log lines (default 500, max 20000).

Validation and use:

memoryOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
MEMORY_FROM_LIST_RESPONSE

For run_container/container_update: memory limit (e.g. "256m", "1g").

Validation and use:

nameConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
my-container

Container name. Required for container_* actions like container_restart/container_logs/container_remove/etc.

Validation and use: Choose the account or resource you want to use.

operation_idConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
podmancop_0123456789abcdef01234567

Required for compose_operation_status. Account-bound identifier returned by a background Compose start. Account-bound identifier returned by compose_pull/build/up/down/restart when background_operation is enabled. Another account receives not found rather than operation details.

Validation and use: Pattern: ^podmancop_[a-f0-9]{24}$. POST /v1/accounts/{username}/podman/actions/{action} Needed when: required when action=compose operation status.

output_cursorOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

For compose_operation_status: last output_cursor received. Defaults to 0. SHM returns only the next output delta, or output_reset=true with the limited retained tail when the cursor expired. For compose_operation_status: send 0 for the first poll, then the output_cursor from the previous response. The response contains only the next output delta; when output_reset is true, replace the local buffer with the returned limited output.

Validation and use: Minimum 0. Default: 0.

passwordConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

For registry_login: password/token (sent as JSON; handle securely).

Validation and use: Choose the account or resource you want to use.

projectConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
myapp

Compose project name for compose_* actions. Use 2-48 lowercase letters, numbers, and dash; start with a letter. For compose_* actions: project name, 2-48 lowercase letters/numbers/dash, starting with a letter.

Validation and use: Choose the account or resource you want to use.

refConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
docker.io/library/nginx:latest

Image or artifact reference. Action-specific image or artifact reference (for example `pull_image`, `image_ports`, or `image_tags`). Image reference for image_remove (exact ref shown by images_list).

Validation and use: Choose the account or resource you want to use.

registryConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
docker.io

Registry name or URL. For registry_login/registry_logout: registry host (e.g. docker.io, quay.io, registry.example.com).

Validation and use: Choose the account or resource you want to use.

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

For compose_project_delete: run compose down before deleting files. Defaults to 1. For compose_project_delete: run compose down before deleting the project directory.

Validation and use:

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

For registry_login: 1 to persist credentials (default 1).

Validation and use:

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

Search term or search payload.

Validation and use:

search.valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Validation and use: Optional Send this value at the documented nested JSON body path.

session_idConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
shm-session-123

Supplied in your request: terminal session prefix for container_exec_session. The SHM UI injects its current PHP session id; API callers must supply a non-empty value containing only letters, numbers, commas, and hyphens. This value is not returned by a prior Podman operation.

Validation and use: Pattern: ^[A-Za-z0-9,-]+$. Needed when: required when action=container exec session.

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

Row offset.

Validation and use:

status_filterOptional
Send in
JSON body
Type
enum
Accepted values
running, stopped
Example
running

Status filter request field. Allowed values: running, stopped. For containers_list: optional container state filter. Supported values: `running` or `stopped`. Empty returns all containers. For containers_list: return only running or stopped containers. Empty value returns all containers.

Validation and use:

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

For registry_login: verify TLS and require a valid HTTPS certificate (default 1). Set to 0 only for an explicitly trusted private registry that uses HTTP or a self-signed certificate; this affects only the requested login and does not alter server-wide registry policy.

Validation and use:

valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
VALUE_FROM_LIST_RESPONSE

Value payload.

Validation and use:

yamlConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
services: web: image: docker.io/library/nginx:alpine ports: - "127.0.0.1:40180:80"

Compose YAML for compose_project_save. Must define services and bind published host ports to 127.0.0.1. For compose_project_save: Compose YAML. Must define services. Published ports must use 127.0.0.1:host:container or long syntax host_ip: 127.0.0.1. Host bind mounts must stay inside the account home/project.

Validation and use: Choose the account or resource you want to use.

Supported actions and option sets

action values (40)
dashboard_infocontainers_listcontainer_configcontainer_logscontainer_startcontainer_stopcontainer_restartcontainer_force_restartcontainer_removecontainer_updatecontainer_exec_sessionimages_listimages_simpleimage_tagsimage_portspull_imageimage_removevolumes_listvolume_inspectvolume_sizevolume_removevolume_pruneregistry_listregistry_loginregistry_logoutcompose_projects_listcompose_project_getcompose_project_savecompose_project_deletecompose_configcompose_pullcompose_buildcompose_upcompose_downcompose_restartcompose_operation_statuscompose_statuscompose_logssuggest_portrun_container
Action-specific request bodies
{
  "dashboard_info": [],
  "containers_list": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "container_config": {
    "name": "my-container"
  },
  "container_logs": {
    "name": "my-container",
    "lines": 200
  },
  "container_start": {
    "name": "my-container"
  },
  "container_stop": {
    "name": "my-container"
  },
  "container_restart": {
    "name": "my-container"
  },
  "container_force_restart": {
    "name": "my-container"
  },
  "container_remove": {
    "name": "my-container"
  },
  "container_update": {
    "domain": "main:{account_uid}",
    "name": "my-container",
    "image": "docker.io/library/nginx:latest",
    "container_port": 80,
    "env": "FOO=bar\nBAZ=qux"
  },
  "container_exec_session": {
    "name": "my-container"
  },
  "images_list": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "images_simple": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "image_tags": {
    "image": "docker.io/library/nginx"
  },
  "image_ports": {
    "image": "docker.io/library/nginx:latest"
  },
  "pull_image": {
    "image": "docker.io/library/nginx:latest"
  },
  "image_remove": {
    "ref": "docker.io/library/nginx:latest"
  },
  "volumes_list": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "volume_inspect": {
    "name": "my-volume"
  },
  "volume_size": {
    "name": "my-volume"
  },
  "volume_remove": {
    "name": "my-volume"
  },
  "volume_prune": [],
  "registry_list": [],
  "registry_login": {
    "registry": "docker.io",
    "username": "myuser",
    "password": "STRONG_PASSWORD",
    "save": 1,
    "tls_verify": 1
  },
  "registry_logout": {
    "registry": "docker.io"
  },
  "compose_projects_list": [],
  "compose_project_get": {
    "project": "myapp"
  },
  "compose_project_save": {
    "project": "myapp",
    "domain": "main:{account_uid}",
    "autostart": 1,
    "yaml": "services:\n  web:\n    image: docker.io/library/nginx:alpine\n    ports:\n      - \"127.0.0.1:40180:80\"\n",
    "env": "APP_ENV=production\n"
  },
  "compose_project_delete": {
    "project": "myapp"
  },
  "compose_config": {
    "project": "myapp"
  },
  "compose_pull": {
    "project": "myapp",
    "background_operation": 1
  },
  "compose_build": {
    "project": "myapp",
    "background_operation": 1
  },
  "compose_up": {
    "project": "myapp",
    "background_operation": 1
  },
  "compose_down": {
    "project": "myapp",
    "background_operation": 1
  },
  "compose_restart": {
    "project": "myapp",
    "background_operation": 1
  },
  "compose_operation_status": {
    "operation_id": "podmancop_0123456789abcdef01234567",
    "output_cursor": 0
  },
  "compose_status": {
    "project": "myapp"
  },
  "compose_logs": {
    "project": "myapp",
    "lines": 500
  },
  "suggest_port": [],
  "run_container": {
    "domain": "main:{account_uid}",
    "name": "my-container",
    "image": "docker.io/library/nginx:latest",
    "container_port": 80,
    "env": "FOO=bar\nBAZ=qux"
  }
}

Complete 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": "dashboard_info",
    "username": "myuser"
  },
  "query_parameters": {},
  "json_body": {
    "autostart": 1,
    "background_operation": 1,
    "compose": "COMPOSE_FROM_LIST_RESPONSE",
    "container_port": 80,
    "cpus": "CPUS_FROM_LIST_RESPONSE",
    "creds_pass": "STRONG_PASSWORD",
    "creds_user": "CREDS_USER_FROM_LIST_RESPONSE",
    "domain": "main:1000",
    "draw": 1,
    "env": "FOO=bar\nBAZ=qux",
    "image": "docker.io/library/nginx:latest",
    "length": 25,
    "lines": 200,
    "memory": "MEMORY_FROM_LIST_RESPONSE",
    "name": "my-container",
    "operation_id": "podmancop_0123456789abcdef01234567",
    "output_cursor": 0,
    "password": "STRONG_PASSWORD",
    "project": "myapp",
    "ref": "docker.io/library/nginx:latest",
    "registry": "docker.io",
    "remove_runtime": 1,
    "save": 1,
    "search": {
      "value": ""
    },
    "search.value": "account",
    "session_id": "shm-session-123",
    "start": 0,
    "status_filter": "running",
    "tls_verify": 1,
    "value": "VALUE_FROM_LIST_RESPONSE",
    "yaml": "services:\n  web:\n    image: docker.io/library/nginx:alpine\n    ports:\n      - \"127.0.0.1:40180:80\"\n"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/myuser/podman/actions/dashboard_info' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Action: dashboard_info
{
  "path_parameters": {
    "action": "dashboard_info"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Action: containers_list
{
  "path_parameters": {
    "action": "containers_list"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  }
}

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

Action: container_config
{
  "path_parameters": {
    "action": "container_config"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container"
  }
}

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

Action: container_logs
{
  "path_parameters": {
    "action": "container_logs"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container",
    "lines": 200
  }
}

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

Action: container_start
{
  "path_parameters": {
    "action": "container_start"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container"
  }
}

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

Action: container_stop
{
  "path_parameters": {
    "action": "container_stop"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container"
  }
}

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

Action: container_restart
{
  "path_parameters": {
    "action": "container_restart"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container"
  }
}

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

Action: container_force_restart
{
  "path_parameters": {
    "action": "container_force_restart"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container"
  }
}

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

Action: container_remove
{
  "path_parameters": {
    "action": "container_remove"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container"
  }
}

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

Action: container_update
{
  "path_parameters": {
    "action": "container_update"
  },
  "query_parameters": {},
  "json_body": {
    "domain": "main:1000",
    "name": "my-container",
    "image": "docker.io/library/nginx:latest",
    "container_port": 80,
    "env": "FOO=bar\nBAZ=qux"
  }
}

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

Action: container_exec_session
{
  "path_parameters": {
    "action": "container_exec_session"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-container",
    "session_id": "shm-session-123"
  }
}

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

Action: images_list
{
  "path_parameters": {
    "action": "images_list"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  }
}

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

Action: images_simple
{
  "path_parameters": {
    "action": "images_simple"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  }
}

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

Action: image_tags
{
  "path_parameters": {
    "action": "image_tags"
  },
  "query_parameters": {},
  "json_body": {
    "image": "docker.io/library/nginx"
  }
}

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

Action: image_ports
{
  "path_parameters": {
    "action": "image_ports"
  },
  "query_parameters": {},
  "json_body": {
    "image": "docker.io/library/nginx:latest"
  }
}

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

Action: pull_image
{
  "path_parameters": {
    "action": "pull_image"
  },
  "query_parameters": {},
  "json_body": {
    "image": "docker.io/library/nginx:latest"
  }
}

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

Action: image_remove
{
  "path_parameters": {
    "action": "image_remove"
  },
  "query_parameters": {},
  "json_body": {
    "ref": "docker.io/library/nginx:latest"
  }
}

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

Action: volumes_list
{
  "path_parameters": {
    "action": "volumes_list"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  }
}

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

Action: volume_inspect
{
  "path_parameters": {
    "action": "volume_inspect"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-volume"
  }
}

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

Action: volume_size
{
  "path_parameters": {
    "action": "volume_size"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-volume"
  }
}

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

Action: volume_remove
{
  "path_parameters": {
    "action": "volume_remove"
  },
  "query_parameters": {},
  "json_body": {
    "name": "my-volume"
  }
}

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

Action: volume_prune
{
  "path_parameters": {
    "action": "volume_prune"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Action: registry_list
{
  "path_parameters": {
    "action": "registry_list"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Action: registry_login
{
  "path_parameters": {
    "action": "registry_login"
  },
  "query_parameters": {},
  "json_body": {
    "registry": "docker.io",
    "username": "myuser",
    "password": "STRONG_PASSWORD",
    "save": 1,
    "tls_verify": 1
  }
}

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

Action: registry_logout
{
  "path_parameters": {
    "action": "registry_logout"
  },
  "query_parameters": {},
  "json_body": {
    "registry": "docker.io"
  }
}

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

Action: compose_projects_list
{
  "path_parameters": {
    "action": "compose_projects_list"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Action: compose_project_get
{
  "path_parameters": {
    "action": "compose_project_get"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp"
  }
}

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

Action: compose_project_save
{
  "path_parameters": {
    "action": "compose_project_save"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "domain": "main:1000",
    "autostart": 1,
    "yaml": "services:\n  web:\n    image: docker.io/library/nginx:alpine\n    ports:\n      - \"127.0.0.1:40180:80\"\n",
    "env": "APP_ENV=production\n"
  }
}

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

Action: compose_project_delete
{
  "path_parameters": {
    "action": "compose_project_delete"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp"
  }
}

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

Action: compose_config
{
  "path_parameters": {
    "action": "compose_config"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp"
  }
}

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

Action: compose_pull
{
  "path_parameters": {
    "action": "compose_pull"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "background_operation": 1
  }
}

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

Action: compose_build
{
  "path_parameters": {
    "action": "compose_build"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "background_operation": 1
  }
}

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

Action: compose_up
{
  "path_parameters": {
    "action": "compose_up"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "background_operation": 1
  }
}

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

Action: compose_down
{
  "path_parameters": {
    "action": "compose_down"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "background_operation": 1
  }
}

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

Action: compose_restart
{
  "path_parameters": {
    "action": "compose_restart"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "background_operation": 1
  }
}

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

Action: compose_operation_status
{
  "path_parameters": {
    "action": "compose_operation_status"
  },
  "query_parameters": {},
  "json_body": {
    "operation_id": "podmancop_0123456789abcdef01234567",
    "output_cursor": 0
  }
}

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

Action: compose_status
{
  "path_parameters": {
    "action": "compose_status"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp"
  }
}

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

Action: compose_logs
{
  "path_parameters": {
    "action": "compose_logs"
  },
  "query_parameters": {},
  "json_body": {
    "project": "myapp",
    "lines": 500
  }
}

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

Action: suggest_port
{
  "path_parameters": {
    "action": "suggest_port"
  },
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Action: run_container
{
  "path_parameters": {
    "action": "run_container"
  },
  "query_parameters": {},
  "json_body": {
    "domain": "main:1000",
    "name": "my-container",
    "image": "docker.io/library/nginx:latest",
    "container_port": 80,
    "env": "FOO=bar\nBAZ=qux"
  }
}

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

Successful result

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

FieldDocumented type or shape
statussuccess|error
codestring|null; not_available for shared platform capability failure, podman_runtime_unavailable for account rootless UID/GID namespace rejection
messageHuman-readable result. Synchronous command failures include action context, terminal exit code, and up to 128 KiB of combined stdout/stderr; oversized output preserves its beginning and terminal cause with an explicit omitted-byte marker.
dataaction-specific object[]|object|null
operation_idFor a background Compose start: account-bound identifier matching podmancop_[a-f0-9]{24}.
startedFor a background Compose start: true when a new worker was launched.
reusedFor a background Compose start: true when an idempotent retry reused the active action for the same account/project.
operationFor background start/status: status, active, phase, concise message, elapsed_seconds, exact or safety-normalized terminal exit_code, bounded output delta, output cursor/reset/truncation metadata, and the full terminal response when complete.

Error response

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

Postgresql

POST/v1/accounts/{username}/postgresql/ai-accessroot reseller userInspect or work with data in your account's PostgreSQL databases.

Before you start

Choose one of the listed actions. This action does not accept your own SQL commands or server-administration commands.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (9)

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.

actionRequired
Send in
JSON body
Type
enum
Accepted values
list_databases, list_tables, describe_table, read_rows, insert_row, update_rows, delete_rows
Example
list_databases

Requested action name. Allowed values: list_databases, list_tables, describe_table, read_rows, insert_row, update_rows. Fixed limited operation. Data changes require the AI confirmation gate. Fixed account-limited operation.

Validation and use:

databaseConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
demo_app

Exact database name returned by list_databases. Required for every action except list_databases. Exact owned database returned by list_databases. Required except for list_databases.

Validation and use: Choose the account or resource you want to use.

limitOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 50
Example
1

Result size limit. read_rows returns at most 200 rows. update_rows/delete_rows use at most 100 and default to one affected row. read_rows range: 1-200, default 50. update_rows/delete_rows range: 1-100, default 1.

Validation and use: Minimum 1. Maximum 200. Default: 50.

offsetOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer; default: 0
Example
0

Bounded read_rows offset. read_rows zero-based offset, capped at 1,000,000.

Validation and use: Minimum 0. Maximum 1000000. Default: 0.

schemaOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: public
Example
public

Exact schema name. Used by describe_table, read_rows, insert_row, update_rows, and delete_rows. Exact schema returned by list_tables. Default: public.

Validation and use: Default: public.

tableConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
users

Exact table/view name returned by list_tables. Views are read-only. Exact table/view returned by list_tables.

Validation and use: Choose the account or resource you want to use.

valuesConditional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"value":"on"}

Column-to-scalar/null map for insert_row or update_rows. Expressions and nested objects/arrays are rejected. Required for insert_row/update_rows. Keys must be real writable columns; values must be scalar or null. SQL expressions and nested data are rejected.

Validation and use: Choose the account or resource you want to use.

whereConditional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"key":"maintenance"}

Required non-empty exact-equality column map for update_rows/delete_rows. Null uses IS NULL. Unbounded changes are impossible. Required non-empty exact-equality map for update_rows/delete_rows. Null becomes IS NULL.

Validation and use: Choose the account or resource you want to 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": {
    "action": "list_databases",
    "database": "demo_app",
    "limit": 1,
    "offset": 0,
    "schema": "public",
    "table": "users",
    "values": {
      "value": "on"
    },
    "where": {
      "key": "maintenance"
    }
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/postgresql/ai-access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"action":"list_databases"}'

Example note: Requires a documented runtime value 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 owned PostgreSQL databases
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "list_databases"
  }
}

Requires a documented runtime value before QA can execute this request.

Inspect table structure
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "describe_table",
    "database": "demo_app",
    "schema": "public",
    "table": "users"
  }
}

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

Update one exact row
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "update_rows",
    "database": "demo_app",
    "schema": "public",
    "table": "settings",
    "values": {
      "value": "on"
    },
    "where": {
      "key": "maintenance"
    },
    "limit": 1
  }
}

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

Read a limited redacted page
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "action": "read_rows",
    "database": "demo_app",
    "schema": "public",
    "table": "orders",
    "limit": 50,
    "offset": 0
  }
}

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

Successful result

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

FieldDocumented type or shape
actionstring
databasestring
schemastring
tablestring
databases[]["id","database","users[]","size_mb"]
tables[]["schema","table","kind","size_bytes","estimated_rows"]
columns[]["name","type","nullable","default","sensitive","identity","generated"]
indexes[]["name","definition"]
rows[]object with secret-like fields redacted
affected_rowsint
max_affected_rowsint
sensitive_fields_redactedbool

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/postgresql/databasesroot reseller userList the PostgreSQL databases in your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/postgresql/databases?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 PostgreSQL databases
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/postgresql/databasesroot reseller userCreate a PostgreSQL database for your website or application.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

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.

database_nameRequired
Send in
JSON body
Type
enum
Accepted values
letters, numbers, underscore
Example
letters

Database name. Allowed characters: letters, numbers, underscore. Must be globally unique in PostgreSQL. Allowed: letters, numbers, underscore. Max 63 chars.

Validation and use:

databasenameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DATABASENAME_FROM_LIST_RESPONSE

Validation and use:

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

Validation and use:

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

Create a same-name PostgreSQL user and grant ALL. If that same-name user already exists in this account, SHM reuses it and grants access instead of creating a duplicate user. Alias: newdbuser. Create a PostgreSQL user with the same final name and grant ALL privileges.

Validation and use:

pg_usersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
PG_USERS_FROM_LIST_RESPONSE

Validation and use:

selectdbusersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
SELECTDBUSERS_FROM_LIST_RESPONSE

Selected database users.

Validation and use:

selectpgusersOptional
Send in
JSON body
Type
array|string|string[]
Accepted values
Any value matching array|string|string[]
Example
SELECTPGUSERS_FROM_LIST_RESPONSE

Existing PostgreSQL users owned by this account to grant. Alias: selectdbusers. Existing PostgreSQL users owned by this account that should receive access.

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": {
    "database_name": "letters",
    "databasename": "DATABASENAME_FROM_LIST_RESPONSE",
    "newdbuser": 1,
    "newpguser": 1,
    "pg_users": "PG_USERS_FROM_LIST_RESPONSE",
    "selectdbusers": "SELECTDBUSERS_FROM_LIST_RESPONSE",
    "selectpgusers": "SELECTPGUSERS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/postgresql/databases' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"database_name":"letters","newpguser":1}'

Example note: Requires a documented runtime value 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 PostgreSQL database and same-name user
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "database_name": "letters",
    "newpguser": 1
  }
}

Requires a documented runtime value 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/accounts/{username}/postgresql/databases/{id}root reseller userDelete a PostgreSQL database from your account.

Before you start

Keep a backup if you may need its contents later.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

idRequired
Send in
URL path
Type
string|int|integer
Accepted values
Any value matching string|int|integer
Example
1

Database id from the PostgreSQL database list.

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

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/postgresql/databases/1' \
  -H 'X-Api-User: demo' \
  -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 PostgreSQL database id 1
{
  "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."
}
PATCH/v1/accounts/{username}/postgresql/databases/{id}root reseller userChoose which database users may access this PostgreSQL database.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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. GET /v1/accounts/{username}/databases

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.

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

PostgreSQL user names to keep assigned. Empty array removes all assignments. Alias: selectdbusers.

Validation and use:

pg_usersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
PG_USERS_FROM_LIST_RESPONSE

Validation and use:

selectdbusersOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
SELECTDBUSERS_FROM_LIST_RESPONSE

Selected database users.

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,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "selectpgusers": [
      "app"
    ],
    "pg_users": "PG_USERS_FROM_LIST_RESPONSE",
    "selectdbusers": "SELECTDBUSERS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/postgresql/databases/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"selectpgusers":["app"]}'

Example note: Requires a documented runtime value 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.

Assign a PostgreSQL user
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "selectpgusers": [
      "app"
    ]
  }
}

Requires a documented runtime value 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/accounts/{username}/postgresql/usersroot reseller userList your PostgreSQL users and their permitted remote connections.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/postgresql/users?account_user=demo' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 PostgreSQL users
{
  "path_parameters": {},
  "query_parameters": {
    "account_user": "demo"
  },
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/postgresql/usersroot reseller userCreate a PostgreSQL login and choose which databases it can use.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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.

pguser_nameRequired
Send in
JSON body
Type
enum
Accepted values
letters, numbers, underscore
Example
letters

User name. Allowed characters: letters, numbers, underscore. Must be globally unique in PostgreSQL. Alias: dbuser_name. Allowed: letters, numbers, underscore. Max 63 chars.

Validation and use:

dbuserOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DBUSER_FROM_LIST_RESPONSE

Validation and use:

dbuser_databasesOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
DBUSER_DATABASES_FROM_LIST_RESPONSE

Validation and use:

dbuser_nameOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
DBUSER_NAME_FROM_LIST_RESPONSE

Database username.

Validation and use:

dbuserpasswordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Database user password.

Validation and use:

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

Allowed remote PostgreSQL hosts for this in your account user. Accepts single IP/CIDR entries only. Empty or omitted keeps local-only access. Loopback entries are protected local access and are omitted from the managed list. Wildcards/all/0.0.0.0/0/::/0 and PostgreSQL root/superuser/admin remote access are blocked. Accepts single IP/CIDR entries only, for example 203.0.113.10 or 203.0.113.0/24. Empty or omitted keeps the user local-only. Loopback entries are protected local access and are omitted from the customer-managed list.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Explicit password. If omitted, SHM generates and returns a strong password once. If omitted, SHM generates a strong password and returns it once.

Validation and use:

pguserOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PGUSER_FROM_LIST_RESPONSE

Validation and use:

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

Existing account PostgreSQL databases to grant. Alias: dbuser_databases/selectdatabases.

Validation and use:

privilegesOptional
Send in
JSON body
Type
array|string[]|string
Accepted values
ALL, CONNECT, CREATE, TEMPORARY, SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, USAGE
Example
ALL

Allowed: ALL, CONNECT, CREATE, TEMPORARY, SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, USAGE. Default: ALL.

Validation and use:

selectdatabasesOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
SELECTDATABASES_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": {
    "pguser_name": "letters",
    "dbuser": "DBUSER_FROM_LIST_RESPONSE",
    "dbuser_databases": "DBUSER_DATABASES_FROM_LIST_RESPONSE",
    "dbuser_name": "DBUSER_NAME_FROM_LIST_RESPONSE",
    "dbuserpassword": "STRONG_PASSWORD",
    "hosts": [
      "203.0.113.10"
    ],
    "password": "STRONG_PASSWORD",
    "pguser": "PGUSER_FROM_LIST_RESPONSE",
    "pguser_databases": [
      "appdb"
    ],
    "privileges": "ALL",
    "selectdatabases": "SELECTDATABASES_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/postgresql/users' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"pguser_name":"letters","pguser_databases":["appdb"],"privileges":"ALL","hosts":["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.

Create PostgreSQL read-write user
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "pguser_name": "letters",
    "pguser_databases": [
      "appdb"
    ],
    "privileges": "ALL",
    "hosts": [
      "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."
}
DELETE/v1/accounts/{username}/postgresql/users/{id}root reseller userDelete a PostgreSQL login from your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

idRequired
Send in
URL path
Type
string|int|integer
Accepted values
Any value matching string|int|integer
Example
1

PostgreSQL user id from the account PostgreSQL users list.

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.

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/postgresql/users/1' \
  -H 'X-Api-User: demo' \
  -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 PostgreSQL user id 1
{
  "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."
}
PATCH/v1/accounts/{username}/postgresql/users/{id}root reseller userChange a PostgreSQL user's password, permissions or allowed IP addresses.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (9)

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.

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.

dbuser_databasesOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
DBUSER_DATABASES_FROM_LIST_RESPONSE

Validation and use:

dbuserpasswordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Database user password.

Validation and use:

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

Replacement allowed remote PostgreSQL hosts for this in your account user. Accepts single IP/CIDR entries only. Empty array removes remote access; omitted keeps current hosts. Loopback entries are protected local access and are omitted from the managed list. Wildcards/all/0.0.0.0/0/::/0 and PostgreSQL root/superuser/admin remote access are blocked. Empty array removes remote access; omitted keeps the current hosts. Loopback entries are protected local access and are omitted from the customer-managed list.

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Set a new PostgreSQL user password. Alias: dbuserpassword.

Validation and use:

permissionsOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
PERMISSIONS_FROM_LIST_RESPONSE

Replacement PostgreSQL privileges. Default/current is kept when omitted.

Validation and use:

pguser_databasesOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
PGUSER_DATABASES_FROM_LIST_RESPONSE

Replacement database grants. Omit to keep current database assignments.

Validation and use:

selectdatabasesOptional
Send in
JSON body
Type
array|string
Accepted values
Any value matching array|string
Example
SELECTDATABASES_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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "dbuser_databases": "DBUSER_DATABASES_FROM_LIST_RESPONSE",
    "dbuserpassword": "STRONG_PASSWORD",
    "hosts": [
      "203.0.113.10"
    ],
    "password": "STRONG_PASSWORD",
    "permissions": "PERMISSIONS_FROM_LIST_RESPONSE",
    "pguser_databases": "PGUSER_DATABASES_FROM_LIST_RESPONSE",
    "selectdatabases": "SELECTDATABASES_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/postgresql/users/1' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"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.

Rotate PostgreSQL user password
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "password": "STRONG_PASSWORD"
  }
}

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

Restrict PostgreSQL user to one remote IP
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "hosts": [
      "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."
}

PostgreSQL

POST/v1/accounts/{username}/pgadmin/accessroot reseller userGet a sign-in link to manage your PostgreSQL databases in pgAdmin.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (3)

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

Authorized target SHM account username. Root may target any account, a reseller only an owned account, and an end user only their own account.

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

hostRequired
Send in
JSON body
Type
hostname|IPv4|IPv6
Accepted values
Any value matching hostname|IPv4|IPv6
Example
hosting.example.com

SHM provider host used to construct the fixed pgAdmin bridge URL. Supply the trusted server hostname or address without a URL path.

Validation and use:

remote_ipOptional
Send in
JSON body
Type
IP address
Accepted values
Any value matching IP address
Example
203.0.113.10

Original client IP bound to the short-lived sign-on token when available.

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": {
    "host": "hosting.example.com",
    "remote_ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/pgadmin/access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"host":"hosting.example.com","remote_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.

Prepare pgAdmin access
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "host": "hosting.example.com",
    "remote_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."
}

Resource Usage

GET/v1/accounts/{username}/resource-usage/historyroot reseller userReview CPU, memory and other resource use over time.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

resourceRequired
Send in
Query string
Type
enum
Accepted values
cpu, memory, processes, disk, innodes, diskread, diskwrite
Example
cpu

Resource metric name. Allowed values: cpu, memory, processes, disk, innodes, diskread, diskwrite.

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.

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: 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.

formatOptional
Send in
Query string
Type
enum
Accepted values
object, compact
Example
object

`object` returns `{x,y}` points. `compact` returns `[timestamp,value]` points for smaller chart payloads.

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. Default: object.

timeRangeOptional
Send in
Query string
Type
int
Accepted values
Any value matching int; 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": {
    "username": "demo"
  },
  "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/accounts/demo/resource-usage/history?resource=cpu' \
  -H 'X-Api-User: demo' \
  -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": {
    "resource": "cpu"
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
data[]["x","y"]
data[] compact["timestamp","value"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/resource-usage/historyroot reseller userReview CPU, memory and other resource use over time.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

resourceRequired
Send in
JSON body
Type
enum
Accepted values
cpu, memory, processes, disk, innodes, diskread, diskwrite
Example
cpu

Resource metric name. Allowed values: cpu, memory, processes, disk, innodes, diskread, diskwrite.

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.

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: 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.

formatOptional
Send in
JSON body
Type
enum
Accepted values
object, compact
Example
object

`object` returns `{x,y}` points. `compact` returns `[timestamp,value]` points for smaller chart payloads.

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. Default: object.

timeRangeOptional
Send in
JSON body
Type
int
Accepted values
Any value matching int; 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": {
    "username": "demo"
  },
  "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/accounts/demo/resource-usage/history' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"resource":"cpu"}'

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": {
    "resource": "cpu"
  }
}

Successful result

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

If a request_id is included, keep 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/accounts/{username}/resource-usage/liveroot reseller userSee current CPU and memory use and the busiest processes.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/resource-usage/live' \
  -H 'X-Api-User: demo' \
  -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.

FieldDocumented type or shape
tasks_currentint
tasks_maxstring|int
process_countint
cpu_totalfloat
memory_total_mbfloat
threads_totalint
processes_top[]["pid","user","pcpu","pmem","rss_kb","rss_mb","threads","cmd"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/resource-usage/liveroot reseller userSee current CPU and memory use and the busiest processes.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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 POST 'https://panel.example.com:882/v1/accounts/demo/resource-usage/live' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/accounts/{username}/resource-usage/snapshotroot reseller userSee which processes were running at the selected time.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

resourceRequired
Send in
Query string
Type
enum
Accepted values
cpu, memory, processes
Example
cpu

Resource metric name. Allowed values: cpu, memory, processes.

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.

tsRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TS_FROM_LIST_RESPONSE

Timestamp parseable by PHP DateTime (ISO-8601 recommended).

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.

limitOptional
Send in
Query string
Type
int
Accepted values
Any value matching int; default: 200
Example
200

Request parameter.

Validation and use: Minimum 10. Maximum 500. Default: 200.

timestampOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
60

Timestamp value.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "resource": "cpu",
    "ts": "TS_FROM_LIST_RESPONSE",
    "limit": 200,
    "timestamp": 60
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/resource-usage/snapshot?resource=cpu&ts=TS_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "resource": "cpu",
    "ts": "TS_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.

FieldDocumented type or shape
columns[]array
rows[]array
exactbool

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/resource-usage/snapshotroot reseller userSee which processes were running at the selected time.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

resourceRequired
Send in
JSON body
Type
enum
Accepted values
cpu, memory, processes
Example
cpu

Resource metric name. Allowed values: cpu, memory, processes.

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.

tsRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TS_FROM_LIST_RESPONSE

Timestamp parseable by PHP DateTime (ISO-8601 recommended).

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.

limitOptional
Send in
JSON body
Type
int
Accepted values
Any value matching int; default: 200
Example
200

Request parameter.

Validation and use: Minimum 10. Maximum 500. Default: 200.

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

Timestamp value.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "resource": "cpu",
    "ts": "TS_FROM_LIST_RESPONSE",
    "limit": 200,
    "timestamp": 60
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/resource-usage/snapshot' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"resource":"cpu","ts":"TS_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": {
    "resource": "cpu",
    "ts": "TS_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."
}

Resources

GET/v1/accounts/{username}/resources/tableroot reseller userSearch or browse a selected type of resource in your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/resources/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/resources/tableroot reseller userSearch or browse a selected type of resource in your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

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

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

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

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

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

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

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

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

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

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

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

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

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

Case-insensitive search text applied by the search before results are divided into pages.

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.

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

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/resources/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/searchroot reseller userFind a page or resource you can access in SHM.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

qOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
dns zones

Search query. Queries shorter than two characters return an empty result set.

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.

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

When true, validate or rebuild the role-appropriate derived search index before returning. Root and reseller indexes include authorized DNS zones; an end-user index contains only that account's resources.

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. 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": {
    "q": "dns zones",
    "warm": 1
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/search?q=dns+zones' \
  -H 'X-Api-User: demo' \
  -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.

Search visible resources
{
  "path_parameters": {},
  "query_parameters": {
    "q": "dns zones"
  },
  "json_body": {}
}
Prepare the current role search index
{
  "path_parameters": {},
  "query_parameters": {
    "warm": 1
  },
  "json_body": {}
}

Successful result

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

FieldDocumented type or shape
statussuccess.
queryNormalized search query used for matching.
results[]Non-empty result groups visible to the authenticated caller.
results[].categoryResult group label, such as Accounts, Domains, DNS Zones, Email Accounts, Databases, FTP Accounts, or Node.js Apps.
results[].items[]Search result items in the category.
results[].items[].titlePrimary result label.
results[].items[].subtitleOptional contextual result text.
results[].items[].main_urlPrimary SHM page URL.
results[].items[].sub_urlOptional nested account-page URL.
results[].items[].account_userTarget account username when the result is account-scoped; otherwise empty.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/searchroot reseller userFind a page or resource you can access in SHM.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

qOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
dns zones

Search query. Queries shorter than two characters return an empty result set.

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.

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

When true, validate or rebuild the role-appropriate derived search index before returning. Root and reseller indexes include authorized DNS zones; an end-user index contains only that account's resources.

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. 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": {
    "q": "dns zones",
    "warm": true
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/search' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"q":"dns zones"}'

More examples

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

Search visible resources
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "q": "dns zones"
  }
}
Prepare the current role search index
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "warm": true
  }
}

Successful result

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

FieldDocumented type or shape
statussuccess.
queryNormalized search query used for matching.
results[]Non-empty result groups visible to the authenticated caller.
results[].categoryResult group label, such as Accounts, Domains, DNS Zones, Email Accounts, Databases, FTP Accounts, or Node.js Apps.
results[].items[]Search result items in the category.
results[].items[].titlePrimary result label.
results[].items[].subtitleOptional contextual result text.
results[].items[].main_urlPrimary SHM page URL.
results[].items[].sub_urlOptional nested account-page URL.
results[].items[].account_userTarget account username when the result is account-scoped; otherwise empty.

Error response

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

Security

PATCH/v1/accounts/{username}/engine-api/enabledroot reseller userTurn API access on or off for an account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/enabled' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/keysroot reseller userRevoke an API key.

Before you start

Keep API keys private and give each integration only the access it needs.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/keys' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/keysroot reseller userCreate 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 account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/keys' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/keys/revealroot reseller userView a saved API key.

Before you start

Keep the key private. Anyone with a valid key can use its assigned permissions.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/keys/reveal' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/keys/rotateroot reseller userReplace an API key with a new one.

Before you start

Update applications that use the old key.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/keys/rotate' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/profileroot reseller userView an account's API access and permissions.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/profile' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/rolesroot reseller userRemove an API permission assignment.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/roles' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/engine-api/rolesroot reseller userSet the permissions available to an API user.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/engine-api/roles' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/accounts/{username}/security/contextroot reseller userView your account's security and access settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/security/context' \
  -H 'X-Api-User: demo' \
  -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/accounts/{username}/security/ip-accessroot reseller userRemove IP address or network range from account IP access controls.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

ipaddressRequired
Send in
JSON body
Type
string|ipv4|cidr
Accepted values
Any value matching string|ipv4|cidr
Example
203.0.113.10

IPv4 address. IPv4 address or CIDR to remove. IP address or CIDR range to remove. Alias: ip.

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4|cidr
Accepted values
Any value matching string|ipv4|cidr
Example
203.0.113.10

IPv4 address. Alias of `ipaddress`. Alias of ipaddress. Prefer ipaddress.

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": {
    "ipaddress": "203.0.113.10",
    "ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/security/ip-access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"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.

Remove office IP
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ipaddress": "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/accounts/{username}/security/ip-accessroot reseller userList account IP access controls.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/security/ip-access' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/security/ip-accessroot reseller userAdd IP address or network range to account IP access controls.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

ipaddressRequired
Send in
JSON body
Type
string|ipv4|cidr
Accepted values
Any value matching string|ipv4|cidr
Example
203.0.113.10

IPv4 address. IPv4 address or CIDR to add. IP address or CIDR range to add. Alias: ip.

Validation and use:

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Office

Optional comment label.

Validation and use:

ipOptional
Send in
JSON body
Type
string|ipv4|cidr
Accepted values
Any value matching string|ipv4|cidr
Example
203.0.113.10

IPv4 address. Alias of `ipaddress`. Alias of ipaddress. Prefer ipaddress.

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": {
    "ipaddress": "203.0.113.10",
    "comment": "Office",
    "ip": "203.0.113.10"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/security/ip-access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"ipaddress":"203.0.113.10","comment":"Office"}'

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.

Allow office IP
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "ipaddress": "203.0.113.10",
    "comment": "Office"
  }
}

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/accounts/{username}/security/passwordroot reseller userChange account password (requires current password).

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

confirm_passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Password confirmation. Repeat of `new_password`. Repeat new_password for confirmation.

Validation and use:

current_passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Current password.

Validation and use:

new_passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

New password. New account password. New password (min 8 chars).

Validation and use:

passwordOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

Password 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "confirm_password": "STRONG_PASSWORD",
    "current_password": "STRONG_PASSWORD",
    "new_password": "STRONG_PASSWORD",
    "password": "STRONG_PASSWORD"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/security/password' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"current_password":"STRONG_PASSWORD","new_password":"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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "current_password": "STRONG_PASSWORD",
    "new_password": "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."
}
PATCH/v1/accounts/{username}/security/service-accessroot reseller userChoose which IP addresses may connect to Webmail, email apps and FTP.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (22)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Authorized target SHM account username. Root may update any account, a reseller only owned accounts, and an end user only their own account.

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

allowed_ipsOptional
Send in
JSON body
Type
array<object|string>|comma-separated string
Accepted values
Any value matching array<object|string>|comma-separated string
Example
ALLOWED_IPS_FROM_LIST_RESPONSE

Compatibility alias for ips. Prefer ips.

Validation and use: Needed when: optional alias of ips.

ip_modeOptional
Send in
JSON body
Type
enum
Accepted values
off, account, custom, inherit_account, account_ip_access, account_ip_access_list
Example
custom

Compatibility alias for mode. Prefer mode.

Validation and use: Needed when: optional alias of mode.

ipaccesscontrolOptional
Send in
JSON body
Type
array<object|string>|comma-separated string
Accepted values
Any value matching array<object|string>|comma-separated string
Example
IPACCESSCONTROL_FROM_LIST_RESPONSE

Compatibility alias for ips. Prefer ips.

Validation and use: Needed when: optional alias of ips.

ipsConditional
Send in
JSON body
Type
array<object|string>|comma-separated string
Accepted values
Any value matching array<object|string>|comma-separated string
Example
[{"ipaddress":"198.51.100.0/24"}]

Allowed IP/CIDR entries for the single-policy form. Objects accept ip or ipaddress plus optional comment.

Validation and use: Needed when: required when mode is custom.

ips[].commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
IPS_COMMENT_FROM_LIST_RESPONSE

Human-readable label for the allowed source.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

ips[].ipConditional
Send in
JSON body
Type
IP address|CIDR|string
Accepted values
Any value matching IP address|CIDR|string
Example
IPS_IP_FROM_LIST_RESPONSE

Allowed IPv4, IPv6, or CIDR value.

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 for object entries unless ipaddress is supplied.

ips[].ipaddressOptional
Send in
JSON body
Type
IP address|CIDR|string
Accepted values
Any value matching IP address|CIDR|string
Example
IPS_IPADDRESS_FROM_LIST_RESPONSE

Compatibility alias for ip. Prefer ip.

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 alias of ips[].ip.

modeConditional
Send in
JSON body
Type
enum
Accepted values
off, account, custom
Example
account

Single-policy mode. Aliases inherit_account, account_ip_access, and account_ip_access_list normalize to account.

Validation and use: Needed when: required when policies is omitted unless ip mode is supplied.

policiesOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"ftp":{"mode":"custom","ips":[{"ip":"203.0.113.10","comment":"Office"}]},"webmail_direct":{"mode":"custom","ips":["2001:db8::/48"]}}

Map containing one or more policy objects keyed by webmail_direct, mail_protocols, or ftp. Unknown scopes are rejected.

Validation and use: Needed when: optional; alternative to scope.

policies.*.allowed_ipsOptional
Send in
JSON body
Type
array<object|string>|comma-separated string
Accepted values
Any value matching array<object|string>|comma-separated string
Example
POLICIES_ALLOWED_IPS_FROM_LIST_RESPONSE

Compatibility alias for ips. Prefer ips.

Validation and use: Optional Send this value at the documented nested JSON body path; * means every named object member. Needed when: optional alias of policies.*.ips.

policies.*.ip_modeOptional
Send in
JSON body
Type
enum
Accepted values
off, account, custom, inherit_account, account_ip_access, account_ip_access_list
Example
off

Compatibility alias for mode. Prefer mode.

Validation and use: Optional Send this value at the documented nested JSON body path; * means every named object member. Needed when: optional alias of policies.*.mode.

policies.*.ipaccesscontrolOptional
Send in
JSON body
Type
array<object|string>|comma-separated string
Accepted values
Any value matching array<object|string>|comma-separated string
Example
POLICIES_IPACCESSCONTROL_FROM_LIST_RESPONSE

Compatibility alias for ips. Prefer ips.

Validation and use: Optional Send this value at the documented nested JSON body path; * means every named object member. Needed when: optional alias of policies.*.ips.

policies.*.ipsConditional
Send in
JSON body
Type
array<object|string>|comma-separated string
Accepted values
Any value matching array<object|string>|comma-separated string
Example
POLICIES_IPS_FROM_LIST_RESPONSE

Allowed IP/CIDR entries. Objects accept ip or ipaddress plus an optional comment.

Validation and use: Conditional Send this value at the documented nested JSON body path; * means every named object member. Needed when: required when the policy mode is custom.

policies.*.ips[].commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
POLICIES_IPS_COMMENT_FROM_LIST_RESPONSE

Human-readable label for the allowed source.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

policies.*.ips[].ipConditional
Send in
JSON body
Type
IP address|CIDR|string
Accepted values
Any value matching IP address|CIDR|string
Example
POLICIES_IPS_IP_FROM_LIST_RESPONSE

Allowed IPv4, IPv6, or CIDR value.

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 for object entries unless ipaddress is supplied.

policies.*.ips[].ipaddressOptional
Send in
JSON body
Type
IP address|CIDR|string
Accepted values
Any value matching IP address|CIDR|string
Example
POLICIES_IPS_IPADDRESS_FROM_LIST_RESPONSE

Compatibility alias for ip. Prefer ip.

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 alias of policies.*.ips[].ip.

policies.*.modeConditional
Send in
JSON body
Type
enum
Accepted values
off, account, custom
Example
off

Policy mode. Aliases inherit_account, account_ip_access, and account_ip_access_list normalize to account.

Validation and use: Conditional Send this value at the documented nested JSON body path; * means every named object member. Needed when: required for each policies entry unless ip mode is supplied.

policies.ftpOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
POLICIES_FTP_FROM_LIST_RESPONSE

Default source-IP policy for FTP access.

Validation and use: Optional Send this value at the documented nested JSON body path.

policies.mail_protocolsOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
POLICIES_MAIL_PROTOCOLS_FROM_LIST_RESPONSE

Default source-IP policy for IMAP, POP3, and authenticated SMTP access.

Validation and use: Optional Send this value at the documented nested JSON body path.

policies.webmail_directOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
POLICIES_WEBMAIL_DIRECT_FROM_LIST_RESPONSE

Default source-IP policy for direct webmail login requests.

Validation and use: Optional Send this value at the documented nested JSON body path.

scopeConditional
Send in
JSON body
Type
enum
Accepted values
webmail_direct, mail_protocols, ftp
Example
ftp

Single service-access policy to update. The retired webmail_sso value only removes old state and cannot enable SSO.

Validation and use: Needed when: required when policies is omitted.

Complete 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": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "allowed_ips": "ALLOWED_IPS_FROM_LIST_RESPONSE",
    "ip_mode": "custom",
    "ipaccesscontrol": "IPACCESSCONTROL_FROM_LIST_RESPONSE",
    "ips": [
      {
        "ipaddress": "198.51.100.0/24"
      }
    ],
    "ips[].comment": "IPS_COMMENT_FROM_LIST_RESPONSE",
    "ips[].ip": "IPS_IP_FROM_LIST_RESPONSE",
    "ips[].ipaddress": "IPS_IPADDRESS_FROM_LIST_RESPONSE",
    "mode": "account",
    "policies": {
      "ftp": {
        "mode": "custom",
        "ips": [
          {
            "ip": "203.0.113.10",
            "comment": "Office"
          }
        ]
      },
      "webmail_direct": {
        "mode": "custom",
        "ips": [
          "2001:db8::/48"
        ]
      }
    },
    "policies.*.allowed_ips": "POLICIES_ALLOWED_IPS_FROM_LIST_RESPONSE",
    "policies.*.ip_mode": "off",
    "policies.*.ipaccesscontrol": "POLICIES_IPACCESSCONTROL_FROM_LIST_RESPONSE",
    "policies.*.ips": "POLICIES_IPS_FROM_LIST_RESPONSE",
    "policies.*.ips[].comment": "POLICIES_IPS_COMMENT_FROM_LIST_RESPONSE",
    "policies.*.ips[].ip": "POLICIES_IPS_IP_FROM_LIST_RESPONSE",
    "policies.*.ips[].ipaddress": "POLICIES_IPS_IPADDRESS_FROM_LIST_RESPONSE",
    "policies.*.mode": "off",
    "policies.ftp": "POLICIES_FTP_FROM_LIST_RESPONSE",
    "policies.mail_protocols": "POLICIES_MAIL_PROTOCOLS_FROM_LIST_RESPONSE",
    "policies.webmail_direct": "POLICIES_WEBMAIL_DIRECT_FROM_LIST_RESPONSE",
    "scope": "ftp"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/exampleacct/security/service-access' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"scope":"ftp","ip_mode":"custom","ips":[{"ipaddress":"198.51.100.0/24"}]}'

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.

Restrict FTP to a generated CIDR
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "ftp",
    "ip_mode": "custom",
    "ips": [
      {
        "ipaddress": "198.51.100.0/24"
      }
    ]
  }
}

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

Use the account IP Access list for mail protocols
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "mail_protocols",
    "mode": "account"
  }
}
Set custom FTP and webmail sources
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "policies": {
      "ftp": {
        "mode": "custom",
        "ips": [
          {
            "ip": "203.0.113.10",
            "comment": "Office"
          }
        ]
      },
      "webmail_direct": {
        "mode": "custom",
        "ips": [
          "2001:db8::/48"
        ]
      }
    }
  }
}

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

Remove source-IP restrictions for direct webmail
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "scope": "webmail_direct",
    "mode": "off"
  }
}

Successful result

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

FieldDocumented type or shape
service_access["webmail_direct","mail_protocols","ftp"]

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
PATCH/v1/accounts/{username}/security/twofaroot reseller userTurn two-factor authentication on or off for your SHM account.

Before you start

Enable account two-factor authentication before choosing the account-based option in Protected Mail.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
exampleacct

Target SHM account system username. Root can target any account; resellers only owned accounts; users only their own account.

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

twofacodeRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
123456

Two-factor authentication code. Current six-digit TOTP code for `twofasecret`. `code` is accepted as an alias. 6-digit TOTP code (required when enabling). Alias: code.

Validation and use:

twofasecretRequired
Send in
JSON body
Type
string|disable
Accepted values
Any value matching string|disable
Example
STRONG_PASSWORD

Base32 TOTP secret to verify and enable, or the exact value `disable` to remove the existing account two-factor secret. Base32 secret, or the string "disable" to turn off 2FA.

Validation and use:

codeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
123456

Alias of twofacode. Prefer twofacode.

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": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "twofacode": "123456",
    "twofasecret": "STRONG_PASSWORD",
    "code": "123456"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/exampleacct/security/twofa' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"twofasecret":"STRONG_PASSWORD","twofacode":"123456"}'

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 account two-factor authentication
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "twofasecret": "STRONG_PASSWORD",
    "twofacode": "123456"
  }
}

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

Disable account two-factor authentication
{
  "path_parameters": {
    "username": "exampleacct"
  },
  "query_parameters": {},
  "json_body": {
    "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.

FieldDocumented type or shape
statussuccess
messageenable or disable confirmation

Error response

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

Services

GET/v1/accounts/{username}/services/contextroot reseller userCheck which hosting services are available to your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

compactOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
COMPACT_FROM_LIST_RESPONSE

Compact 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": {
    "username": "demo"
  },
  "query_parameters": {
    "compact": "COMPACT_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/services/context?compact=COMPACT_FROM_LIST_RESPONSE' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "compact": "COMPACT_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."
}

Ssl

GET/v1/accounts/{username}/ssl/autossl/overviewroot reseller userView the current AutoSSL account summary plus a limited, searchable domain-health page.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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

Target SHM account system username.

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

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer
Example
25

Domain-health page size. Defaults to 50 and is capped at 200.

Validation and use:

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive domain, type, status, common-name, and issuer search.

Validation and use:

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `search`.

Validation and use:

startOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer
Example
0

Zero-based domain-health 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": {
    "username": "demo"
  },
  "query_parameters": {
    "length": 25,
    "search": "account",
    "search_value": "account",
    "start": 0
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ssl/autossl/overview?start=0&length=25&search=account&search_value=account' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "start": 0,
    "length": 25,
    "search": "account",
    "search_value": "account"
  },
  "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/accounts/{username}/ssl/autossl/runroot reseller userRun AutoSSL for an account or one authorized selected website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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

Target SHM account system username.

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

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

Force renewal even when the current certificate is not due. 1 to force renewal even if the current certificate is still valid. Alias of force_renewal.

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`. Alias of force. Prefer force.

Validation and use:

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

Resource ID. Required positive domain id when `type` is supplied. Required when type is addon, subdomain, or parked. Use the matching domain list id. For main use 0 or omit it.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Choose the account or resource you want to use.

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

Set to `0` to omit the potentially large refreshed account/domain projection from the action response.

Validation and use: Default: true.

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

Marks an explicit user-triggered run.

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain, parked
Example
main

Optional target type: `main`, `addon`, `parked`, or `subdomain`. Omit to run the whole account. Optional target type. Allowed values: main, addon, subdomain, parked. Omit it to process all eligible domains in the account.

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": {
    "force": 1,
    "force_renewal": 1,
    "id": 0,
    "include_account": true,
    "manual": 1,
    "type": "main"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ssl/autossl/run' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Run AutoSSL for the whole account
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Force-renew the main domain certificate
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "force": 1
  }
}

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

Run AutoSSL for one addon domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "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."
}
PATCH/v1/accounts/{username}/ssl/certificateroot reseller userAssign an SSL certificate to a selected website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

idRequired
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
1000

Resource ID. Target object id. For main use the account UID; for addon/subdomain/parked use the {id} from the respective list endpoint.

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

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

SSL certificate toggle. Certificate id from GET /ssl/certificates.

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, parked
Example
main

Type value. Allowed values: main, addon, parked. Target object type: main, addon, subdomain, parked.

Validation and use:

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

Validation and use: Use the corresponding list endpoint for this resource and copy the returned certificate_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": {
    "id": 1000,
    "setcertificate": 1,
    "type": "main",
    "certificate_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/ssl/certificate' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":1000,"setcertificate":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.

Assign cert #1 to main domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 1000,
    "setcertificate": 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/accounts/{username}/ssl/certificatesroot reseller userList SSL certificates of account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/ssl/certificates' \
  -H 'X-Api-User: demo' \
  -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."
}
POST/v1/accounts/{username}/ssl/certificatesroot reseller userAdd SSL certificate.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

certificateRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CERTIFICATE_FROM_LIST_RESPONSE

Certificate content or certificate selection. PEM certificate (leaf). Must be valid and not expired.

Validation and use:

certificateauthorityRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CERTIFICATEAUTHORITY_FROM_LIST_RESPONSE

PEM CA / chain (required by engine validation).

Validation and use:

privatekeyRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
YOUR_API_KEY

Private key content. PEM private key (must match the certificate).

Validation and use:

typeOptional
Send in
JSON body
Type
enum
Accepted values
custom, letsencrypt, selfsigned
Example
custom

Allowed values: custom, letsencrypt, selfsigned. Default: custom.

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": {
    "certificate": "CERTIFICATE_FROM_LIST_RESPONSE",
    "certificateauthority": "CERTIFICATEAUTHORITY_FROM_LIST_RESPONSE",
    "privatekey": "YOUR_API_KEY",
    "type": "custom"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ssl/certificates' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"certificate":"CERTIFICATE_FROM_LIST_RESPONSE","privatekey":"YOUR_API_KEY","certificateauthority":"CERTIFICATEAUTHORITY_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": {
    "certificate": "CERTIFICATE_FROM_LIST_RESPONSE",
    "privatekey": "YOUR_API_KEY",
    "certificateauthority": "CERTIFICATEAUTHORITY_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/accounts/{username}/ssl/certificates/{id}root reseller userDelete SSL certificate if not assigned.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

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.

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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/ssl/certificates/1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo",
    "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/accounts/{username}/ssl/certificates/tableroot reseller userList account SSL certificates with limited paging.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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

Target SHM account system username.

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

certificate_idsOptional
Send in
Query string
Type
string|csv integer
Accepted values
Any value matching string|csv integer
Example
1

Optional comma-separated exact certificate ids, capped at 500 ids.

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.

coverage_domainOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Return only certificates whose CN/SAN coverage matches this hostname, including valid wildcards.

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.

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.

formatOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
FORMAT_FROM_LIST_RESPONSE

Set to `records` for metadata objects; omit for legacy rendered DataTables columns.

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. Page size, capped at 200.

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.

order_colOptional
Send in
Query string
Type
int|string
Accepted values
0, 1, 3, 4, 5
Example
5

Sort column index: 0 id, 1 common name, 3 issuer, 4 valid-from, or 5 expiry.

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.

order_dirOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
ORDER_DIR_FROM_LIST_RESPONSE

Sort direction. Sort direction: `asc` or `desc`.

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.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Search term or search payload. Case-insensitive certificate metadata and SAN search.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Alias of `search`.

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. Zero-based result 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.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Exact certificate type filter such as `custom`, `autossl`, or `selfsigned`.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "certificate_ids": 1,
    "coverage_domain": "example.com",
    "draw": 1,
    "format": "FORMAT_FROM_LIST_RESPONSE",
    "length": 25,
    "order_col": 5,
    "order_dir": "ORDER_DIR_FROM_LIST_RESPONSE",
    "search": "account",
    "search_value": "account",
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ssl/certificates/table?type_filter=TYPE_FILTER_FROM_LIST_RESPONSE&coverage_domain=example.com&format=FORMAT_FROM_LIST_RESPONSE&certificate_ids=1' \
  -H 'X-Api-User: demo' \
  -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": {
    "username": "demo"
  },
  "query_parameters": {
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE",
    "coverage_domain": "example.com",
    "format": "FORMAT_FROM_LIST_RESPONSE",
    "certificate_ids": 1
  },
  "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/accounts/{username}/ssl/certificates/tableroot reseller userList account SSL certificates with limited paging.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (12)

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

Target SHM account system username.

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

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

Optional comma-separated exact certificate ids, capped at 500 ids.

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.

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

Return only certificates whose CN/SAN coverage matches this hostname, including valid wildcards.

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.

drawOptional
Send in
JSON body
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.

formatOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
FORMAT_FROM_LIST_RESPONSE

Set to `records` for metadata objects; omit for legacy rendered DataTables columns.

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
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
25

Page size. Page size, capped at 200.

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.

order_colOptional
Send in
JSON body
Type
int|string
Accepted values
0, 1, 3, 4, 5
Example
5

Sort column index: 0 id, 1 common name, 3 issuer, 4 valid-from, or 5 expiry.

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.

order_dirOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ORDER_DIR_FROM_LIST_RESPONSE

Sort direction. Sort direction: `asc` or `desc`.

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.

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

Search term or search payload. Case-insensitive certificate metadata and SAN search.

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.

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

Alias of `search`.

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
JSON body
Type
int|string
Accepted values
Any value matching int|string
Example
0

Row offset. Zero-based result 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.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Exact certificate type filter such as `custom`, `autossl`, or `selfsigned`.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "certificate_ids": 1,
    "coverage_domain": "example.com",
    "draw": 1,
    "format": "FORMAT_FROM_LIST_RESPONSE",
    "length": 25,
    "order_col": 5,
    "order_dir": "ORDER_DIR_FROM_LIST_RESPONSE",
    "search": "account",
    "search_value": "account",
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ssl/certificates/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type_filter":"TYPE_FILTER_FROM_LIST_RESPONSE","coverage_domain":"example.com","format":"FORMAT_FROM_LIST_RESPONSE","certificate_ids":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": {
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE",
    "coverage_domain": "example.com",
    "format": "FORMAT_FROM_LIST_RESPONSE",
    "certificate_ids": 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."
}

SSL

POST/v1/accounts/{username}/ssl/autossl/logsroot reseller userView your account’s AutoSSL log content.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

actionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
ACTION_FROM_LIST_RESPONSE

Requested action name.

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.

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
string
Accepted values
Any value matching string
Example
DOWNLOAD_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.

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

Number of lines to return.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "action": "ACTION_FROM_LIST_RESPONSE",
    "domain": "example.com",
    "download": "DOWNLOAD_FROM_LIST_RESPONSE",
    "lines": 200
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/ssl/autossl/logs' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","lines":200,"action":"ACTION_FROM_LIST_RESPONSE","download":"DOWNLOAD_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": {
    "domain": "example.com",
    "lines": 200,
    "action": "ACTION_FROM_LIST_RESPONSE",
    "download": "DOWNLOAD_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/accounts/{username}/ssl/autossl/logs/filesroot reseller userList your account’s AutoSSL log files.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/ssl/autossl/logs/files' \
  -H 'X-Api-User: demo' \
  -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."
}
GET/v1/accounts/{username}/ssl/certificates/{id}root reseller userView complete details for one in your account SSL certificate.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (2)

idRequired
Send in
URL path
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Certificate id returned by the account SSL certificate table or list endpoint.

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.

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

Authorized target SHM account username. Root may read any account, a reseller only owned accounts, and an end 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": {
    "id": 1,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ssl/certificates/1' \
  -H 'X-Api-User: demo' \
  -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 certificate
{
  "path_parameters": {
    "username": "demo",
    "id": 1
  },
  "query_parameters": {},
  "json_body": {}
}

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

Successful result

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

FieldDocumented type or shape
statusstring
titlestring
messagestring
idinteger
commonnamestring
alternativesstring
issuerOstring
issuerCNstring
validfromstring
expiresonstring
typestring
certificatePEM string
privatekeyPEM string
certificateauthorityPEM string
assigned_domainsstring[]

Error response

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

Terminal

POST/v1/accounts/{username}/terminal/sessionroot reseller userOpen a command-line session for your hosting account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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

Authorized target SHM account username. Root may target any account, a reseller only an owned account, and an end user only their own account.

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

session_idRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
shm-session-123

Non-empty supplied in your request terminal session identifier containing only letters, numbers, commas, and hyphens.

Validation and use: Pattern: ^[A-Za-z0-9,-]+$.

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

Stop an existing terminal process for session_id and create a fresh backend session.

Validation and use: Default: false.

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

Compatibility alias for force_new. Prefer force_new.

Validation and use: Default: false. Needed when: optional alias of force new.

Complete 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": {
    "session_id": "shm-session-123",
    "force_new": true,
    "fresh_session": false
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/terminal/session' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"session_id":"shm-session-123"}'

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.

Reuse or prepare a terminal session
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "session_id": "shm-session-123"
  }
}

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

Start a fresh terminal session
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "session_id": "shm-session-123",
    "force_new": 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."
}

Web Settings

GET/v1/accounts/{username}/web-settingsroot reseller userView the settings for each website in your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/web-settings' \
  -H 'X-Api-User: demo' \
  -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."
}
PATCH/v1/accounts/{username}/web-settingsroot reseller userChange the selected website's settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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

Account username. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

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

idRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Use 0 for main; use the Web Settings list id for addon or subdomain.

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

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target domain type. Parked domains inherit the main-domain value.

Validation and use:

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

New value for websetting. Binary fields accept 0/1 or off/on. TTL fields accept empty/default/inherit or a duration from 1m through 30d. cache_profile accepts inherit, static_only, or smart_safe. cache_use_stale accepts off or supported Nginx stale tokens. cache_safe_cookies accepts a comma/newline list of non-sensitive exact cookie names. cache_public_paths accepts safe public paths with an optional trailing wildcard.

Validation and use:

websettingRequired
Send in
JSON body
Type
enum
Accepted values
servercache, sslredirect, modsecurity, cache_ttl, cache_profile, cache_static_enabled, cache_dynamic_enabled, cache_static_ttl, cache_mobile_bucket, cache_lock, cache_background_update, cache_revalidate, cache_redirects, cache_force_public, cache_static_access_log, cache_use_stale, cache_safe_cookies, cache_public_paths
Example
sslredirect

Exact setting key. sslredirect/servercache/modsecurity are binary switches. cache_ttl and cache_static_ttl are limited durations. Remaining cache_* keys are advanced backward-compatible cache controls.

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": {
    "id": 0,
    "type": "main",
    "value": 1,
    "websetting": "sslredirect"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"websetting":"sslredirect","value":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.

Enable HTTPS redirect and preserve the original URI
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "websetting": "sslredirect",
    "value": 1
  }
}

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

Set the dynamic cache TTL
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "id": 1,
    "websetting": "cache_ttl",
    "value": 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."
}
PATCH/v1/accounts/{username}/web-settings/bulkroot reseller userBulk update web settings.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (51)

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

Account username.

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

changesRequired
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
{"servercache":{"enabled":1,"cache_static_enabled":"on","cache_static_access_log":"off","cache_dynamic_enabled":"on","cache_ttl":"1h","cache_static_ttl":"6h","cache_mobile_bucket":"on","cache_lock":"on","cache_background_update":"on","cache_revalidate":"on","cache_redirects":"on","cache_use_stale":"error timeout invalid_header updating http_500 http_502 http_503 http_504","cache_safe_cookies":"custom_analytics_id\ncampaign_attribution","cache_public_paths":"/sitemap.xml\n/feed/\n/public-api/*"}}

Settings grouped by key. For server cache, send changes.servercache.

Validation and use:

targetsRequired
Send in
JSON body
Type
object|string|array<object>
Accepted values
Any value matching object|string|array<object>
Example
[{"type":"main","id":0}]

Domain targets to update. Each item requires type and id. type is main, addon, or subdomain.

Validation and use:

targets[].idRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Use 0 for main or the Web Settings list id for addon/subdomain. Duplicate targets are ignored.

Validation and use: Required Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

targets[].typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Domain type for one selected target. Parked domains inherit main-domain changes.

Validation and use: Required Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

changes.http_guardOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
CHANGES_HTTP_GUARD_FROM_LIST_RESPONSE

Partial HTTP Guard update. Omitted mode, limits, Smart state, and URI rules remain unchanged for each target.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.http_guard.burstOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Temporary request burst allowed above the selected request rate, 1 through 10000.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.http_guard.connectionsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Maximum concurrent connections per client IP for the selected domain, 1 through 10000.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.http_guard.dry_runOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

When enabled, records limit matches without rejecting requests where monitor-only mode is supported.

Validation and use: Optional Send this value at the documented nested JSON body path.

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

Master per-domain switch. Off preserves the configured Profile, Smart state, and protected URI rules; On restores them and uses the root default Profile when no layer was configured.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.http_guard.modeOptional
Send in
JSON body
Type
enum
Accepted values
inherit, relaxed, standard, strict, off
Example
inherit

Per-domain HTTP Guard global Profile mode: inherit, relaxed, standard, strict, or off. relaxed/standard/strict count every request for the target domain, including pages, CSS, JavaScript, images, and other static assets. off disables only the whole-domain baseline profile; protected_uri_rules and smart_protection can still be used.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.http_guard.protected_uri_rulesOptional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
CHANGES_HTTP_GUARD_PROTECTED_URI_RULES_FROM_LIST_RESPONSE

Protected URI wildcard rules for expensive dynamic URLs. Each rule supports enabled, name, pattern, limit_profile, action, status, and dry_run. Pattern must start with /, may include one query wildcard, and cannot contain whitespace, URL schemes, traversal, or config-control characters.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.http_guard.protected_uri_rules[].actionOptional
Send in
JSON body
Type
enum
Accepted values
block, monitor
Example
block

Legacy compatibility field. Use limit_profile for new integrations.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

changes.http_guard.protected_uri_rules[].limit_profileOptional
Send in
JSON body
Type
enum
Accepted values
block, monitor, relaxed, standard, strict
Example
block

Request limit for this URI rule: block, monitor, relaxed, standard, or strict. Profile values use the root HTTP Guard rates. Default: block.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

changes.http_guard.protected_uri_rules[].patternConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_HTTP_GUARD_PROTECTED_URI_RULES_PATTERN_FROM_LIST_RESPONSE

Wildcard URI pattern such as /search/*?*q=*.

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 when rule present.

changes.http_guard.protected_uri_rules[].statusOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

HTTP status for block action, 400 through 599. Default: 429.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

changes.http_guard.smart_protectionOptional
Send in
JSON body
Type
enum
Accepted values
off, monitor, auto
Example
off

Smart Protection mode for this domain: off uses only manual HTTP Guard rules; monitor detects suspicious URI spikes and records log-only temporary rules; auto detects spikes and activates temporary rate-limit/block URI rules.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.modsecurityOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
CHANGES_MODSECURITY_FROM_LIST_RESPONSE

Partial ModSecurity update applied independently to every target; omitted fields, including each target application profile, are preserved.

Validation and use: Optional Send this value at the documented nested JSON body path.

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

Enable with the root default mode or disable ModSecurity. Use mode when an exact mode is required.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.modsecurity.modeOptional
Send in
JSON body
Type
enum
Accepted values
on, off, detectiononly
Example
on

Exact target mode. Accepted detection-only aliases: detect, detection, detection_only. Invalid values are rejected.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.modsecurity.profileOptional
Send in
JSON body
Type
enum
Accepted values
generic, wordpress, wordpress_ecommerce, drupal, nextcloud, dokuwiki, phpbb, phpmyadmin, xenforo, strict
Example
generic

Application profile. When omitted, each selected target keeps its own profile.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.modsecurity.rule_remove_idsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
CHANGES_MODSECURITY_RULE_REMOVE_IDS_FROM_LIST_RESPONSE

Complete replacement list of known active CRS rule IDs for every selected target.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.modsecurity.rule_remove_msgsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
CHANGES_MODSECURITY_RULE_REMOVE_MSGS_FROM_LIST_RESPONSE

Complete replacement list of up to 64 message patterns, maximum 512 bytes each; control characters and line breaks are rejected.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.modsecurity.rule_remove_tagsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
CHANGES_MODSECURITY_RULE_REMOVE_TAGS_FROM_LIST_RESPONSE

Complete replacement list of known active CRS tags for every selected target.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.restrictionsOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
CHANGES_RESTRICTIONS_FROM_LIST_RESPONSE

Complete request-restriction configuration applied to every selected target.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.restrictions.allow_ipsConditional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
CHANGES_RESTRICTIONS_ALLOW_IPS_FROM_LIST_RESPONSE

Up to 32 exact IPv4/IPv6 addresses.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when allow mode enabled.

changes.restrictions.allow_modeConditional
Send in
JSON body
Type
enum
Accepted values
off, permanent, temporary
Example
off

IP allow-only mode. Unknown values are rejected.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when section present.

changes.restrictions.blocked_botsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
CHANGES_RESTRICTIONS_BLOCKED_BOTS_FROM_LIST_RESPONSE

Up to 32 known bot signatures.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.restrictions.blocked_sourcesOptional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
CHANGES_RESTRICTIONS_BLOCKED_SOURCES_FROM_LIST_RESPONSE

Complete replacement list of up to 64 denied exact IPv4/IPv6 addresses or CIDR networks for every selected target. Omit it to preserve each target's current list; send [] to clear every selected target. Duplicates and allow/deny conflicts are rejected before any target is changed.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.restrictions.blocked_sources[].commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_RESTRICTIONS_BLOCKED_SOURCES_COMMENT_FROM_LIST_RESPONSE

Optional operator note up to 160 bytes with no control characters. Notes are metadata only and never become web-server directives.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

changes.restrictions.blocked_sources[].sourceConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_RESTRICTIONS_BLOCKED_SOURCES_SOURCE_FROM_LIST_RESPONSE

Exact IPv4/IPv6 address or CIDR network denied on each selected target. Host bits are canonicalized to the network base.

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 when item present.

changes.restrictions.temporary_duration_minutesConditional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Temporary duration from 1 through 43200 minutes.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when temporary.

changes.servercacheOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
CHANGES_SERVERCACHE_FROM_LIST_RESPONSE

Server cache settings for every selected target.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_background_updateOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Allow background refresh for expired cached content.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_dynamic_enabledOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Enable or disable anonymous public dynamic/page cache for this domain. When unset, old cache_profile values are mapped for backward compatibility.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_force_publicOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Explicit force-public cache toggle. When on, SHM fills or normalizes freshness for otherwise-cacheable anonymous public GET/HEAD responses and may ignore browser refresh requests. Upstream private/no-store/no-cache, Set-Cookie, error, login, admin, authorization, POST, cart, checkout, and application-auth responses always bypass shared cache.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_lockOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Enable cache lock to reduce thundering herd while a cache item is being generated.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_mobile_bucketOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

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

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_profileOptional
Send in
JSON body
Type
enum
Accepted values
static_only, smart_safe
Example
static_only

Legacy compatibility rule pack limited to static_only or smart_safe. Prefer cache_static_enabled and cache_dynamic_enabled for normal clients.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_public_pathsOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Newline list of explicit public URL paths or safe trailing-wildcard prefixes to cache as public endpoints. Admin, login, cart, checkout, auth/API and session paths are rejected.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_redirectsOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Cache HTTP 301/302 redirect responses for this domain.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_revalidateOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Enable upstream revalidation where supported.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_safe_cookiesOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_SERVERCACHE_CACHE_SAFE_COOKIES_FROM_LIST_RESPONSE

Comma/newline list of exact extra harmless analytics, attribution, or non-personal test cookie names that should not bypass public cache. Wildcards are not accepted. The backend rejects language, consent, personalization, login, auth, cart, session, user, admin, token, and security-related names.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_static_access_logOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Enable or disable access logging for cached static assets on this domain. Default off reduces disk I/O; turn on for troubleshooting.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_static_enabledOptional
Send in
JSON body
Type
on|off|0|1|string
Accepted values
on, off, 0, 1
Example
on

Enable or disable static asset cache for this domain. Default when unset is on while server cache is enabled.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_static_ttlOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_SERVERCACHE_CACHE_STATIC_TTL_FROM_LIST_RESPONSE

Per-domain static asset cache TTL. Empty/default/inherit uses the static default; otherwise use 1m through 30d, for example 10m, 2h, 6h, or 30d.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_ttlOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_SERVERCACHE_CACHE_TTL_FROM_LIST_RESPONSE

Per-domain dynamic/page cache TTL. Empty/default/inherit uses the server default; otherwise use 1m through 30d, for example 10m, 2h, 12h, or 30d.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.servercache.cache_use_staleOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
CHANGES_SERVERCACHE_CACHE_USE_STALE_FROM_LIST_RESPONSE

Nginx stale-cache policy. Use off or tokens such as error timeout invalid_header updating http_429 http_500 http_502 http_503 http_504.

Validation and use: Optional Send this value at the documented nested JSON body path.

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

Enable or disable automatic server cache for the selected targets. Enabled mode uses native Nginx or Apache cache, fail-closed behavioral classification, limited warmup, and conservative change invalidation without Redis or application changes.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.sslredirectOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
CHANGES_SSLREDIRECT_FROM_LIST_RESPONSE

HTTPS redirect change for every selected target.

Validation and use: Optional Send this value at the documented nested JSON body path.

changes.sslredirect.enabledConditional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable or disable HTTP-to-HTTPS redirection.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when section present.

Complete 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": {
    "changes": {
      "servercache": {
        "enabled": 1,
        "cache_static_enabled": "on",
        "cache_static_access_log": "off",
        "cache_dynamic_enabled": "on",
        "cache_ttl": "1h",
        "cache_static_ttl": "6h",
        "cache_mobile_bucket": "on",
        "cache_lock": "on",
        "cache_background_update": "on",
        "cache_revalidate": "on",
        "cache_redirects": "on",
        "cache_use_stale": "error timeout invalid_header updating http_500 http_502 http_503 http_504",
        "cache_safe_cookies": "custom_analytics_id\ncampaign_attribution",
        "cache_public_paths": "/sitemap.xml\n/feed/\n/public-api/*"
      }
    },
    "targets": [
      {
        "type": "main",
        "id": 0
      }
    ],
    "targets[].id": 1,
    "targets[].type": "main",
    "changes.http_guard": "CHANGES_HTTP_GUARD_FROM_LIST_RESPONSE",
    "changes.http_guard.burst": 1,
    "changes.http_guard.connections": 1,
    "changes.http_guard.dry_run": 1,
    "changes.http_guard.enabled": 1,
    "changes.http_guard.mode": "inherit",
    "changes.http_guard.protected_uri_rules": "CHANGES_HTTP_GUARD_PROTECTED_URI_RULES_FROM_LIST_RESPONSE",
    "changes.http_guard.protected_uri_rules[].action": "block",
    "changes.http_guard.protected_uri_rules[].limit_profile": "block",
    "changes.http_guard.protected_uri_rules[].pattern": "CHANGES_HTTP_GUARD_PROTECTED_URI_RULES_PATTERN_FROM_LIST_RESPONSE",
    "changes.http_guard.protected_uri_rules[].status": 1,
    "changes.http_guard.smart_protection": "off",
    "changes.modsecurity": "CHANGES_MODSECURITY_FROM_LIST_RESPONSE",
    "changes.modsecurity.enabled": 1,
    "changes.modsecurity.mode": "on",
    "changes.modsecurity.profile": "generic",
    "changes.modsecurity.rule_remove_ids": "CHANGES_MODSECURITY_RULE_REMOVE_IDS_FROM_LIST_RESPONSE",
    "changes.modsecurity.rule_remove_msgs": "CHANGES_MODSECURITY_RULE_REMOVE_MSGS_FROM_LIST_RESPONSE",
    "changes.modsecurity.rule_remove_tags": "CHANGES_MODSECURITY_RULE_REMOVE_TAGS_FROM_LIST_RESPONSE",
    "changes.restrictions": "CHANGES_RESTRICTIONS_FROM_LIST_RESPONSE",
    "changes.restrictions.allow_ips": "CHANGES_RESTRICTIONS_ALLOW_IPS_FROM_LIST_RESPONSE",
    "changes.restrictions.allow_mode": "off",
    "changes.restrictions.blocked_bots": "CHANGES_RESTRICTIONS_BLOCKED_BOTS_FROM_LIST_RESPONSE",
    "changes.restrictions.blocked_sources": "CHANGES_RESTRICTIONS_BLOCKED_SOURCES_FROM_LIST_RESPONSE",
    "changes.restrictions.blocked_sources[].comment": "CHANGES_RESTRICTIONS_BLOCKED_SOURCES_COMMENT_FROM_LIST_RESPONSE",
    "changes.restrictions.blocked_sources[].source": "CHANGES_RESTRICTIONS_BLOCKED_SOURCES_SOURCE_FROM_LIST_RESPONSE",
    "changes.restrictions.temporary_duration_minutes": 1,
    "changes.servercache": "CHANGES_SERVERCACHE_FROM_LIST_RESPONSE",
    "changes.servercache.cache_background_update": "on",
    "changes.servercache.cache_dynamic_enabled": "on",
    "changes.servercache.cache_force_public": "on",
    "changes.servercache.cache_lock": "on",
    "changes.servercache.cache_mobile_bucket": "on",
    "changes.servercache.cache_profile": "static_only",
    "changes.servercache.cache_public_paths": "/home/demo/public_html",
    "changes.servercache.cache_redirects": "on",
    "changes.servercache.cache_revalidate": "on",
    "changes.servercache.cache_safe_cookies": "CHANGES_SERVERCACHE_CACHE_SAFE_COOKIES_FROM_LIST_RESPONSE",
    "changes.servercache.cache_static_access_log": "on",
    "changes.servercache.cache_static_enabled": "on",
    "changes.servercache.cache_static_ttl": "CHANGES_SERVERCACHE_CACHE_STATIC_TTL_FROM_LIST_RESPONSE",
    "changes.servercache.cache_ttl": "CHANGES_SERVERCACHE_CACHE_TTL_FROM_LIST_RESPONSE",
    "changes.servercache.cache_use_stale": "CHANGES_SERVERCACHE_CACHE_USE_STALE_FROM_LIST_RESPONSE",
    "changes.servercache.enabled": 1,
    "changes.sslredirect": "CHANGES_SSLREDIRECT_FROM_LIST_RESPONSE",
    "changes.sslredirect.enabled": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings/bulk' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"targets":[{"type":"main","id":0}],"changes":{"servercache":{"enabled":1,"cache_static_enabled":"on","cache_static_access_log":"off","cache_dynamic_enabled":"on","cache_ttl":"1h","cache_static_ttl":"6h","cache_mobile_bucket":"on","cache_lock":"on","cache_background_update":"on","cache_revalidate":"on","cache_redirects":"on","cache_use_stale":"error timeout invalid_header updating http_500 http_502 http_503 http_504","cache_safe_cookies":"custom_analytics_id\ncampaign_attribution","cache_public_paths":"/sitemap.xml\n/feed/\n/public-api/*"}},"targets[].id":1,"targets[].type":"main"}'

More examples

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

Enable static and dynamic cache on the main domain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "targets": [
      {
        "type": "main",
        "id": 0
      }
    ],
    "changes": {
      "servercache": {
        "enabled": 1,
        "cache_static_enabled": "on",
        "cache_static_access_log": "off",
        "cache_dynamic_enabled": "on",
        "cache_ttl": "1h",
        "cache_static_ttl": "6h",
        "cache_mobile_bucket": "on",
        "cache_lock": "on",
        "cache_background_update": "on",
        "cache_revalidate": "on",
        "cache_redirects": "on",
        "cache_use_stale": "error timeout invalid_header updating http_500 http_502 http_503 http_504",
        "cache_safe_cookies": "custom_analytics_id\ncampaign_attribution",
        "cache_public_paths": "/sitemap.xml\n/feed/\n/public-api/*"
      }
    }
  }
}
Apply strict HTTP Guard to selected domains
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "targets": [
      {
        "type": "main",
        "id": 0
      },
      {
        "type": "addon",
        "id": 1
      }
    ],
    "changes": {
      "http_guard": {
        "mode": "strict",
        "burst": 40,
        "connections": 30,
        "dry_run": 0,
        "protected_uri_rules": [
          {
            "enabled": 1,
            "name": "Search filters",
            "pattern": "/search/*?*q=*",
            "action": "block",
            "limit_profile": "strict",
            "status": 429,
            "dry_run": 0
          }
        ],
        "smart_protection": "off"
      }
    }
  }
}
Block IP sources on selected domains
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "targets": [
      {
        "type": "main",
        "id": 0
      },
      {
        "type": "addon",
        "id": 1
      }
    ],
    "changes": {
      "restrictions": {
        "allow_mode": "off",
        "allow_ips": [],
        "temporary_duration_minutes": 0,
        "blocked_sources": [
          {
            "source": "104.244.72.0/21",
            "comment": "Abusive source network"
          },
          {
            "source": "164.92.73.153",
            "comment": "Sensitive-file probes"
          }
        ],
        "blocked_bots": []
      }
    }
  }
}

Successful result

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

If a request_id is included, keep 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/accounts/{username}/web-settings/cache-clearroot reseller userClear web cache.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

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

Alias of id. Prefer id.

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

domain_typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Alias of type. Prefer type. Allowed values: main, addon, subdomain.

Validation and use:

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

Required when type is addon or subdomain. Use the matching domain list id. For main use 0 or omit it. Alias: domain_id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Choose the account or resource you want to use.

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
addon

Target type. Allowed values: main, addon, subdomain. Alias: domain_type. Default: main.

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": {
    "domain_id": 1,
    "domain_type": "main",
    "id": 1,
    "type": "addon"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache-clear' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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.

Clear cache for the main domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Clear cache for one addon domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "id": 1
  }
}

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

Clear cache for one subdomain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "subdomain",
    "id": 2
  }
}

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/accounts/{username}/web-settings/cache-rulesroot reseller userList web cache rules.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

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

Account username. Root can access any account; reseller/user access remains ownership-gated.

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

domain_idConditional
Send in
Query string
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
3

Website ID. Omit for main.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned domain_id value. Needed when: required when domain type=addon or subdomain.

domain_typeOptional
Send in
Query string
Type
enum
Accepted values
main, addon, subdomain
Example
main

Domain collection containing the target. Defaults to main.

Validation and use: Default: main.

idOptional
Send in
Query string
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
1

Legacy query alias for domain_id. Prefer domain_id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Needed when: optional alias of domain id.

typeOptional
Send in
Query string
Type
enum
Accepted values
main, addon, subdomain
Example
main

Legacy query alias for domain_type on this GET endpoint. Prefer domain_type.

Validation and use: Needed when: optional alias of domain type.

Complete 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": {
    "domain_id": 3,
    "domain_type": "main",
    "id": 1,
    "type": "main"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache-rules?domain_type=main' \
  -H 'X-Api-User: demo' \
  -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 main-domain cache exclusions
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "domain_type": "main"
  },
  "json_body": {}
}
List addon-domain cache exclusions
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "domain_type": "addon",
    "domain_id": 3
  },
  "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/accounts/{username}/web-settings/cache-rulesroot reseller userCreate web cache rule.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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

Account username. Root can access any account; reseller/user access remains ownership-gated.

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

domain_typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Domain collection containing the target. Use main for the primary domain.

Validation and use:

patternRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
members

One URL path or marker without surrounding slashes. Use * only with type=wildcard.

Validation and use: Minimum length 1. Maximum length 180.

typeRequired
Send in
JSON body
Type
enum
Accepted values
start, ends, contains, match, wildcard
Example
start

Pattern operator: path starts with, ends with, contains, exact path match, or wildcard path.

Validation and use:

commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
Authenticated customer area

Operator-facing explanation stored with the rule.

Validation and use:

domain_idConditional
Send in
JSON body
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
3

Website ID. Omit for main. Alias: id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned domain_id value. Needed when: required when domain type=addon or subdomain.

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

Legacy alias for domain_id. Prefer domain_id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Needed when: optional alias of domain id.

Complete 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": {
    "domain_type": "main",
    "pattern": "members",
    "type": "start",
    "comment": "Authenticated customer area",
    "domain_id": 3,
    "id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache-rules' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain_type":"main","pattern":"members","type":"start","comment":"Authenticated customer area"}'

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.

Exclude an account area on the main domain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "main",
    "pattern": "members",
    "type": "start",
    "comment": "Authenticated customer area"
  }
}

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

Exclude wildcard API paths on an addon domain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "addon",
    "domain_id": 3,
    "pattern": "api/private/*",
    "type": "wildcard",
    "comment": "Never cache private API responses"
  }
}

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/accounts/{username}/web-settings/cache-rules/{rule_id}root reseller userDelete web cache rule.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

rule_idRequired
Send in
URL path
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
7

Rule id returned by GET cache-rules.

Validation and use: Required Replace this placeholder directly in the URL path. Use the corresponding list endpoint for this resource and copy the returned rule_id value.

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

Account username. Root can access any account; reseller/user access remains ownership-gated.

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

domain_idConditional
Send in
JSON body
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
3

Website ID. Omit for main. Alias: id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned domain_id value. Needed when: required when domain type=addon or subdomain.

domain_typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Domain collection containing the rule. Defaults to main.

Validation and use: Default: main.

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

Legacy alias for domain_id. Prefer domain_id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Needed when: optional alias of domain id.

Complete request template

This template lists all available fields. Keep the fields needed for your chosen action; do not send conflicting alternatives together.

{
  "path_parameters": {
    "rule_id": 7,
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "domain_id": 3,
    "domain_type": "main",
    "id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache-rules/7' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain_type":"main"}'

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 a main-domain cache exclusion
{
  "path_parameters": {
    "username": "demo",
    "rule_id": 7
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "main"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Delete an addon-domain cache exclusion
{
  "path_parameters": {
    "username": "demo",
    "rule_id": 8
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "addon",
    "domain_id": 3
  }
}

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/accounts/{username}/web-settings/cache-testroot reseller userRun the limited Cache Manager live diagnostic against one in your account main, addon, or subdomain target.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (5)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Account username. Root can test any account; reseller/user access remains ownership-gated.

Validation and use: Required Replace this placeholder directly in the URL path.

domain_idConditional
Send in
JSON body
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
3

Domain id from the account cache-target table. Omit or use 0 for main. Alias: id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned domain_id value. Needed when: required when domain type=addon or subdomain.

domain_typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Account-owned target collection. Parked domains are not independent cache targets. Alias: type.

Validation and use: Default: main.

idOptional
Send in
JSON body
Type
positive integer|string
Accepted values
Any value matching positive integer|string
Example
1

Compatibility alias for domain_id. Prefer domain_id.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value. Needed when: optional alias of domain id.

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Compatibility alias for domain_type. Prefer domain_type.

Validation and use: Needed when: optional alias of domain type.

Complete 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": {
    "domain_id": 3,
    "domain_type": "main",
    "id": 1,
    "type": "main"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache-test' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain_type":"main"}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Test the main domain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "main"
  }
}
Test one addon domain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "addon",
    "domain_id": 3
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Test one subdomain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "domain_type": "subdomain",
    "domain_id": 4
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
typeResolved account-owned target type.
idResolved target id; 0 for the main domain.
domainResolved account-owned hostname.
target_ipServer IP read from the authorized account target.
asset_pathSame-origin static asset selected for static-cache probes, or /favicon.ico when none is found.
summary.codeStable result code: cache_working, visitor_session, private_response, cache_bypass, or cache_not_serving.
summary.messageEnglish fallback diagnostic summary; API clients should localize summary.code.
rows[]Exactly eight bounded probe rows with code, name, URL, HTTP/cache status, reason, blockers, TTFB, total time, optional before/after TTFB, and sanitized curl error code.

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
GET/v1/accounts/{username}/web-settings/cache/tableroot reseller userList web cache target rows for main, addon, and subdomain web targets.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

compactOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

include_sizesOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

resource_idOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
1

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/web-settings/cache/tableroot reseller userList web cache target rows for main, addon, and subdomain web targets.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

compactOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

include_sizesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

resource_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

searchOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/web-settings/cache/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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/accounts/{username}/web-settings/contextroot reseller userView the website settings and choices available to your account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/web-settings/context' \
  -H 'X-Api-User: demo' \
  -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."
}
PATCH/v1/accounts/{username}/web-settings/http-guardroot reseller userSave per-domain HTTP Guard settings, including protected URI wildcard rules for expensive dynamic URLs.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (16)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Account username.

Validation and use: Required Replace this placeholder directly in the URL path.

idRequired
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
0

Resource ID. Target id. For main use 0. For addon/subdomain use the id from the web settings list.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value.

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target type: main, addon, or subdomain.

Validation and use:

burstOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
40

Temporary request burst allowed above the selected request rate, 1 through 10000.

Validation and use:

connectionsOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
30

Maximum concurrent connections per client IP for this target, 1 through 10000.

Validation and use:

dry_runOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

Enable monitor-only logging without rejecting requests where supported.

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

Master switch. Off preserves all configured protection layers; On restores them and selects the root default Profile if no layer has ever been configured. Older YAML without this field keeps its existing mode/rule-derived behavior.

Validation and use:

http_guardOptional
Send in
JSON body
Type
object|string
Accepted values
Any value matching object|string
Example
HTTP_GUARD_FROM_LIST_RESPONSE

Object form containing enabled, mode, burst, connections, dry_run, protected_uri_rules, and smart_protection. Flat fields are also accepted; do not combine both forms.

Validation and use:

modeOptional
Send in
JSON body
Type
enum
Accepted values
inherit, relaxed, standard, strict, off
Example
strict

Allowed values: inherit, relaxed, standard, strict, off. inherit uses the root HTTP Guard default profile. relaxed/standard/strict count every request for the target domain, including pages, CSS, JavaScript, images, and other static assets. off disables only the whole-domain baseline profile; protected_uri_rules and smart_protection may still be active.

Validation and use:

protected_uri_rulesOptional
Send in
JSON body
Type
array<object>|json-string
Accepted values
Any value matching array<object>|json-string
Example
[{"enabled":1,"name":"Search filters","pattern":"/search/*?*q=*","action":"block","limit_profile":"strict","status":429,"dry_run":0}]

Protected URI wildcard rules for expensive dynamic URLs. UI form posts this as a JSON string; API callers may send an array. Each rule supports enabled, name, pattern, limit_profile, action, status, and dry_run.

Validation and use:

protected_uri_rules[].actionOptional
Send in
JSON body
Type
enum
Accepted values
block, monitor
Example
block

Legacy compatibility field. Use limit_profile for new integrations.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

protected_uri_rules[].dry_runOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

When enabled for the rule, log/monitor the match without rejecting even if action is block.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

protected_uri_rules[].limit_profileOptional
Send in
JSON body
Type
enum
Accepted values
block, monitor, relaxed, standard, strict
Example
block

Request limit for this URI rule: block, monitor, relaxed, standard, or strict. Profile values use the root HTTP Guard rates. Default: block.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

protected_uri_rules[].patternConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
PROTECTED_URI_RULES_PATTERN_FROM_LIST_RESPONSE

Wildcard URI pattern such as /search/*?*q=*. Must start with / and cannot include URL schemes, whitespace, traversal, or config-control characters.

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 when rule present.

protected_uri_rules[].statusOptional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

HTTP status for block action, 400 through 599. Default: 429.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

smart_protectionOptional
Send in
JSON body
Type
enum
Accepted values
off, monitor, auto
Example
off

Smart Protection mode: off uses only manual HTTP Guard rules; monitor detects suspicious URI spikes and records log-only temporary rules; auto detects spikes and activates temporary rate-limit/block URI rules.

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": {
    "id": 0,
    "type": "main",
    "burst": 40,
    "connections": 30,
    "dry_run": 0,
    "enabled": 0,
    "http_guard": "HTTP_GUARD_FROM_LIST_RESPONSE",
    "mode": "strict",
    "protected_uri_rules": [
      {
        "enabled": 1,
        "name": "Search filters",
        "pattern": "/search/*?*q=*",
        "action": "block",
        "limit_profile": "strict",
        "status": 429,
        "dry_run": 0
      }
    ],
    "protected_uri_rules[].action": "block",
    "protected_uri_rules[].dry_run": 1,
    "protected_uri_rules[].limit_profile": "block",
    "protected_uri_rules[].pattern": "PROTECTED_URI_RULES_PATTERN_FROM_LIST_RESPONSE",
    "protected_uri_rules[].status": 1,
    "smart_protection": "off"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings/http-guard' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"mode":"strict","burst":40,"connections":30,"dry_run":0}'

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.

Use strict protection on the main domain
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "mode": "strict",
    "burst": 40,
    "connections": 30,
    "dry_run": 0
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Limit expensive search filter URLs at the web server
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "mode": "strict",
    "protected_uri_rules": [
      {
        "enabled": 1,
        "name": "Search filters",
        "pattern": "/search/*?*q=*",
        "action": "block",
        "limit_profile": "strict",
        "status": 429,
        "dry_run": 0
      }
    ],
    "smart_protection": "off"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Temporarily disable without losing advanced settings
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "enabled": 0
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Return a domain to the root default profile
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "id": 1,
    "enabled": 1,
    "mode": "inherit"
  }
}

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/accounts/{username}/web-settings/modsecurityroot reseller userChoose the website's ModSecurity protection mode and rule exceptions.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (8)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Account username. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

idRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Use 0 for main; use the Web Settings list id for addon or subdomain.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value.

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target domain type. Parked domains inherit the main domain.

Validation and use:

modeOptional
Send in
JSON body
Type
enum
Accepted values
on, off, detectiononly
Example
on

Blocking, disabled, or detection-only mode. Accepted detection-only aliases: detect, detection, detection_only. Invalid values are rejected and never normalized to off.

Validation and use:

profileOptional
Send in
JSON body
Type
enum
Accepted values
generic, wordpress, wordpress_ecommerce, drupal, nextcloud, dokuwiki, phpbb, phpmyadmin, xenforo, strict
Example
wordpress

Application profile: generic, wordpress, wordpress_ecommerce, drupal, nextcloud, dokuwiki, phpbb, phpmyadmin, xenforo, or strict. When supplied without rule_remove_ids/tags, its defaults are materialized; when omitted, the current target profile is preserved.

Validation and use:

rule_remove_idsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
RULE_REMOVE_IDS_FROM_LIST_RESPONSE

Complete replacement list of known active CRS rule IDs disabled for this target.

Validation and use:

rule_remove_msgsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
RULE_REMOVE_MSGS_FROM_LIST_RESPONSE

Complete replacement list of up to 64 message patterns, maximum 512 bytes each. Control characters and line breaks are rejected.

Validation and use:

rule_remove_tagsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
RULE_REMOVE_TAGS_FROM_LIST_RESPONSE

Complete replacement list of known active CRS tags disabled for this target.

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": {
    "id": 0,
    "type": "main",
    "mode": "on",
    "profile": "wordpress",
    "rule_remove_ids": "RULE_REMOVE_IDS_FROM_LIST_RESPONSE",
    "rule_remove_msgs": "RULE_REMOVE_MSGS_FROM_LIST_RESPONSE",
    "rule_remove_tags": "RULE_REMOVE_TAGS_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings/modsecurity' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"mode":"on","profile":"wordpress"}'

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 a WordPress profile
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "mode": "on",
    "profile": "wordpress"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Change only the mode and preserve the profile
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "id": 1,
    "mode": "detectiononly"
  }
}

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/accounts/{username}/web-settings/portsourceroot reseller userChoose whether a website uses PHP or a Node.js application.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

idRequired
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
1

Resource ID. Target id. For main use 0. For addon/subdomain use {id}.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value.

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
addon

Target type: main, addon, subdomain. Allowed values: main, addon, subdomain.

Validation and use:

valueRequired
Send in
JSON body
Type
enum
Accepted values
0, php
Example
php

Value payload. Allowed values: 0, php. Either "php" (or 0/empty) to serve PHP scripts, or a port number (1024–65535) registered for this domain. Alias: portsource.

Validation and use:

portsourceOptional
Send in
JSON body
Type
enum
Accepted values
0, php
Example
0

Port source setting. Alias of value. Prefer value. Allowed values: 0, php.

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": {
    "id": 1,
    "type": "addon",
    "value": "php",
    "portsource": 0
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings/portsource' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"addon","id":1,"value":"php"}'

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 to Node.js port
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "id": 1,
    "value": "php"
  }
}

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/accounts/{username}/web-settings/redirectsroot reseller userReplace path and full-domain redirects for an in your account domain.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (11)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Account username. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

idRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Target id. Use 0 for main; use the id returned by the Web Settings list for addon or subdomain.

Validation and use:

redirectsRequired
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
[{"mode":"path","enabled":1,"status":301,"source_path":"/old-page","target_url":"/new-page","preserve_query":1}]

Complete redirect rule list for the selected domain. Send an empty array to remove all redirects. Maximum: 64 rules.

Validation and use:

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target domain type.

Validation and use:

redirects[].enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Enable or disable the rule without deleting it.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Default: 1.

redirects[].modeOptional
Send in
JSON body
Type
enum
Accepted values
path, full_domain
Example
path

Redirect behavior. path matches one exact source_path. full_domain redirects every request except ACME certificate validation and preserves the original path and query string. Missing mode keeps legacy rows compatible as path.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Default: path.

redirects[].preserve_queryOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
0

For path mode, append the original query string when enabled; it cannot be enabled when an absolute destination already contains a query. Full-domain mode always forces this on and preserves the complete original URI.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Default: 0.

redirects[].source_pathConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Exact incoming path beginning with /. Maximum 240 characters. Query strings, fragments, whitespace, traversal segments, repeated slashes, and unsafe characters are rejected. Each path source must be unique. Omit for full_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 when mode=path.

redirects[].statusOptional
Send in
JSON body
Type
enum
Accepted values
301, 302
Example
301

HTTP redirect status: 301 permanent or 302 temporary.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item. Default: 301.

redirects[].target_domainOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Alias for the full-domain destination. When supplied it takes precedence over target_url and accepts only a bare hostname or HTTP(S) origin.

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 alias when mode=full domain.

redirects[].target_urlConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
https://example.com

For path mode: an internal destination path beginning with / or an absolute http:// or https:// URL. For full_domain: a bare destination hostname or HTTP(S) origin only, without credentials, path, query, or fragment; a bare hostname normalizes to HTTPS. Same-source loops are rejected.

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 unless redirects[].target domain is supplied for full domain.

Complete 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": {
    "id": 0,
    "redirects": [
      {
        "mode": "path",
        "enabled": 1,
        "status": 301,
        "source_path": "/old-page",
        "target_url": "/new-page",
        "preserve_query": 1
      }
    ],
    "type": "main",
    "redirects[].enabled": 1,
    "redirects[].mode": "path",
    "redirects[].preserve_query": 0,
    "redirects[].source_path": "/home/demo/public_html",
    "redirects[].status": 301,
    "redirects[].target_domain": "example.com",
    "redirects[].target_url": "https://example.com"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings/redirects' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"redirects":[{"mode":"path","enabled":1,"status":301,"source_path":"/old-page","target_url":"/new-page","preserve_query":1}]}'

More examples

Choose the example that matches your task. You only need to send the fields required for that action.

Redirect one path to another internal path
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "redirects": [
      {
        "mode": "path",
        "enabled": 1,
        "status": 301,
        "source_path": "/old-page",
        "target_url": "/new-page",
        "preserve_query": 1
      }
    ]
  }
}
Move the complete domain and preserve every URI
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "redirects": [
      {
        "mode": "full_domain",
        "enabled": 1,
        "status": 301,
        "target_domain": "newdomain.example"
      }
    ]
  }
}

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

If a request_id is included, keep 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/accounts/{username}/web-settings/restrictionsroot reseller userChange who or what may access the selected website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (18)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Account username. Root may manage any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

allow_modeRequired
Send in
JSON body
Type
enum
Accepted values
off, permanent, temporary
Example
temporary

IP allow-only mode. Aliases on/allow_only/allowonly map to permanent; temp maps to temporary. Invalid values are rejected and never normalized to off.

Validation and use:

idRequired
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
0

Use 0 for main; use the Web Settings list id for addon or subdomain.

Validation and use: Use the corresponding list endpoint for this resource and copy the returned id value.

typeRequired
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Target domain type. Parked domains inherit main-domain restrictions.

Validation and use:

allow_ipsConditional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
["203.0.113.10","2001:db8::10"]

Up to 32 exact IPv4 or IPv6 addresses. At least one is required for permanent or temporary mode.

Validation and use: Needed when: required when allow mode enabled.

blocked_botsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
BLOCKED_BOTS_FROM_LIST_RESPONSE

Complete replacement list of up to 32 bot signatures from the Web Settings context catalog.

Validation and use:

blocked_sourcesOptional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
BLOCKED_SOURCES_FROM_LIST_RESPONSE

Complete replacement list of up to 64 denied exact IPv4/IPv6 addresses or CIDR networks. Omit this additive field to preserve the current list for backward compatibility; send [] to clear it. Host bits are canonicalized to the network base; duplicates and sources covering an active allow-only IP are rejected.

Validation and use:

blocked_sources[].commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
BLOCKED_SOURCES_COMMENT_FROM_LIST_RESPONSE

Operator note up to 160 bytes with no control characters. The note is stored as metadata and is never written to Nginx or Apache configuration.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

blocked_sources[].sourceConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
BLOCKED_SOURCES_SOURCE_FROM_LIST_RESPONSE

Exact IPv4/IPv6 address or CIDR network to deny, for example 45.45.237.192, 141.98.136.0/24, or 2001:db8::/48.

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 when item present.

restrictionsOptional
Send in
JSON body
Type
object
Accepted values
Any value matching object
Example
{"allow_mode":"off","allow_ips":[],"temporary_duration_minutes":0,"blocked_sources":[{"source":"45.45.237.192","comment":"Crawler impersonation"},{"source":"141.98.136.0/24","comment":"Abusive network"}],"blocked_bots":["GPTBot"]}

Optional object wrapper for allow_mode, allow_ips, temporary_duration_minutes, blocked_sources, and blocked_bots. Do not combine object and flat forms.

Validation and use:

restrictions.allow_ipsConditional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
RESTRICTIONS_ALLOW_IPS_FROM_LIST_RESPONSE

Object-form equivalent of allow_ips.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when allow mode enabled.

restrictions.allow_modeConditional
Send in
JSON body
Type
enum
Accepted values
off, permanent, temporary
Example
off

Object-form equivalent of allow_mode.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when object used.

restrictions.blocked_botsOptional
Send in
JSON body
Type
array<string>|string
Accepted values
Any value matching array<string>|string
Example
RESTRICTIONS_BLOCKED_BOTS_FROM_LIST_RESPONSE

Object-form equivalent of blocked_bots.

Validation and use: Optional Send this value at the documented nested JSON body path.

restrictions.blocked_sourcesOptional
Send in
JSON body
Type
array<object>
Accepted values
Any value matching array<object>
Example
RESTRICTIONS_BLOCKED_SOURCES_FROM_LIST_RESPONSE

Object-form equivalent of blocked_sources.

Validation and use: Optional Send this value at the documented nested JSON body path.

restrictions.blocked_sources[].commentOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RESTRICTIONS_BLOCKED_SOURCES_COMMENT_FROM_LIST_RESPONSE

Object-form optional operator note, maximum 160 bytes and never emitted into web-server configuration.

Validation and use: Optional Send this value at the documented nested JSON body path; [] means the field belongs inside every array item.

restrictions.blocked_sources[].sourceConditional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
RESTRICTIONS_BLOCKED_SOURCES_SOURCE_FROM_LIST_RESPONSE

Object-form exact IP or CIDR source.

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 when item present.

restrictions.temporary_duration_minutesConditional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
1

Object-form equivalent of temporary_duration_minutes.

Validation and use: Conditional Send this value at the documented nested JSON body path. Needed when: required when temporary.

temporary_duration_minutesConditional
Send in
JSON body
Type
integer|string
Accepted values
Any value matching integer|string
Example
60

Temporary allow-only duration from 1 through 43200 minutes.

Validation and use: Needed when: required when temporary.

Complete 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": {
    "allow_mode": "temporary",
    "id": 0,
    "type": "main",
    "allow_ips": [
      "203.0.113.10",
      "2001:db8::10"
    ],
    "blocked_bots": "BLOCKED_BOTS_FROM_LIST_RESPONSE",
    "blocked_sources": "BLOCKED_SOURCES_FROM_LIST_RESPONSE",
    "blocked_sources[].comment": "BLOCKED_SOURCES_COMMENT_FROM_LIST_RESPONSE",
    "blocked_sources[].source": "BLOCKED_SOURCES_SOURCE_FROM_LIST_RESPONSE",
    "restrictions": {
      "allow_mode": "off",
      "allow_ips": [],
      "temporary_duration_minutes": 0,
      "blocked_sources": [
        {
          "source": "45.45.237.192",
          "comment": "Crawler impersonation"
        },
        {
          "source": "141.98.136.0/24",
          "comment": "Abusive network"
        }
      ],
      "blocked_bots": [
        "GPTBot"
      ]
    },
    "restrictions.allow_ips": "RESTRICTIONS_ALLOW_IPS_FROM_LIST_RESPONSE",
    "restrictions.allow_mode": "off",
    "restrictions.blocked_bots": "RESTRICTIONS_BLOCKED_BOTS_FROM_LIST_RESPONSE",
    "restrictions.blocked_sources": "RESTRICTIONS_BLOCKED_SOURCES_FROM_LIST_RESPONSE",
    "restrictions.blocked_sources[].comment": "RESTRICTIONS_BLOCKED_SOURCES_COMMENT_FROM_LIST_RESPONSE",
    "restrictions.blocked_sources[].source": "RESTRICTIONS_BLOCKED_SOURCES_SOURCE_FROM_LIST_RESPONSE",
    "restrictions.temporary_duration_minutes": 1,
    "temporary_duration_minutes": 60
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/web-settings/restrictions' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0,"allow_mode":"temporary","allow_ips":["203.0.113.10","2001:db8::10"],"temporary_duration_minutes":60,"blocked_bots":"BLOCKED_BOTS_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.

Temporarily allow only two addresses
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0,
    "allow_mode": "temporary",
    "allow_ips": [
      "203.0.113.10",
      "2001:db8::10"
    ],
    "temporary_duration_minutes": 60,
    "blocked_bots": "BLOCKED_BOTS_FROM_LIST_RESPONSE"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Block IP networks and one crawler
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "type": "addon",
    "id": 1,
    "restrictions": {
      "allow_mode": "off",
      "allow_ips": [],
      "temporary_duration_minutes": 0,
      "blocked_sources": [
        {
          "source": "45.45.237.192",
          "comment": "Crawler impersonation"
        },
        {
          "source": "141.98.136.0/24",
          "comment": "Abusive network"
        }
      ],
      "blocked_bots": [
        "GPTBot"
      ]
    }
  }
}

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/accounts/{username}/web-settings/tableroot reseller userList web settings rows for main, addon, and subdomain web targets.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

collectionConditional
Send in
Query string
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

compactOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

include_sizesOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
Query string
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
Query string
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
Query string
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

resource_idOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
1

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

searchOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
Query string
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/web-settings/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  },
  "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/accounts/{username}/web-settings/tableroot reseller userList web settings rows for main, addon, and subdomain web targets.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (19)

usernameRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
demo

Target SHM account system username. Root can query any account, a reseller only owned accounts, and an end user only their own account.

Validation and use: Required Replace this placeholder directly in the URL path.

collectionConditional
Send in
JSON body
Type
enum
Accepted values
domains, dns_domains, mail_domains, ftp_domains, email_accounts, ftp_accounts, email_forwarders, email_mailing_lists, email_filters, email_autoresponders, email_spam_rules, databases, database_users, postgresql_databases, postgresql_users, ip_access, web_settings, php_runtime, cache_targets
Example
domains

Indexed resource collection. This field selects the collection on /resources/table and is ignored by collection-specific table routes.

Validation and use: Conditional Send this parameter in any accepted location listed by accepted_in; prefer JSON for POST requests unless the user asked for a query string. Needed when: required only for /resources/table.

compactOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

Return a compact list projection. Mailing-list rows omit members while preserving member_count.

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. Default: false.

domain_typeOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Compatibility alias for type_filter used by domain table callers.

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. Needed when: optional alias of type filter.

drawOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
1

DataTables draw counter echoed back unchanged.

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. Default: 0.

email_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Exact mailbox id filter for mailbox-scoped resources such as email filters.

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. Use the corresponding list endpoint for this resource and copy the returned email_id value.

exact_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
EXACT_VALUE_FROM_LIST_RESPONSE

Optional exact indexed title filter applied before paging. Matching is ASCII case-insensitive; domain collections canonicalize U-label and A-label input with UTS46. Input is limited to 1024 bytes and invalid domain input is rejected.

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.

include_sizesOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
false

For database collections, enrich only the returned page with current database sizes in one batch query.

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. Default: false.

kindOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
KIND_FROM_LIST_RESPONSE

Compatibility alias for type_filter used by lightweight selectors.

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. Needed when: optional alias of type filter.

lengthOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer; default: 100
Example
100

Maximum rows to return. The native index reader applies an endpoint-specific upper bound.

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. Default: 100.

mailbox_idOptional
Send in
JSON body
Type
positive integer
Accepted values
Any value matching positive integer
Example
1

Compatibility alias for email_id. Prefer email_id.

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. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value. Needed when: optional alias of email id.

order_byOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string; default: sort_key
Example
sort_key

Sort field. The email accounts table also supports address and numeric storage_usage.

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. Default: sort_key.

order_dirOptional
Send in
JSON body
Type
enum
Accepted values
asc, desc
Example
asc

Sort direction.

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. Default: asc.

resource_idOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
1

Optional exact indexed resource identifier for loading one full record after a compact row is selected.

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. Use the corresponding list endpoint for this resource and copy the returned resource_id value.

searchOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Case-insensitive search text applied by the search before results are divided into pages.

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.

search_valueOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
account

Compatibility alias for search. Prefer search.

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. Needed when: optional alias of search.

servercache_filterOptional
Send in
JSON body
Type
enum
Accepted values
1, 0
Example
1

For cache target collections, filter by server-cache state: 1 for enabled or 0 for disabled.

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
JSON body
Type
integer
Accepted values
Any value matching integer; default: 0
Example
0

Zero-based result 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. Default: 0.

type_filterOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
TYPE_FILTER_FROM_LIST_RESPONSE

Optional resource type filter. Domain values are main, addon, subdomain, or parked; email filter values are global or mailbox; spam values are whitelist or blacklist.

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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "collection": "domains",
    "compact": false,
    "domain_type": "example.com",
    "draw": 1,
    "email_id": 1,
    "exact_value": "EXACT_VALUE_FROM_LIST_RESPONSE",
    "include_sizes": false,
    "kind": "KIND_FROM_LIST_RESPONSE",
    "length": 100,
    "mailbox_id": 1,
    "order_by": "sort_key",
    "order_dir": "asc",
    "resource_id": 1,
    "search": "account",
    "search_value": "account",
    "servercache_filter": 1,
    "start": 0,
    "type_filter": "TYPE_FILTER_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/web-settings/table' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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": {}
}

Requires a documented runtime value before QA can execute this request.

Read the first filtered page
{
  "path_parameters": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "draw": 1,
    "start": 0,
    "length": 100,
    "search": "account",
    "order_by": "sort_key",
    "order_dir": "asc"
  }
}

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."
}

Wordpress

DELETE/v1/accounts/{username}/wordpressroot reseller userRemove WordPress files from path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation directory to wipe (under /home/{username}).

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "path": "/home/demo/public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/wordpress' \
  -H 'X-Api-User: demo' \
  -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.

Remove WordPress files
{
  "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/accounts/{username}/wordpress/cache-clearroot reseller userClear common WordPress cache directories for one site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "path": "/home/demo/public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/cache-clear' \
  -H 'X-Api-User: demo' \
  -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.

Clear cache for the main site
{
  "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/accounts/{username}/wordpress/debug-toggleroot reseller userEnable or disable WordPress debug mode for one site path by editing wp-config.php safely inside the account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

actionOptional
Send in
JSON body
Type
enum
Accepted values
enable, enabled, on, disable, disabled, off
Example
enable

Requested action name. Allowed values: enable, enabled, on, disable, disabled, off. Alias of the debug toggle. Allowed values: `enable`, `disable`, `on`, `off`. Alias toggle. Allowed values: enable, disable, on, off.

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Set to `1` to enable or `0` to disable debug mode. Set to 1 to enable or 0 to disable debug mode.

Validation and use:

stateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STATE_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": {
    "path": "/home/demo/public_html",
    "action": "enable",
    "enabled": 1,
    "state": "STATE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/debug-toggle' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","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.

Enable WordPress debug mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "enabled": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Disable WordPress debug mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "enabled": 0
  }
}

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/accounts/{username}/wordpress/installroot reseller userInstall WordPress and create the database it needs.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

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.

admin_emailRequired
Send in
JSON body
Type
string|email
Accepted values
Any value matching string|email
Example
admin@example.com

Administrator email address. Admin email address. WordPress admin email address.

Validation and use:

admin_passRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
New#WpAdminPass2026

Administrator password. Admin password (min 8 chars). WordPress admin password (min 8 chars).

Validation and use: Minimum length 8.

admin_userRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
admin

Administrator username. Admin username. WordPress admin username.

Validation and use:

domainRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
example.com

Domain name. Target domain/subdomain that exists in the account domain list (example: `app.example.com`). Domain to install into (main/addon/subdomain/parked).

Validation and use:

site_titleRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
My Website

Site title. Site title shown in WordPress.

Validation and use:

wp_versionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
latest

WordPress core version returned by core-offers, or `latest` (default). Core version returned by GET /v1/accounts/{username}/wordpress/core-offers, or latest. Defaults to latest.

Validation and use: Maximum length 40. Pattern: ^(latest|[0-9]+(?:\.[0-9]+){1,3}(?:-[A-Za-z0-9.]+)?)$. GET /v1/accounts/{username}/wordpress/core-offers

Complete 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": {
    "admin_email": "admin@example.com",
    "admin_pass": "New#WpAdminPass2026",
    "admin_user": "admin",
    "domain": "example.com",
    "site_title": "My Website",
    "wp_version": "latest"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/install' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"domain":"example.com","site_title":"My Website","admin_user":"admin","admin_pass":"New#WpAdminPass2026","admin_email":"admin@example.com","wp_version":"latest"}'

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.

Install WordPress
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "domain": "example.com",
    "site_title": "My Website",
    "admin_user": "admin",
    "admin_pass": "New#WpAdminPass2026",
    "admin_email": "admin@example.com",
    "wp_version": "latest"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Successful result

Check the returned status and message to see whether the request completed. The response details are listed below.

FieldDocumented type or shape
domainstring
site_urlstring
document_rootstring
wp_versionstring
db_namestring
db_userstring

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/wordpress/maintenance-moderoot reseller userEnable or disable WordPress maintenance mode for one site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

actionOptional
Send in
JSON body
Type
enum
Accepted values
enable, enabled, on, disable, disabled, off
Example
enable

Requested action name. Allowed values: enable, enabled, on, disable, disabled, off. Alias of the maintenance toggle. Allowed values: `enable`, `disable`, `on`, `off`. Alias toggle. Allowed values: enable, disable, on, off.

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Set to `1` to enable or `0` to disable maintenance mode. Set to 1 to enable or 0 to disable maintenance mode.

Validation and use:

stateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STATE_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": {
    "path": "/home/demo/public_html",
    "action": "enable",
    "enabled": 1,
    "state": "STATE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/maintenance-mode' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","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.

Enable maintenance mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "enabled": 1
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Disable maintenance mode
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "enabled": 0
  }
}

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/accounts/{username}/wordpress/passwordroot reseller userReset WordPress password.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

passwordRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STRONG_PASSWORD

New WordPress password. Alias of pw. Prefer pw.

Validation and use:

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation directory (under /home/{username}).

Validation and use: GET /v1/accounts/{username}/wordpress/sites

pwRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
New#WpAdminPass2026

Alias of `password`. New password (min 8 chars). Alias: password.

Validation and use:

user_idOptional
Send in
JSON body
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
1

Optional WordPress user id. Defaults to `1`. WordPress user id to reset (default 1).

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "password": "STRONG_PASSWORD",
    "path": "/home/demo/public_html",
    "pw": "New#WpAdminPass2026",
    "user_id": 1
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/wordpress/password' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","pw":"New#WpAdminPass2026","user_id":1,"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.

Reset admin password
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "pw": "New#WpAdminPass2026",
    "user_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/accounts/{username}/wordpress/pluginsroot reseller userList WordPress plugins for one detected WordPress site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/wordpress/plugins?path=%2Fhome%2Fdemo%2Fpublic_html' \
  -H 'X-Api-User: demo' \
  -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 plugins for the main site
{
  "path_parameters": {},
  "query_parameters": {
    "path": "/home/demo/public_html"
  },
  "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/accounts/{username}/wordpress/plugins/{plugin}root reseller userEnable or disable one WordPress plugin for one site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (7)

pluginRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
woocommerce

Plugin 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.

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.

actionRequired
Send in
JSON body
Type
enum
Accepted values
enable, enabled, activate, on, disable, disabled, deactivate, off
Example
disable

Requested action name. Allowed values: enable, enabled, activate, on, disable, disabled, deactivate, off. Allowed values: `enable`, `disable`. Aliases such as `on`, `off`, `activate`, or `deactivate` are also accepted. Allowed values: enable, disable. Aliases such as on, off, activate, and deactivate are accepted too.

Validation and use:

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

enabledOptional
Send in
JSON body
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Validation and use:

plugin_fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
woocommerce/woocommerce.php

Optional exact plugin file key when the slug alone is ambiguous. Optional exact plugin file key from the plugins list when you need an exact match.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name.

stateOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
STATE_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": {
    "plugin": "woocommerce",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "action": "disable",
    "path": "/home/demo/public_html",
    "enabled": 1,
    "plugin_file": "woocommerce/woocommerce.php",
    "state": "STATE_FROM_LIST_RESPONSE"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/wordpress/plugins/woocommerce' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","action":"disable","plugin_file":"woocommerce/woocommerce.php"}'

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.

Disable one plugin
{
  "path_parameters": {
    "plugin": "woocommerce"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "action": "disable",
    "plugin_file": "woocommerce/woocommerce.php"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Enable one plugin
{
  "path_parameters": {
    "plugin": "classic-editor"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "action": "enable"
  }
}

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/accounts/{username}/wordpress/plugins/{plugin}/installroot reseller userInstall one plugin slug from the official WordPress.org plugin directory and optionally activate it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

pluginRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
classic-editor

Plugin 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.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the authorized WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

activateOptional
Send in
JSON body
Type
enum
Accepted values
true, false
Example
false

Activate the installed plugin through WordPress and run its standard activation hook. Allowed values: true, false.

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": {
    "plugin": "classic-editor",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "activate": false
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/plugins/classic-editor/install' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","activate":false}'

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.

Install an official plugin without activating it
{
  "path_parameters": {
    "plugin": "classic-editor"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "activate": false
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Install and activate an official plugin
{
  "path_parameters": {
    "plugin": "classic-editor"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "activate": 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.

FieldDocumented type or shape
statusstring
messagestring
sourcestring
source_catalogstring
directory_urlstring
download_hoststring
package_typestring
slugstring
namestring
versionstring
pathstring
installedboolean
already_installedboolean
package_downloadedboolean
official_package_verifiedboolean
activation_requestedboolean
activeboolean
activation_errorstring
verificationobject
pluginsarray

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}
POST/v1/accounts/{username}/wordpress/repair-packroot reseller userRun one safe WordPress recovery pack for one site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

packRequired
Send in
JSON body
Type
enum
Accepted values
safe_recovery, debug_recovery, plugin_disable, theme_fallback
Example
safe_recovery

Allowed values: `safe_recovery`, `debug_recovery`, `plugin_disable`, `theme_fallback`. Allowed values: safe_recovery, debug_recovery, plugin_disable, theme_fallback.

Validation and use:

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

plugin_fileOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
woocommerce/woocommerce.php

Optional exact plugin file key when `pack=plugin_disable`. Optional exact plugin file key when pack=plugin_disable.

Validation and use: Use the relevant list/read endpoint for this resource and copy the returned file name.

plugin_slugOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
woocommerce

Required when `pack=plugin_disable` and the target plugin should be selected by slug. Required when pack=plugin_disable and the plugin should be selected by slug.

Validation and use:

theme_slugOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
twentytwentysix

Optional theme slug when `pack=theme_fallback`. When omitted, SHM selects the safest default theme available. Optional explicit fallback theme slug when pack=theme_fallback. When omitted, SHM chooses the safest default theme it can find.

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": {
    "pack": "safe_recovery",
    "path": "/home/demo/public_html",
    "plugin_file": "woocommerce/woocommerce.php",
    "plugin_slug": "woocommerce",
    "theme_slug": "twentytwentysix"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/repair-pack' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","pack":"safe_recovery"}'

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.

Run safe recovery
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "pack": "safe_recovery"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Run debug recovery
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "pack": "debug_recovery"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Disable one broken plugin
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "pack": "plugin_disable",
    "plugin_slug": "woocommerce",
    "plugin_file": "woocommerce/woocommerce.php"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Switch to a fallback theme
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "pack": "theme_fallback",
    "theme_slug": "twentytwentysix"
  }
}

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/accounts/{username}/wordpress/shmcache/disableroot reseller userTurn off the SHMCache integration for a WordPress website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
3

Exact vhost target id for addon or subdomain targets. Use `0` for the main domain. Vhost target id. Required for addon and subdomain targets. Use 0 for main.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Optional exact WordPress installation path owned by the selected vhost. A nested sibling-vhost path is rejected. Optional exact WordPress path owned by the selected vhost if the stored path is no longer enough.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
subdomain

Exact vhost target type. Allowed values: `main`, `addon`, `subdomain`. Defaults to `main`. Vhost target type. Allowed values: main, addon, subdomain. Default: main.

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": {
    "id": 3,
    "path": "/home/demo/public_html",
    "type": "subdomain"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/shmcache/disable' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"subdomain","id":3}'

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.

Disable SHMCache on a subdomain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "subdomain",
    "id": 3
  }
}

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/accounts/{username}/wordpress/shmcache/enableroot reseller userEnable SHMCache for a WordPress website.

Before you start

The required WordPress integration is installed or repaired automatically. New cache copies are created as visitors use the website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
0

Exact vhost target id for addon or subdomain targets. Use `0` for the main domain. Vhost target id. Required for addon and subdomain targets. Use 0 for main.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/cachewp

Optional exact WordPress installation path owned by the selected vhost when multiple installations exist. A nested sibling-vhost path is rejected. Optional exact WordPress path owned by the selected vhost when SHM detects multiple installations.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
main

Exact vhost target type. Allowed values: `main`, `addon`, `subdomain`. Defaults to `main`. Vhost target type. Allowed values: main, addon, subdomain. Default: main.

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": {
    "id": 0,
    "path": "/home/demo/cachewp",
    "type": "main"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/shmcache/enable' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"main","id":0}'

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 SHMCache on the main domain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "main",
    "id": 0
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Enable SHMCache on a subdomain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "subdomain",
    "id": 3,
    "path": "/home/demo/cachewp"
  }
}

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/accounts/{username}/wordpress/shmcache/purgeroot reseller userClear a WordPress website's SHMCache copies.

Before you start

Caching remains enabled or disabled as before. New copies are created when visitors use the website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

idOptional
Send in
JSON body
Type
integer
Accepted values
Any value matching integer
Example
3

Exact vhost target id for addon or subdomain targets. Use `0` for the main domain. Vhost target id. Required for addon and subdomain targets. Use 0 for main.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

pathOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Optional exact WordPress installation path owned by the selected vhost. A nested sibling-vhost path is rejected. Optional WordPress path owned by the selected vhost and used only for validation/status context.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

typeOptional
Send in
JSON body
Type
enum
Accepted values
main, addon, subdomain
Example
subdomain

Exact vhost target type. Allowed values: `main`, `addon`, `subdomain`. Defaults to `main`. Vhost target type. Allowed values: main, addon, subdomain. Default: main.

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": {
    "id": 3,
    "path": "/home/demo/public_html",
    "type": "subdomain"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/shmcache/purge' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"subdomain","id":3}'

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 SHMCache for a subdomain
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "type": "subdomain",
    "id": 3
  }
}

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/accounts/{username}/wordpress/shmcache/statusroot reseller userCheck whether SHMCache is connected to a WordPress website.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

idOptional
Send in
Query string
Type
integer
Accepted values
Any value matching integer
Example
0

Exact vhost target id for addon or subdomain targets. Use `0` for the main domain. Vhost target id. Required for addon and subdomain targets. Use 0 for main.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

pathOptional
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Optional exact WordPress installation path owned by the selected vhost. A path under a more-specific addon or subdomain document root is rejected for a parent target. Optional exact WordPress path owned by the selected vhost.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

response.vhost_scopedOptional
Send in
Query string
Type
enum
Accepted values
1, 0, true, false, yes, no, on, off
Example
1

Always true when the response checked that the selected WordPress site belongs to the account.

Validation and use: Needed when: response.

typeOptional
Send in
Query string
Type
enum
Accepted values
main, addon, subdomain
Example
main

Exact vhost target type. Allowed values: `main`, `addon`, `subdomain`. Defaults to `main`. Vhost target type. Allowed values: main, addon, subdomain. Default: main.

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": {
    "id": 0,
    "path": "/home/demo/public_html",
    "response.vhost_scoped": 1,
    "type": "main"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/wordpress/shmcache/status?type=main&id=0' \
  -H 'X-Api-User: demo' \
  -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.

Check main domain SHMCache status
{
  "path_parameters": {},
  "query_parameters": {
    "type": "main",
    "id": 0
  },
  "json_body": {}
}

Requires a value returned by another endpoint before QA can execute this request.

Check one subdomain SHMCache status
{
  "path_parameters": {},
  "query_parameters": {
    "type": "subdomain",
    "id": 3
  },
  "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/accounts/{username}/wordpress/themesroot reseller userList WordPress themes for one detected WordPress site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/wordpress/themes?path=%2Fhome%2Fdemo%2Fpublic_html' \
  -H 'X-Api-User: demo' \
  -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 themes for the main site
{
  "path_parameters": {},
  "query_parameters": {
    "path": "/home/demo/public_html"
  },
  "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/accounts/{username}/wordpress/themes/{theme}root reseller userActivate one WordPress theme for one site path.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

themeRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
twentytwentysix

Theme 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.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under the account home. Absolute path to the WordPress installation under /home/{username}.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

actionOptional
Send in
JSON body
Type
enum
Accepted values
activate, enable, switch
Example
activate

Requested action name. Allowed values: activate, enable, switch. Theme action. Allowed values: `activate`, `enable`, `switch`. Default: `activate`. Default: activate.

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": {
    "theme": "twentytwentysix",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "action": "activate"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/wordpress/themes/twentytwentysix' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","action":"activate"}'

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 fallback theme
{
  "path_parameters": {
    "theme": "twentytwentysix"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "action": "activate"
  }
}

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/accounts/{username}/wordpress/themes/{theme}/installroot reseller userInstall one theme slug from the official WordPress.org theme directory and optionally activate it.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

themeRequired
Send in
URL path
Type
string
Accepted values
Any value matching string
Example
twentytwentyfive

Theme 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.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the authorized WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

activateOptional
Send in
JSON body
Type
enum
Accepted values
true, false
Example
false

Activate the installed theme through the WordPress runtime. Allowed values: true, false.

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": {
    "theme": "twentytwentyfive",
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "activate": false
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/themes/twentytwentyfive/install' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","activate":false}'

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.

Install an official theme without activating it
{
  "path_parameters": {
    "theme": "twentytwentyfive"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "activate": false
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Install and activate an official theme
{
  "path_parameters": {
    "theme": "twentytwentyfive"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "activate": 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.

FieldDocumented type or shape
statusstring
messagestring
sourcestring
source_catalogstring
directory_urlstring
download_hoststring
package_typestring
slugstring
namestring
versionstring
pathstring
installedboolean
already_installedboolean
package_downloadedboolean
official_package_verifiedboolean
activation_requestedboolean
activeboolean
activation_errorstring
verificationobject
themesarray

Error response

{
  "status": "error",
  "code": "validation_error",
  "message": "One or more required parameters are missing or invalid."
}

WordPress

GET/v1/accounts/{username}/wordpress/admin-usersroot reseller userList WordPress administrator users for an your account’s site.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
Query string
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "path": "/home/demo/public_html"
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/wordpress/admin-users?path=%2Fhome%2Fdemo%2Fpublic_html' \
  -H 'X-Api-User: demo' \
  -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 administrators for the main site
{
  "path_parameters": {},
  "query_parameters": {
    "path": "/home/demo/public_html"
  },
  "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/accounts/{username}/wordpress/auto-settingsroot reseller userUpdate WordPress manager auto-update settings for an account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

coreOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Core auto-update switch. Allowed values: on, off. Default when omitted: on.

Validation and use:

enabledOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Master auto-update switch. Allowed values: on, off. Default when omitted: off.

Validation and use:

pluginsOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Plugin auto-update switch. Allowed values: on, off. Default when omitted: on.

Validation and use:

themesOptional
Send in
JSON body
Type
enum
Accepted values
on, off
Example
on

Theme auto-update switch. Allowed values: on, off. Default when omitted: 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": {
    "username": "demo"
  },
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "core": "on",
    "enabled": "on",
    "plugins": "on",
    "themes": "on"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/wordpress/auto-settings' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","enabled":"on","core":"on","plugins":"on","themes":"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.

Enable automatic core, plugin, and theme updates
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "enabled": "on",
    "core": "on",
    "plugins": "on",
    "themes": "on"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Disable all WordPress auto-updates for one site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html/staging",
    "enabled": "off",
    "core": "off",
    "plugins": "off",
    "themes": "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/accounts/{username}/wordpress/core-offersroot reseller userList available WordPress core versions for an account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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/accounts/demo/wordpress/core-offers' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 available WordPress core versions
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/wordpress/sitesroot reseller userScan and list WordPress sites for an account.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

max_depthOptional
Send in
Query string
Type
int|string|integer
Accepted values
Any value matching int|string|integer
Example
6

Max depth query parameter. How deep SHM should scan under the account home. Default 10. Increase only when WordPress is installed in deeply nested folders.

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": {
    "max_depth": 6
  },
  "json_body": {},
  "query_or_json_parameters": {}
}

Example request

curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/wordpress/sites?max_depth=6' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY'

Example note: Requires a documented runtime value 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 common locations only
{
  "path_parameters": {},
  "query_parameters": {
    "max_depth": 6
  },
  "json_body": {}
}

Requires a documented runtime value before QA can execute this request.

Full account scan
{
  "path_parameters": {},
  "query_parameters": {
    "max_depth": 10
  },
  "json_body": {}
}

Requires a documented runtime value 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/accounts/{username}/wordpress/update-checkroot reseller userCheck pending WordPress updates for an your account’s site.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

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.

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

Complete 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": {
    "path": "/home/demo/public_html"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/update-check' \
  -H 'X-Api-User: demo' \
  -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.

Check updates for the main site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Check updates for a staging site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html/staging"
  }
}

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/accounts/{username}/wordpress/update-runroot reseller userRun WordPress updates for an your account’s site.

Who can use this

The account owner, the reseller who manages it, or the server administrator.

Parameters (4)

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.

kindRequired
Send in
JSON body
Type
enum
Accepted values
core_download, core, plugins, themes, all
Example
all

Kind request field. Allowed values: core_download, core, plugins, themes, all. Update action.

Validation and use:

pathRequired
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
/home/demo/public_html

Absolute path to the WordPress installation under /home/{username}. Get it from GET /v1/accounts/{username}/wordpress/sites.

Validation and use: GET /v1/accounts/{username}/wordpress/sites

versionOptional
Send in
JSON body
Type
string
Accepted values
Any value matching string
Example
6.8.1

Optional WordPress core version. Use it with kind=core_download or kind=core. Omit it or set latest for the newest stable release.

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": {
    "kind": "all",
    "path": "/home/demo/public_html",
    "version": "6.8.1"
  },
  "query_or_json_parameters": {}
}

Example request

curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/wordpress/update-run' \
  -H 'X-Api-User: demo' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"path":"/home/demo/public_html","kind":"all"}'

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 all components on one site
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "kind": "all"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Update plugins only
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "kind": "plugins"
  }
}

Requires a value returned by another endpoint before QA can execute this request.

Download a specific WordPress core version
{
  "path_parameters": {},
  "query_parameters": {},
  "json_body": {
    "path": "/home/demo/public_html",
    "kind": "core_download",
    "version": "6.8.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."
}

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