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.
| Field | Documented type or shape |
|---|---|
status | string |
title | string |
message | string |
role | enum(root|reseller|user) |
count | integer |
accounts | object[] |
accounts[].id | positive integer |
accounts[].user | string |
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_quarantineComplete 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.
| Field | Documented type or shape |
|---|---|
response_type | string; evidence-aware view_file returns evidence_blob |
path | string; authorized display path |
size | integer; opened file size in bytes |
limit | integer; rendered preview cap, currently 524288 bytes |
scan_id | string; resolved persisted finding report id when supplied |
sha256 | string; expected finding SHA-256 |
current_sha256 | string; SHA-256 computed from the same opened descriptor used for preview reads |
rules_revision | integer; report rules revision when available |
changed_since_scan | boolean; true disables all saved evidence highlights |
evidence_available | boolean; true only when unchanged exact outer-file spans are renderable |
finding_evidence | object[]; bounded exact, archive-member, or derived evidence metadata |
windows | object[]{offset:integer,length:integer,reason_code?:string,role?:string,segments:object[]{text:string,highlight:boolean,reason_code?:string,role?:string}} |
binary_preview | boolean; invalid or binary bytes were converted to printable escapes |
truncated | boolean; content was bounded by preview or evidence-window limits |
finding_kind | View classification: malware or potential_vulnerability. Also present on each detections_dt row. |
remediation_policy | guarded_remediation or review_only. Review-only files cannot be cleaned, quarantined, deleted or trusted through finding actions. |
classification_status | confirmed for malware; review for an unconfirmed potential vulnerability. Not a remote-exploitability assertion. |
stats.confirmed_files | Account-visible distinct malware files. |
stats.review_files | Account-visible distinct review-only files. |
stats.detected_files | Account-visible distinct malware and review files combined. |
error | security_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.
| Field | Documented type or shape |
|---|---|
avx_rules_rev | Rules revision of the running engine. Finding-type filters require revision 147 or newer. |
scan_reports[].confirmed | Distinct confirmed-malware files visible to this account. Excludes review-only findings. |
scan_reports[].review | Distinct potential-vulnerability files visible to this account. A file with independent malware evidence is counted only under confirmed. |
scan_reports[].matched | Account-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)
joomladrupalprestashopopencartshopwarephpbbmediawikimoodlenextcloudlaravelsymfonycodeigniterApplication-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.
| Field | Documented type or shape |
|---|---|
restore_hash | random tenant-bound job identifier |
staging_path | account-relative isolated restore path |
staging_only | always 1 |
live_path_unchanged | always 1 |
next_step | inspect 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.
| Field | Documented type or shape |
|---|---|
job_status | running|completed|failed|finished|not_found |
running | boolean |
last_line | last 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.
| Field | Documented type or shape |
|---|---|
status | success |
message | Restore 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.
| Field | Documented type or shape |
|---|---|
content | restore 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.
| Field | Documented type or shape |
|---|---|
restore_hash | random tenant-bound job identifier |
job_status | running |
location | original|alternative |
selected_count | number 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.
| Field | Documented type or shape |
|---|---|
job_status | running|completed|failed|finished|not_found |
running | boolean |
log_exists | boolean |
last_line | last 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.
| Field | Documented type or shape |
|---|---|
status | success |
message | Restore 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.
| Field | Documented type or shape |
|---|---|
content | restore 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.
| Field | Documented type or shape |
|---|---|
restore_hash | random tenant-bound job identifier |
job_status | running |
restore_mode | import|dump |
location | original for import or alternative for dump |
selected_count | number 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.
| Field | Documented type or shape |
|---|---|
job_status | running|completed|failed|finished|not_found |
running | boolean |
log_exists | boolean |
last_line | last 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.
| Field | Documented type or shape |
|---|---|
status | success |
message | Restore 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.
| Field | Documented type or shape |
|---|---|
content | restore 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.
| Field | Documented type or shape |
|---|---|
count | int |
sizes_included | bool |
databases | array<{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.
| Field | Documented type or shape |
|---|---|
action | string |
database | string |
table | string |
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_rows | int |
insert_id | int |
warning_count | int |
sensitive_fields_redacted | bool |
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.
| Field | Documented type or shape |
|---|---|
matches[] | ["file","line","preview","preview_redacted"] |
match_count | number of returned matches after the result cap |
backend | parallel_grep |
elapsed_ms | server-side search duration |
timed_out | 1 when the hard timeout returned partial results |
truncated | 1 when timeout, capture, or result limits may have omitted matches |
redacted_preview_count | number of returned previews whose secret-like value was replaced |
security | read-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.
| Field | Documented type or shape |
|---|---|
file | normalized account-relative path |
before_sha1 | validated prior SHA-1 or absent |
after_sha1 | read-back SHA-1 of the committed content |
verification | read-back, content-match, SHA-1, and storage checks |
rollback.token | account-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.
| Field | Documented type or shape |
|---|---|
domain | string |
path | string |
scheme | http|https |
method | GET|HEAD |
sample_count | int |
follow_redirects | int |
follow_redirects_requested | int |
redirect_policy | string |
probe_ip | validated public IP pinned for every sample |
topology | object |
averages | object |
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.
| Field | Documented type or shape |
|---|---|
focus | domain and detected web topology |
nodejs | sanitized app/runtime status, bounded log summaries, and exact lifecycle endpoints |
podman | container state, Compose project metadata, and exact diagnostic/lifecycle endpoints |
git | bounded repository scan/status and exact repository action endpoints |
postgresql | owned databases, account-scoped processes, and exact inspection/process endpoints |
recommendations[] | ["severity","code","message","endpoint"] |
security | account 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.
| Field | Documented type or shape |
|---|---|
addon_id | int |
domain | string |
document_root | string |
ip | string |
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.
| Field | Documented type or shape |
|---|---|
parked_id | int |
domain | string |
document_root | string |
ip | string |
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.
| Field | Documented type or shape |
|---|---|
subdomain_id | int |
domain | string |
document_root | string |
ip | string |
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."
}
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.
| Field | Documented type or shape |
|---|---|
email | string |
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.
| Field | Documented type or shape |
|---|---|
catalog_version | integer catalog contract version. |
preferred_syntax | string naming the preferred double-brace variable syntax. |
variables | array of token, legacy_alias, label, description, value_source, automatic, dynamic, and allowed_in metadata. |
custom_variables | object describing token format, name validation, count limit, and per-value/total size limits. |
templates | array 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.
| Field | Documented 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.
| Field | Documented type or shape |
|---|---|
content | string |
size_bytes | int |
perms | string |
mtime | int |
mime | string |
sha1 | string |
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.
| Field | Documented type or shape |
|---|---|
destination | string |
count | int |
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.
| Field | Documented type or shape |
|---|---|
path | string |
name | string |
perms | string |
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.
| Field | Documented type or shape |
|---|---|
path | string |
name | string |
perms | string |
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.
| Field | Documented type or shape |
|---|---|
path | string |
perms | string |
renamed | bool |
permissions_changed | bool |
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.
| Field | Documented type or shape |
|---|---|
destination | string |
count | int |
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.
| Field | Documented type or shape |
|---|---|
trash | string |
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.
| Field | Documented type or shape |
|---|---|
destination | string |
count | int |
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.
| Field | Documented type or shape |
|---|---|
destination | string |
archives[] | {"type":"array","description":"Archives extracted successfully."} |
count | int |
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.
| Field | Documented type or shape |
|---|---|
path | string |
count | int |
total_bytes | int |
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.
| Field | Documented type or shape |
|---|---|
archive | string |
count | int |
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_rejectAction-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.
| Field | Documented type or shape |
|---|---|
content | string |
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.
| Field | Documented 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.
| Field | Documented 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.
| Field | Documented type or shape |
|---|---|
domain | string |
account_user | string |
mailbox_count | int |
dns | Managed-zone MX/SPF/DKIM/DMARC evidence and comparison checks. |
public_dns | Public MX targets and public-routability checks, SPF, DMARC, bounded DKIM selectors, sending IP, and PTR records. |
deliverability | Five-signal public deliverability score plus MX, mail-host, SPF, DMARC, DKIM, and PTR check details. |
trace | Bounded 24-hour Exim status counts and up to 20 recent account-scoped records. |
recommendations | Structured 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.
| Field | Documented type or shape |
|---|---|
draw | integer |
recordsTotal | integer |
recordsFiltered | integer |
start | integer |
length | integer |
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.
| Field | Documented type or shape |
|---|---|
updated_count | number of account-owned mailboxes updated |
mailboxes | canonical addresses changed by this request |
twofa_mode | effective 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.
| Field | Documented type or shape |
|---|---|
email | canonical 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.
| Field | Documented type or shape |
|---|---|
email | canonical mailbox address |
app_password_id | revocation identifier |
label | stored application label |
app_password | one-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.
| Field | Documented type or shape |
|---|---|
status | success 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.
| Field | Documented type or shape |
|---|---|
login_suspended | 1 only after account YAML read-back verification |
outgoing_suspended | 1 only after exact Exim map verification |
incoming_state_preserved | 1 only when the previous incoming state remains exact |
app_passwords | known, removed, remaining, and verification counts |
queued_messages | exact authenticated-mailbox queue matches, newly frozen count, remaining count, and scan verification |
roundcube_sessions | removed, remaining/unverified, and verification fields |
dovecot_sessions | before/after observations, kicks, and zero-session verification |
verification.complete | 1 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Human-readable result. |
count | Total saved applications before filtering. |
draw | Echoed draw counter for paged requests. |
recordsTotal | Total applications visible to the authorized account. |
recordsFiltered | Applications matching current filters. |
apps[] | Application configuration plus current runtime status, pid, health, runner, base_url, and autostart. |
apps[].id | Application id. |
apps[].name | Application name. |
apps[].domain | Owned deployment domain. |
apps[].base_url | Application URL prefix. |
apps[].mode | production or development. |
apps[].cwd | Canonical application directory. |
apps[].start_file | Configured startup file. |
apps[].start_cmd | Configured custom start command. |
apps[].port | Assigned unprivileged TCP port. |
apps[].host | Loopback application host. |
apps[].node_version | Configured Node.js version. |
apps[].runner | pm2 or node. |
apps[].autostart | Managed boot autostart state. |
apps[].status | Runner-specific runtime status. |
apps[].runtime_state | Normalized runtime state. |
apps[].progress_stage | Normalized lifecycle progress stage. |
apps[].progress_message | Concise lifecycle progress result. |
apps[].action_pending | Whether lifecycle readiness is still pending. |
apps[].pid | Verified managed process id when running. |
apps[].env | Persisted environment map. |
apps[].created | Creation timestamp. |
apps[].updated | Last configuration update timestamp. |
apps[].last_action | Last persisted lifecycle action. |
apps[].log_file | Managed 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Registration result and any reassigned-port notice. |
app | Persisted 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Deletion or cleanup-verification result. |
app_id | Deleted 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.
| Field | Documented type or shape |
|---|---|
status | success or warning. |
title | Human-readable result title. |
message | Human-readable result. |
app | Application 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Update result and any reassigned-port notice. |
app | Complete 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)
startstoprestartrepairAction-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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Lifecycle result. |
action | Executed lifecycle action. |
app_id | Target application id. |
runtime_status | Runner-specific status after the action. |
runtime_state | Normalized running, stopped, or errored state. |
progress_stage | Normalized lifecycle completion stage. |
progress_message | Concise lifecycle progress result. |
action_pending | Whether runtime readiness is still pending. |
pid | Verified 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.
| Field | Documented type or shape |
|---|---|
status | success or warning. |
title | Human-readable result title. |
message | Human-readable result. |
app_id | Target application id. |
lines | Effective bounded line count. |
runner | Configured pm2 or node runner. |
out_file | Resolved stdout log path. |
err_file | Resolved stderr log path. |
out | Bounded stdout tail. |
err | Bounded 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | npm install result. |
app_id | Target application id. |
exit_code | npm process exit code. |
trimmed | Whether output exceeded the response cap. |
output | Sanitized 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Discovery result. |
count | Number of discovered projects. |
projects[] | Project path, package name, suggested name/command, startup file, and entry-file candidates. |
projects[].path | Account-home-relative project directory. |
projects[].suggest | Suggested start command. |
projects[].suggest_name | Suggested application name. |
projects[].pkg_name | package.json name. |
projects[].main | package.json main entry. |
projects[].start_script | Resolved package start script. |
projects[].startup_file | Suggested startup file. |
projects[].entry_files[] | Detected candidate entry files. |
projects[].has_package | Whether 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Human-readable result. |
count | Number of owned deployment domains. |
domains[] | Owned deployment targets with domain and type. |
domains[].domain | Owned domain name. |
domains[].type | main, 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.
| Field | Documented type or shape |
|---|---|
status | success or error. |
title | Human-readable result title. |
message | Human-readable result. |
requested_port | Validated requested port. |
is_free | Boolean availability result. |
suggested_port | Requested 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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
account | object |
show_breadcrumb | boolean |
featureprofile | object |
runtime_capabilities | object{platform:object,cgroup:object,systemd:object,capabilities:object,podman:object,resource_limits:object,quota:object} |
menu | object[]{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_containerAction-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.
| Field | Documented type or shape |
|---|---|
status | success|error |
code | string|null; not_available for shared platform capability failure, podman_runtime_unavailable for account rootless UID/GID namespace rejection |
message | Human-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. |
data | action-specific object[]|object|null |
operation_id | For a background Compose start: account-bound identifier matching podmancop_[a-f0-9]{24}. |
started | For a background Compose start: true when a new worker was launched. |
reused | For a background Compose start: true when an idempotent retry reused the active action for the same account/project. |
operation | For 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.
| Field | Documented type or shape |
|---|---|
action | string |
database | string |
schema | string |
table | string |
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_rows | int |
max_affected_rows | int |
sensitive_fields_redacted | bool |
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.
| Field | Documented 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.
| Field | Documented type or shape |
|---|---|
tasks_current | int |
tasks_max | string|int |
process_count | int |
cpu_total | float |
memory_total_mb | float |
threads_total | int |
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.
| Field | Documented type or shape |
|---|---|
columns[] | array |
rows[] | array |
exact | bool |
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."
}
Search
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.
| Field | Documented type or shape |
|---|---|
status | success. |
query | Normalized search query used for matching. |
results[] | Non-empty result groups visible to the authenticated caller. |
results[].category | Result 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[].title | Primary result label. |
results[].items[].subtitle | Optional contextual result text. |
results[].items[].main_url | Primary SHM page URL. |
results[].items[].sub_url | Optional nested account-page URL. |
results[].items[].account_user | Target 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.
| Field | Documented type or shape |
|---|---|
status | success. |
query | Normalized search query used for matching. |
results[] | Non-empty result groups visible to the authenticated caller. |
results[].category | Result 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[].title | Primary result label. |
results[].items[].subtitle | Optional contextual result text. |
results[].items[].main_url | Primary SHM page URL. |
results[].items[].sub_url | Optional nested account-page URL. |
results[].items[].account_user | Target 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.
| Field | Documented 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.
| Field | Documented type or shape |
|---|---|
status | success |
message | enable 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.
| Field | Documented type or shape |
|---|---|
status | string |
title | string |
message | string |
id | integer |
commonname | string |
alternatives | string |
issuerO | string |
issuerCN | string |
validfrom | string |
expireson | string |
type | string |
certificate | PEM string |
privatekey | PEM string |
certificateauthority | PEM string |
assigned_domains | string[] |
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.
| Field | Documented type or shape |
|---|---|
type | Resolved account-owned target type. |
id | Resolved target id; 0 for the main domain. |
domain | Resolved account-owned hostname. |
target_ip | Server IP read from the authorized account target. |
asset_path | Same-origin static asset selected for static-cache probes, or /favicon.ico when none is found. |
summary.code | Stable result code: cache_working, visitor_session, private_response, cache_bypass, or cache_not_serving. |
summary.message | English 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.
| Field | Documented type or shape |
|---|---|
domain | string |
site_url | string |
document_root | string |
wp_version | string |
db_name | string |
db_user | string |
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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
source | string |
source_catalog | string |
directory_url | string |
download_host | string |
package_type | string |
slug | string |
name | string |
version | string |
path | string |
installed | boolean |
already_installed | boolean |
package_downloaded | boolean |
official_package_verified | boolean |
activation_requested | boolean |
active | boolean |
activation_error | string |
verification | object |
plugins | array |
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.
| Field | Documented type or shape |
|---|---|
status | string |
message | string |
source | string |
source_catalog | string |
directory_url | string |
download_host | string |
package_type | string |
slug | string |
name | string |
version | string |
path | string |
installed | boolean |
already_installed | boolean |
package_downloaded | boolean |
official_package_verified | boolean |
activation_requested | boolean |
active | boolean |
activation_error | string |
verification | object |
themes | array |
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