User API
User API documents account-scoped automation shared by account users, owning resellers, and root within the normal authorization boundary.
Where to find it: Documentation > Hosting Manager > API > User API.
Available to: Root, reseller, and user API identities inside the authorized account scope.
What this page does
This page lists public endpoints available to account users and therefore also to root or the owning reseller within normal authorization scope. It contains 341 endpoints from the current SHM public catalog.
Before you start
Use a dedicated API identity, protect the key, restrict source addresses where available, and discover current ids before a write. Every example uses the direct SHM Engine origin https://panel.example.com:882. Placeholders are documentation, not permission to run a production mutation.
Authentication
Send X-Api-User and X-Api-Key to the SHM Engine on port 882. JSON requests also send Content-Type: application/json. Role, account ownership, source policy, feature access, and resource identifiers are checked for every request.
How to read each endpoint
The parameter cards and complete request template are exhaustive: every current key is shown with its accepted location, required or optional status, type, values, constraints, and an example. The runnable workflow example is deliberately narrower when an endpoint contains mutually exclusive actions or conditional branches.
User API endpoint reference (341)
Accounts
GET/v1/accountsroot reseller userList accounts visible to current role.
What this endpoint does
List accounts visible to current role.
Endpoint
GET /v1/accounts
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (0)
This endpoint accepts no path, query, or JSON parameters.
Complete request template
This reference template contains all 0 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "access_denied",
"message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}root reseller userGet account details by system username.
What this endpoint does
Get account details by system username.
Endpoint
GET /v1/accounts/{username}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Ai
GET/v1/ai/catalogroot reseller userFetch AI-ready API catalog batches with endpoint role, target scope, request fields, examples, and usage guidance. Catalog text is English reference data; the assistant should translate natural user intent into English search keywords and answer the user in the latest message language.
What this endpoint does
Fetch AI-ready API catalog batches with endpoint role, target scope, request fields, examples, and usage guidance. Catalog text is English reference data; the assistant should translate natural user intent into English search keywords and answer the user in the latest message language.
Endpoint
GET /v1/ai/catalog
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (8)
accountOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
demo
Account username used to resolve {username} paths.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
batchOptional- Send in
- Query string
- Type
int- Accepted values
- Any value matching int
- Example
1
1-based batch number.
Validation and use: Optional Send this parameter in the query string.
batch_sizeOptional- Send in
- Query string
- Type
int- Accepted values
- Any value matching int
- Example
1
Endpoints per response, max 50.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
roleOptional- Send in
- Query string
- Type
enum- Accepted values
- root, reseller, user
- Example
user
Catalog role: root, reseller, or user.
Validation and use: Optional Send this parameter in the query string.
surfaceOptional- Send in
- Query string
- Type
enum- Accepted values
- workspace, account
- Example
account
Catalog surface: workspace or account.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {
"account": "demo",
"allow_destructive": 1,
"batch": 1,
"batch_size": 1,
"execute_read_post": 1,
"q": "account",
"role": "user",
"surface": "account"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/ai/catalog?q=account&role=user&surface=account&account=demo' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {
"q": "account",
"role": "user",
"surface": "account",
"account": "demo"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
AI Assistant
GET/v1/accounts/{username}/ai/contextroot reseller userFetch SHM account AI workspace context
What this endpoint does
Fetch SHM account AI workspace context
Endpoint
GET /v1/accounts/{username}/ai/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/ai/conversationsroot reseller userList SHM account AI conversations
What this endpoint does
List SHM account AI conversations
Endpoint
GET /v1/accounts/{username}/ai/conversations
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ai/conversationsroot reseller userCreate a SHM account AI conversation
What this endpoint does
Create a SHM account AI conversation
Endpoint
POST /v1/accounts/{username}/ai/conversations
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/ai/conversations/{conversation_id}root reseller userDelete an empty SHM account AI draft conversation
What this endpoint does
Delete an empty SHM account AI draft conversation
Endpoint
DELETE /v1/accounts/{username}/ai/conversations/{conversation_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"conversation_id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/ai/conversations/{conversation_id}root reseller userLoad a SHM account AI conversation
What this endpoint does
Load a SHM account AI conversation
Endpoint
GET /v1/accounts/{username}/ai/conversations/{conversation_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"conversation_id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/ai/conversations/{conversation_id}root reseller userSave a SHM account AI conversation
What this endpoint does
Save a SHM account AI conversation
Endpoint
PATCH /v1/accounts/{username}/ai/conversations/{conversation_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16
Created at accepted by this endpoint while it performs: Save a SHM account AI conversation. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
modelOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
gpt-5.4
Model accepted by this endpoint while it performs: Save a SHM account AI conversation. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
providerOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
openai
Provider accepted by this endpoint while it performs: Save a SHM account AI conversation. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
titleOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Example content
Title accepted by this endpoint while it performs: Save a SHM account AI conversation. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
updated_atOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
2026-07-16
Updated at accepted by this endpoint while it performs: Save a SHM account AI conversation. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"conversation_id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"created_at": "2026-07-16",
"model": "gpt-5.4",
"provider": "openai",
"title": "Example content",
"updated_at": "2026-07-16"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"openai","model":"gpt-5.4","created_at":"2026-07-16","updated_at":"2026-07-16"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"conversation_id": 1
},
"query_parameters": {},
"json_body": {
"provider": "openai",
"model": "gpt-5.4",
"created_at": "2026-07-16",
"updated_at": "2026-07-16"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/ai/conversations/currentroot reseller userSet the active SHM account AI conversation
What this endpoint does
Set the active SHM account AI conversation
Endpoint
PATCH /v1/accounts/{username}/ai/conversations/current
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Conversation id accepted by this endpoint while it performs: Set the active SHM account AI conversation. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned conversation_id value.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"conversation_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/ai/enabledroot reseller userSet SHM account AI enabled state
What this endpoint does
Set SHM account AI enabled state
Endpoint
PATCH /v1/accounts/{username}/ai/enabled
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Enabled accepted by this endpoint while it performs: Set SHM account AI enabled state. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"enabled": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"enabled": 1
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/ai/keys/{provider}root reseller userClear a SHM account AI API key
What this endpoint does
Clear a SHM account AI API key
Endpoint
DELETE /v1/accounts/{username}/ai/keys/{provider}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Intentionally excluded from AI Mode. Provider credentials cannot be read, created, or deleted through chat.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"provider": "demo",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"provider": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/ai/keys/{provider}root reseller userReveal a SHM account AI API key for external use
What this endpoint does
Reveal a SHM account AI API key for external use
Endpoint
GET /v1/accounts/{username}/ai/keys/{provider}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Intentionally excluded from AI Mode. Provider credentials cannot be read, created, or deleted through chat.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"provider": "demo",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"provider": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ai/keys/{provider}root reseller userSave an encrypted SHM account AI API key
What this endpoint does
Save an encrypted SHM account AI API key
Endpoint
POST /v1/accounts/{username}/ai/keys/{provider}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Intentionally excluded from AI Mode. Provider credentials cannot be read, created, or deleted through chat.
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
Api key accepted by this endpoint while it performs: Save an encrypted SHM account AI API key. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"provider": "demo",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"api_key": "YOUR_API_KEY"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"provider": "demo"
},
"query_parameters": {},
"json_body": {
"api_key": "YOUR_API_KEY"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/ai/models/{provider}root reseller userSet the SHM account AI model override
What this endpoint does
Set the SHM account AI model override
Endpoint
PATCH /v1/accounts/{username}/ai/models/{provider}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
gpt-5.4
Model accepted by this endpoint while it performs: Set the SHM account AI model override. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"provider": "demo",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"model": "gpt-5.4"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"gpt-5.4"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"provider": "demo"
},
"query_parameters": {},
"json_body": {
"model": "gpt-5.4"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/ai/providerroot reseller userSet the SHM account AI provider
What this endpoint does
Set the SHM account AI provider
Endpoint
PATCH /v1/accounts/{username}/ai/provider
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
openai
Provider accepted by this endpoint while it performs: Set the SHM account AI provider. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"provider": "openai"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"openai"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"provider": "openai"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/ai/providers/{provider}/requestroot reseller userRun a native SHM account AI provider request
What this endpoint does
Run a native SHM account AI provider request
Endpoint
POST /v1/accounts/{username}/ai/providers/{provider}/request
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Api key accepted by this endpoint while it performs: Run a native SHM account AI provider request. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
payloadOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Payload accepted by this endpoint while it performs: Run a native SHM account AI provider request. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"provider": "demo",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"api_key": "YOUR_API_KEY",
"payload": {}
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":{}}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"provider": "demo"
},
"query_parameters": {},
"json_body": {
"api_key": "YOUR_API_KEY",
"payload": {}
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/ai/resetroot reseller userReset persisted SHM account AI provider state
What this endpoint does
Reset persisted SHM account AI provider state
Endpoint
POST /v1/accounts/{username}/ai/reset
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Conversation id accepted by this endpoint while it performs: Reset persisted SHM account AI provider state. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. 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
openai
Provider accepted by this endpoint while it performs: Reset persisted SHM account AI provider state. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"conversation_id": 1,
"provider": "openai"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"openai","conversation_id":1}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"provider": "openai",
"conversation_id": 1
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Antivirus
POST/v1/accounts/{username}/antivirus/actions/{action}root reseller userRun a guarded SHM account Malware Protection action. Automatic cleaning is disabled; quarantine, restore, and delete are explicit manual actions. `start_scan` accepts `scan_profile=daily|deep|paranoid` plus legacy `scan_mode=quick|deep`; daily uses managed YARA rules with ClamAV candidate confirmation, while deep/paranoid add complete ClamAV coverage and Maldet when enabled. Confirmation requires two independent signal lineages after duplicate upstream rule identities are collapsed. A path-based suppression requires an exact reviewed SHA-256 and fails open after any content change.
What this endpoint does
Run a guarded SHM account Malware Protection action. Automatic cleaning is disabled; quarantine, restore, and delete are explicit manual actions. `start_scan` accepts `scan_profile=daily|deep|paranoid` plus legacy `scan_mode=quick|deep`; daily uses managed YARA rules with ClamAV candidate confirmation, while deep/paranoid add complete ClamAV coverage and Maldet when enabled. Confirmation requires two independent signal lineages after duplicate upstream rule identities are collapsed. A path-based suppression requires an exact reviewed SHA-256 and fails open after any content change.
Operational guidance: Run one authorized account Malware Protection action. Paths are resolved inside the owned account roots. start_scan shares the isolated worker contract, but recovery metadata is restricted to root orchestration. scan_status may expose worker_launch_mode and recovery audit fields for an account-visible scan. A path-based suppression is audit-only and can apply only to an exact reviewed SHA-256; changed or injected content fails open to review/confirmation. Daily uses automatic YARA rules with ClamAV candidate confirmation; deep/paranoid add full ClamAV and Maldet coverage. Detection rows expose independent signal-lineage voting, and automatic cleaning remains disabled.
Endpoint
POST /v1/accounts/{username}/antivirus/actions/{action}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (14)
actionRequired- Send in
- URL path
- Type
enum- Accepted values
- start_scan, stop_scan, scan_status, detections_dt, ignore_add, ignore_remove, scan_log, view_file, view_quarantine, quarantine_file, delete_file, clean_file, quarantine_list, restore_quarantine, delete_quarantine
- Example
start_scan
Action path parameter. Allowed values: start_scan, stop_scan, scan_status, detections_dt, 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.
classification_filterOptional- Send in
- JSON body
- Type
enum- Accepted values
- actionable, confirmed, review, suppressed, all
- Example
actionable
Optional for `detections_dt`: `actionable`, `confirmed`, `review`, `suppressed`, or `all`. `actionable` excludes suppressed audit-only findings. Finding status filter. actionable excludes suppressed audit-only findings.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: optional for detections dt.
drawOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
1
DataTables draw counter.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: optional for detections dt.
fileConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
error.log
Account-relative file path used by `view_file`, `ignore_remove`, `quarantine_file`, or `delete_file`. Account-relative path or an absolute path that resolves within an authorized account root.
Validation and use: Conditional Send this parameter as a JSON body property. Use the relevant list/read endpoint for this resource and copy the returned file name. Contract requirement: required for one view/ignore-remove/quarantine/delete action.
filesOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
["public_html/cache/generated.php"]
Array or JSON list of account-relative file paths for `ignore_add`. One or more authorized account file paths.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: optional bulk alias for ignore add/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: Conditional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: required for one quarantine view/restore/delete.
idsOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
1,2
One or more account quarantine entry identifiers.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: 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: Optional Send this parameter as a JSON body property. Minimum 1. Maximum 200. Contract requirement: optional for detections dt.
scan_idConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Scan identifier used by `stop_scan`, `scan_status`, `detections_dt`, or `scan_log`. Finding rows include `signal_lineage`, `rule_identity`, `lineage_votes`, `lineage_vote_count`, `independent_lineage_groups`, `lineage_deduplicated`, `rule_tier`, classification, confidence, and suppression audit fields. `lineage_vote_count` is the post-deduplication quorum count; copies of one upstream rule UUID/name cannot create a second vote. A matched path-based suppression exposes `suppression_scope=exact_sha256`. `scan_status` may return `result`, `scan_profile`, `confidence_summary`, `has_warnings`, `warning_count`, `engine_failures`, `engine_timeouts`, `elapsed_seconds`, `timeout_remaining_seconds`, `progress_note`, `interrupted`, `interrupted_reason`, `worker_launch_mode`, `worker_unit`, and root-managed recovery audit fields when applicable. Account-visible scan identifier.
Validation and use: Conditional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned scan_id value. Contract requirement: required for stop scan, scan status, detections dt, and scan log.
scan_modeOptional- Send in
- JSON body
- Type
enum- Accepted values
- quick, deep
- Example
deep
Legacy compatibility for `start_scan`: `quick` maps to profile `daily`; `deep` maps to profile `deep` unless `scan_profile` is provided. Legacy compatibility alias for scan_profile.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: optional for start scan.
scan_profileOptional- Send in
- JSON body
- Type
enum- Accepted values
- daily, deep, paranoid
- Example
deep
Optional for `start_scan`: `daily` is the fast profile with YARA plus optional ClamAV candidate confirmation; `deep` adds enabled Maldet and quorum scoring; `paranoid` keeps aggressive/manual-review semantics. Requested account scan profile; deep is the UI default.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: optional for start scan.
searchOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{"value":""}
DataTables search object.
Validation and use: Optional Send this parameter as a JSON body property. Contract requirement: optional for detections dt.
startOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
0
DataTables result offset.
Validation and use: Optional Send this parameter as a JSON body property. Minimum 0. Contract requirement: optional for detections dt.
Supported actions and option sets
action values (14)
start_scanstop_scanscan_statusdetections_dtignore_addignore_removescan_logview_fileview_quarantinequarantine_filedelete_filequarantine_listrestore_quarantinedelete_quarantineComplete request template
This reference template contains all 14 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"action": "start_scan",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"classification_filter": "actionable",
"draw": 1,
"file": "error.log",
"files": [
"public_html/cache/generated.php"
],
"id": 1,
"ids": "1,2",
"length": 50,
"scan_id": 1,
"scan_mode": "deep",
"scan_profile": "deep",
"search": {
"value": ""
},
"start": 0
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/antivirus/actions/start_scan' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"scan_profile":"deep","scan_mode":"deep"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Start deep account scan
{
"path_parameters": {
"username": "demo",
"action": "start_scan"
},
"query_parameters": {},
"json_body": {
"scan_profile": "deep",
"scan_mode": "deep"
}
}List actionable account findings
{
"path_parameters": {
"username": "demo",
"action": "detections_dt"
},
"query_parameters": {},
"json_body": {
"scan_id": 1,
"classification_filter": "actionable",
"draw": 1,
"start": 0,
"length": 50,
"search": {
"value": ""
}
}
}Requires a value returned by another endpoint before QA can execute this request.
Add exclusions
{
"path_parameters": {
"username": "demo",
"action": "ignore_add"
},
"query_parameters": {},
"json_body": {
"files": [
"public_html/cache/generated.php"
]
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/antivirus/contextroot reseller userFetch the SHM account Malware Protection workspace. Reports separate confirmed, needs-review, and suppressed audit findings and expose the root-managed automatic rule profile, generation, and QA state.
What this endpoint does
Fetch the SHM account Malware Protection workspace. Reports separate confirmed, needs-review, and suppressed audit findings and expose the root-managed automatic rule profile, generation, and QA state.
Operational guidance: Read the account-scoped Malware Protection workspace. Authorization is enforced against the account owner/reseller. The response includes protection_enabled plus the automatic rule profile, generation, QA status, rules_health_status, and aggregate fallback/skipped source counts. Source selection and source-level technical details remain root-managed. Use reports_only for the progressive report selector and quarantine_only for a lightweight quarantine refresh.
Endpoint
GET /v1/accounts/{username}/antivirus/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Apps
POST/v1/accounts/{username}/apps/installroot reseller userInstall a supported web application (one-click).
What this endpoint does
Install a supported web application (one-click).
Operational guidance: Start a background app installation task. Target directory must be empty. Poll GET /v1/apps/install/{task} to read progress.
Endpoint
POST /v1/accounts/{username}/apps/install
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (13)
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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.
Validation and use: Required Send this parameter as a JSON body property.
admin_passRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
S3cure!Pass#123
Administrator password. Administrator password (minimum 12 characters). Administrator password (min 12 characters).
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
appRequired- Send in
- JSON body
- Type
enum- Accepted values
- codeigniter, laravel, symfony, drupal, joomla, phpbb, opencart, prestashop, shopware, mediawiki, moodle, nextcloud
- Example
codeigniter
App request field. Allowed values: codeigniter, laravel, symfony, drupal, joomla, phpbb, opencart, prestashop, shopware, mediawiki, moodle, nextcloud. Application slug to install. Application slug. Allowed values: codeigniter, drupal, joomla, laravel, mediawiki, moodle, nextcloud, opencart, phpbb, prestashop, shopware, symfony.
Validation and use: Required Send this parameter as a JSON body property.
domainRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
example.com
Domain name. Target domain or subdomain. Domain to install into (must belong to the account).
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
admin_firstnameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Admin
Magento only: admin firstname (advanced).
Validation and use: Optional Send this parameter as a JSON body property.
admin_lastnameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
User
Magento only: admin lastname (advanced).
Validation and use: Optional Send this parameter as a JSON body property.
backend_frontnameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
admin
Magento only: backend path segment (advanced).
Validation and use: Optional Send this parameter as a JSON body property.
data_dirOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
/home/demo/nextcloud-data
Application data directory. 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: Optional Send this parameter as a JSON body property.
folderOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
apps/wordpress
Folder path. Optional subfolder under the domain document root. Example: "apps/wordpress". Must not contain "..".
Validation and use: Optional Send this parameter as a JSON body property.
site_shortnameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Moodle
Application short name. Moodle only: shortname (max 64 chars).
Validation and use: Optional Send this parameter as a JSON body property.
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 reference template contains all 13 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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",
"backend_frontname": "admin",
"data_dir": "/home/demo/nextcloud-data",
"folder": "apps/wordpress",
"site_shortname": "Moodle"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/apps/install/{task}root reseller userRead Apps Installer task status and progress.
What this endpoint does
Read Apps Installer task status and progress.
Operational guidance: Read task status and progress log lines for a running/completed install.
Endpoint
GET /v1/accounts/{username}/apps/install/{task}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"task": "task-id-from-previous-response",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/apps/installedroot reseller userList installed applications tracked by Apps Manager.
What this endpoint does
List installed applications tracked by Apps Manager.
Endpoint
GET /v1/accounts/{username}/apps/installed
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
DELETE/v1/accounts/{username}/apps/installed/{id}root reseller userRemove an installed app and optionally related database/user.
What this endpoint does
Remove an installed app and optionally related database/user.
Operational guidance: Remove an installed application record and delete its files. Path {id} is the install_id from the registry. Optionally remove its database and database user.
Endpoint
DELETE /v1/accounts/{username}/apps/installed/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 provisioned database and DB user (if present). Default: 0.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"remove_database": 0
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Auth
POST/v1/auth/whmcs-login-ticketroot reseller userCreate a short-lived one-time login ticket for a WHMCS service account. The request must be authenticated with an API key that is authorized for the target account, and SHM validates the real account username and password before issuing the ticket. The browser consumes the returned ticket only through /login.php; no root or reseller bypass is performed.
What this endpoint does
Create a short-lived one-time login ticket for a WHMCS service account. The request must be authenticated with an API key that is authorized for the target account, and SHM validates the real account username and password before issuing the ticket. The browser consumes the returned ticket only through /login.php; no root or reseller bypass is performed.
Endpoint
POST /v1/auth/whmcs-login-ticket
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI for an authorized root or reseller role. It is not part of the account-chat surface.
Parameters (6)
account_passwordRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
The actual SHM account password saved on the WHMCS service. This is validated by the normal SHM authentication service and is never returned.
Validation and use: Required Send this parameter as a JSON body property.
account_usernameRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
demo
The SHM account username that owns the hosting service. Must match account_user for scoped reseller/user API keys.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
account_userOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
demo
Optional alias for account_username used by account-scoped API authorization. Send the same value as account_username for reseller/user keys.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"account_password": "STRONG_PASSWORD",
"account_username": "demo",
"client_ip": "203.0.113.10",
"account_user": "demo",
"redirect": "/",
"user_agent": "Mozilla/5.0"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"/"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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": "/"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Backup
GET/v1/accounts/{username}/backup/local-contextroot reseller userRead SHM account local backup context.
What this endpoint does
Read SHM account local backup context.
Endpoint
GET /v1/accounts/{username}/backup/local-context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
DELETE/v1/accounts/{username}/backup/local/backuproot reseller userDelete a SHM account local backup archive.
What this endpoint does
Delete a SHM account local backup archive.
Endpoint
DELETE /v1/accounts/{username}/backup/local/backup
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
nightly
Backup tag returned by the local backup list.
Validation and use: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"tag": "nightly"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"nightly"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"tag": "nightly"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/backup/local/backupsroot reseller userList SHM account local backups.
What this endpoint does
List SHM account local backups.
Endpoint
GET /v1/accounts/{username}/backup/local/backups
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/downloadroot reseller userDownload a SHM account local backup archive.
What this endpoint does
Download a SHM account local backup archive.
Endpoint
GET /v1/accounts/{username}/backup/local/download
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
nightly
Backup tag returned by the local backup list.
Validation and use: Required Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"tag": "nightly"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/download?tag=nightly' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"tag": "nightly"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/files/contentroot reseller userRead SHM account local backup file content
What this endpoint does
Read SHM account local backup file content
Endpoint
GET /v1/accounts/{username}/backup/local/files/content
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16_02-00-00
Backup point accepted by this endpoint while it performs: Read SHM account local backup file content. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the 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 the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"file": "error.log",
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/content?path=%2Fhome%2Fdemo%2Fpublic_html&backup_point=2026-07-16_02-00-00&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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html",
"backup_point": "2026-07-16_02-00-00",
"file": "error.log"
},
"json_body": {}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/files/itemsroot reseller userList SHM account local backup files and folders
What this endpoint does
List SHM account local backup files and folders
Endpoint
GET /v1/accounts/{username}/backup/local/files/items
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16_02-00-00
Backup point accepted by this endpoint while it performs: List SHM account local backup files and folders. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/files/items?path=%2Fhome%2Fdemo%2Fpublic_html&backup_point=2026-07-16_02-00-00' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html",
"backup_point": "2026-07-16_02-00-00"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/files/pointsroot reseller userList SHM account local file backup points
What this endpoint does
List SHM account local file backup points
Endpoint
GET /v1/accounts/{username}/backup/local/files/points
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/backup/local/files/restore-stagingroot reseller userRestore one file or folder from an account local backup point into a randomized isolated path below `/restore/ai-*`. The live path is never replaced by this endpoint. The worker uses the current authorized SHM account home, rejects source/destination symlinks, runs a safe account-owned copy, and records tenant-bound job ownership.
What this endpoint does
Restore one file or folder from an account local backup point into a randomized isolated path below `/restore/ai-*`. The live path is never replaced by this endpoint. The worker uses the current authorized SHM account home, rejects source/destination symlinks, runs a safe account-owned copy, and records tenant-bound job ownership.
Operational guidance: Restore one file or folder from an authorized local backup point into a randomized isolated /restore/ai-* staging path. This endpoint never replaces the live item. After completion, inspect the staged result, preserve the live item separately, copy only the approved data with existing File Manager APIs, and verify the final path before claiming restoration.
Endpoint
POST /v1/accounts/{username}/backup/local/files/restore-staging
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "exampleacct"
},
"query_parameters": {},
"json_body": {
"backup_point": "2026-07-13_02-00-00",
"path": "public_html/assets"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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"
}
}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"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}root reseller userRead the status of one tenant-bound account staging restore job. Foreign account jobs return not found.
What this endpoint does
Read the status of one tenant-bound account staging restore job. Foreign account jobs return not found.
Operational guidance: Read one tenant-bound staging restore status. Poll until completed or failed before inspecting or copying the staged data. A hash owned by another account is returned as not found.
Endpoint
GET /v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"restore_hash": "0123456789abcdef0123456789abcdef",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}/abortroot reseller userAbort one running tenant-bound staging restore job. The PID must still identify the exact native worker and restore hash before its isolated process group is signalled.
What this endpoint does
Abort one running tenant-bound staging restore job. The PID must still identify the exact native worker and restore hash before its isolated process group is signalled.
Operational guidance: Abort one running tenant-bound staging restore after explicit confirmation. SHM signals a process group only when the PID still belongs to the exact native restore worker and exact restore hash; stale or foreign jobs are not signalled.
Endpoint
POST /v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}/abort
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"restore_hash": "0123456789abcdef0123456789abcdef",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}/logroot reseller userRead the bounded tenant-authorized log for one account staging restore job.
What this endpoint does
Read the bounded tenant-authorized log for one account staging restore job.
Operational guidance: Read the bounded log of one tenant-authorized staging restore. Use it to explain a failed or incomplete job without exposing another tenant.
Endpoint
GET /v1/accounts/{username}/backup/local/files/restore-staging/{restore_hash}/log
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"restore_hash": "0123456789abcdef0123456789abcdef",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/logroot reseller userRead SHM account local backup log content.
What this endpoint does
Read SHM account local backup log content.
Endpoint
GET /v1/accounts/{username}/backup/local/log
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
nightly
Backup tag returned by the local backup list or start action.
Validation and use: Required Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"tag": "nightly"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/log?tag=nightly' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"tag": "nightly"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/mail/contentroot reseller userRead SHM account local backup mail content
What this endpoint does
Read SHM account local backup mail content
Endpoint
GET /v1/accounts/{username}/backup/local/mail/content
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16_02-00-00
Backup point accepted by this endpoint while it performs: Read SHM account local backup mail content. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the 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
MailPath accepted by this endpoint while it performs: Read SHM account local backup mail content. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"file": "error.log",
"mailPath": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/mail/content?backup_point=2026-07-16_02-00-00&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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/mail/itemsroot reseller userList SHM account local mail backup files and folders
What this endpoint does
List SHM account local mail backup files and folders
Endpoint
GET /v1/accounts/{username}/backup/local/mail/items
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16_02-00-00
Backup point accepted by this endpoint while it performs: List SHM account local mail backup files and folders. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
mailPathOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
/home/demo/public_html
MailPath accepted by this endpoint while it performs: List SHM account local mail backup files and folders. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"mailPath": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/mail/items?backup_point=2026-07-16_02-00-00&mailPath=%2Fhome%2Fdemo%2Fpublic_html' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"mailPath": "/home/demo/public_html"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/mail/pointsroot reseller userList SHM account local mail backup points
What this endpoint does
List SHM account local mail backup points
Endpoint
GET /v1/accounts/{username}/backup/local/mail/points
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/mysql/itemsroot reseller userList SHM account local MySQL backup databases or tables
What this endpoint does
List SHM account local MySQL backup databases or tables
Endpoint
GET /v1/accounts/{username}/backup/local/mysql/items
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16_02-00-00
Backup point accepted by this endpoint while it performs: List SHM account local MySQL backup databases or tables. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
dbNameOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
appdb
DbName accepted by this endpoint while it performs: List SHM account local MySQL backup databases or tables. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"dbName": "appdb"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/mysql/items?backup_point=2026-07-16_02-00-00&dbName=appdb' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"backup_point": "2026-07-16_02-00-00",
"dbName": "appdb"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/local/mysql/pointsroot reseller userList SHM account local MySQL backup points
What this endpoint does
List SHM account local MySQL backup points
Endpoint
GET /v1/accounts/{username}/backup/local/mysql/points
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/backup/local/startroot reseller userStart a SHM account local backup.
What this endpoint does
Start a SHM account local backup.
Endpoint
POST /v1/accounts/{username}/backup/local/start
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
nightly
Optional custom backup tag. When omitted, SHM generates one automatically.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"tag": "nightly"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"nightly"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"tag": "nightly"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/backup/local/statusroot reseller userRead SHM account local backup status.
What this endpoint does
Read SHM account local backup status.
Endpoint
GET /v1/accounts/{username}/backup/local/status
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
nightly
Optional backup tag to poll a specific local backup run.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"tag": "nightly"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/local/status?tag=nightly' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"tag": "nightly"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/remote-contextroot reseller userRead SHM account remote backup context.
What this endpoint does
Read SHM account remote backup context.
Endpoint
GET /v1/accounts/{username}/backup/remote-context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/backup/remote/files/abortroot reseller userAbort SHM account remote file restore
What this endpoint does
Abort SHM account remote file restore
Endpoint
POST /v1/accounts/{username}/backup/remote/files/abort
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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_ID_FROM_START_RESPONSE
Session accepted by this endpoint while it performs: Abort SHM account remote file restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"session": "SESSION_ID_FROM_START_RESPONSE"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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_ID_FROM_START_RESPONSE"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"session": "SESSION_ID_FROM_START_RESPONSE"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/backup/remote/files/contentroot reseller userRead SHM account remote backup file content.
What this endpoint does
Read SHM account remote backup file content.
Endpoint
GET /v1/accounts/{username}/backup/remote/files/content
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16
Remote backup point date or identifier.
Validation and use: Required Send this parameter in the 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 the 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 the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"date": "2026-07-16",
"file": "error.log",
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/remote/files/content?date=2026-07-16&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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"date": "2026-07-16",
"file": "error.log"
},
"json_body": {}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/remote/files/itemsroot reseller userList SHM account remote backup files and folders.
What this endpoint does
List SHM account remote backup files and folders.
Endpoint
GET /v1/accounts/{username}/backup/remote/files/items
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16
Remote backup point date or identifier returned by `/backup/remote/files/points`.
Validation and use: Required Send this parameter in the 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 the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"date": "2026-07-16",
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/remote/files/items?date=2026-07-16' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"date": "2026-07-16"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/remote/files/pointsroot reseller userList SHM account remote file backup points.
What this endpoint does
List SHM account remote file backup points.
Endpoint
GET /v1/accounts/{username}/backup/remote/files/points
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/backup/remote/files/restoreroot reseller userStart SHM account remote file restore
What this endpoint does
Start SHM account remote file restore
Endpoint
POST /v1/accounts/{username}/backup/remote/files/restore
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16
Date accepted by this endpoint while it performs: Start SHM account remote file restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
locationOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
remote-main
Location accepted by this endpoint while it performs: Start SHM account remote file restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"date": "2026-07-16",
"location": "remote-main",
"path": "/home/demo/public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"2026-07-16","location":"remote-main"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"date": "2026-07-16",
"location": "remote-main"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/backup/remote/mysql/abortroot reseller userAbort SHM account remote MySQL restore
What this endpoint does
Abort SHM account remote MySQL restore
Endpoint
POST /v1/accounts/{username}/backup/remote/mysql/abort
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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_ID_FROM_START_RESPONSE
Session accepted by this endpoint while it performs: Abort SHM account remote MySQL restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"session": "SESSION_ID_FROM_START_RESPONSE"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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_ID_FROM_START_RESPONSE"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"session": "SESSION_ID_FROM_START_RESPONSE"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/backup/remote/mysql/itemsroot reseller userList SHM account remote MySQL backup databases or tables.
What this endpoint does
List SHM account remote MySQL backup databases or tables.
Endpoint
GET /v1/accounts/{username}/backup/remote/mysql/items
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
2026-07-16
Remote MySQL backup point date or identifier.
Validation and use: Required Send this parameter in the query string.
dbNameOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
appdb
Optional database name filter to list tables inside one backed-up database.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"date": "2026-07-16",
"dbName": "appdb"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/backup/remote/mysql/items?date=2026-07-16' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"date": "2026-07-16"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/backup/remote/mysql/pointsroot reseller userList SHM account remote MySQL backup points.
What this endpoint does
List SHM account remote MySQL backup points.
Endpoint
GET /v1/accounts/{username}/backup/remote/mysql/points
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/backup/remote/mysql/restoreroot reseller userStart SHM account remote MySQL restore
What this endpoint does
Start SHM account remote MySQL restore
Endpoint
POST /v1/accounts/{username}/backup/remote/mysql/restore
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
appdb
Database accepted by this endpoint while it performs: Start SHM account remote MySQL restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
dateOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
2026-07-16
Date accepted by this endpoint while it performs: Start SHM account remote MySQL restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
locationOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
remote-main
Location accepted by this endpoint while it performs: Start SHM account remote MySQL restore. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"database": "appdb",
"date": "2026-07-16",
"location": "remote-main"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"2026-07-16","location":"remote-main","database":"appdb"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"date": "2026-07-16",
"location": "remote-main",
"database": "appdb"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Cloudflare
DELETE/v1/accounts/{username}/cloudflare/connectroot reseller userClear the saved Cloudflare API token for the account.
What this endpoint does
Clear the saved Cloudflare API token for the account.
Endpoint
DELETE /v1/accounts/{username}/cloudflare/connect
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/cloudflare/connectroot reseller userSave a Cloudflare API token for the account and optionally enable automatic subdomain sync.
What this endpoint does
Save a Cloudflare API token for the account and optionally enable automatic subdomain sync.
Endpoint
POST /v1/accounts/{username}/cloudflare/connect
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"api_token": "ONE_TIME_TOKEN",
"auto_sync_subdomains": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"api_token": "ONE_TIME_TOKEN"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/cloudflare/contextroot reseller userFetch SHM account Cloudflare workspace context.
What this endpoint does
Fetch SHM account Cloudflare workspace context.
Endpoint
GET /v1/accounts/{username}/cloudflare/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/cloudflare/domains/syncroot reseller userSync the local DNS zone for a selected domain to Cloudflare without removing unrelated Cloudflare records.
What this endpoint does
Sync the local DNS zone for a selected domain to Cloudflare without removing unrelated Cloudflare records.
Endpoint
POST /v1/accounts/{username}/cloudflare/domains/sync
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain": "example.com"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain": "example.com"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/cloudflare/settingsroot reseller userUpdate SHM account Cloudflare settings.
What this endpoint does
Update SHM account Cloudflare settings.
Endpoint
PATCH /v1/accounts/{username}/cloudflare/settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"auto_sync_subdomains": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"auto_sync_subdomains": 1
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/cloudflare/subdomains/syncroot reseller userSync one account subdomain DNS record to Cloudflare.
What this endpoint does
Sync one account subdomain DNS record to Cloudflare.
Endpoint
POST /v1/accounts/{username}/cloudflare/subdomains/sync
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"ip": "203.0.113.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain": "example.com"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/cloudflare/zones/{zone_id}/recordsroot reseller userList Cloudflare DNS records for a matched zone connected to the account.
What this endpoint does
List Cloudflare DNS records for a matched zone connected to the account.
Operational guidance: List Cloudflare DNS records using the account personal API token.
Endpoint
GET /v1/accounts/{username}/cloudflare/zones/{zone_id}/records
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/cloudflare/zones/{zone_id}/recordsroot reseller userCreate a Cloudflare DNS record in a matched zone.
What this endpoint does
Create a Cloudflare DNS record in a matched zone.
Operational guidance: Create a Cloudflare DNS record using the account personal API token.
Endpoint
POST /v1/accounts/{username}/cloudflare/zones/{zone_id}/records
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Example content
Record value/content.
Validation and use: Required Send this parameter as a JSON body property.
nameRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Record name inside the selected zone. Record owner name, such as @, www, or api.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
commentOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Managed by automation
Optional Cloudflare record comment.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 9 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {
"content": "Example content",
"name": "Primary",
"type": "A",
"comment": "Managed by automation",
"priority": "priority",
"proxied": 1,
"ttl": 3600
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary","content":"Example content"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {
"type": "A",
"name": "Primary",
"content": "Example content"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/cloudflare/zones/{zone_id}/records/{record_id}root reseller userDelete a Cloudflare DNS record from a matched zone.
What this endpoint does
Delete a Cloudflare DNS record from a matched zone.
Operational guidance: Delete a Cloudflare DNS record using the account personal API token.
Endpoint
DELETE /v1/accounts/{username}/cloudflare/zones/{zone_id}/records/{record_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"record_id": 1,
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/cloudflare/zones/{zone_id}/records/{record_id}root reseller userUpdate a Cloudflare DNS record in a matched zone.
What this endpoint does
Update a Cloudflare DNS record in a matched zone.
Operational guidance: Update a Cloudflare DNS record using the account personal API token.
Endpoint
PATCH /v1/accounts/{username}/cloudflare/zones/{zone_id}/records/{record_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Managed by automation
Updated optional record comment.
Validation and use: Optional Send this parameter as a JSON body property.
contentOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Example content
Record value/content.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Updated record name. Record owner name, such as @, www, or api.
Validation and use: Optional Send this parameter as a JSON body property.
priorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For MX records: priority.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
ttlOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
3600
TTL in seconds.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 10 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"record_id": 1,
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {
"comment": "Managed by automation",
"content": "Example content",
"name": "Primary",
"priority": 1,
"proxied": 1,
"ttl": 3600,
"type": "A"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary","content":"Example content","ttl":3600}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"zone_id": 1,
"record_id": 1
},
"query_parameters": {},
"json_body": {
"type": "A",
"name": "Primary",
"content": "Example content",
"ttl": 3600
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Cloudflare DNS
POST/v1/accounts/{username}/cloudflare/zones/{zone_id}/cache/purgeroot reseller userPurge SHM account Cloudflare zone cache
What this endpoint does
Purge SHM account Cloudflare zone cache
Operational guidance: Empty body defaults to purge_everything=true.
Endpoint
POST /v1/accounts/{username}/cloudflare/zones/{zone_id}/cache/purge
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
[]
Optional Cloudflare files purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
hostsOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
host.example.com
Optional Cloudflare hosts purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
prefixesOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
[]
Optional Cloudflare prefixes purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
tagsOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
[]
Optional Cloudflare tags purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {
"files": [],
"hosts": "host.example.com",
"prefixes": [],
"purge_everything": 1,
"tags": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":[],"tags":[],"hosts":"host.example.com"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {
"purge_everything": 1,
"files": [],
"tags": [],
"hosts": "host.example.com"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/cloudflare/zones/{zone_id}/settingsroot reseller userList SHM account Cloudflare zone settings
What this endpoint does
List SHM account Cloudflare zone settings
Operational guidance: Read Cloudflare zone settings using the account personal API token.
Endpoint
GET /v1/accounts/{username}/cloudflare/zones/{zone_id}/settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/cloudflare/zones/{zone_id}/settings/{setting}root reseller userUpdate SHM account Cloudflare zone setting
What this endpoint does
Update SHM account Cloudflare zone setting
Operational guidance: Supported settings: development_mode, security_level, cache_level, always_online, brotli.
Endpoint
PATCH /v1/accounts/{username}/cloudflare/zones/{zone_id}/settings/{setting}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
updated-content
Cloudflare setting value.
Validation and use: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"setting": "development_mode",
"username": "demo",
"zone_id": 1
},
"query_parameters": {},
"json_body": {
"value": "updated-content"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"updated-content"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"zone_id": 1,
"setting": "development_mode"
},
"query_parameters": {},
"json_body": {
"value": "updated-content"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Cronjobs
GET/v1/accounts/{username}/cronjobsroot reseller userList cron jobs. With paging parameters, returns a bounded DataTables response; without them, preserves the legacy full `cronjobs` response.
What this endpoint does
List cron jobs. With paging parameters, returns a bounded DataTables response; without them, preserves the legacy full `cronjobs` response.
Endpoint
GET /v1/accounts/{username}/cronjobs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the query string.
lengthOptional- Send in
- Query string
- Type
int|string- Accepted values
- Any value matching int|string
- Example
25
Page size. Rows per page, bounded to 500. Defaults to 25 in paged mode.
Validation and use: Optional Send this parameter in the query string.
order_dirOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
asc
Sort direction. Logical crontab order: `asc` or `desc`.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"draw": 1,
"length": 25,
"order_dir": "asc",
"search": "account",
"search_value": "account",
"start": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/cronjobs?search=account&search_value=account&order_dir=asc&draw=1' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"search": "account",
"search_value": "account",
"order_dir": "asc",
"draw": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/cronjobsroot reseller userCreate cron job.
What this endpoint does
Create cron job.
Operational guidance: Creates a cron job. Time is provided as 5 separate fields (minute/hour/day/month/weekday).
Endpoint
POST /v1/accounts/{username}/cronjobs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
dayOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
*
Cron day-of-month field. Default: "*".
Validation and use: Optional Send this parameter as a JSON body property.
hourOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
*
Cron hour field. Default: "*".
Validation and use: Optional Send this parameter as a JSON body property.
minuteOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
*/10
Cron minute field. Default: "*".
Validation and use: Optional Send this parameter as a JSON body property.
monthOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
*
Cron month field. Default: "*".
Validation and use: Optional Send this parameter as a JSON body property.
weekdayOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
*
Cron weekday field. Default: "*".
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/cronjobs/{id}root reseller userDelete cron job.
What this endpoint does
Delete cron job.
Endpoint
DELETE /v1/accounts/{username}/cronjobs/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/cronjobs/{id}root reseller userEdit cron job.
What this endpoint does
Edit cron job.
Operational guidance: Cron edit is replace-style: provide both "time" and "command" for the target line id.
Endpoint
PATCH /v1/accounts/{username}/cronjobs/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
php artisan schedule:run
Command or shell command to execute. Command executed by cron.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"command": "php artisan schedule:run",
"time": "*/10 * * * *"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"php artisan schedule:run"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"id": 1
},
"query_parameters": {},
"json_body": {
"time": "*/10 * * * *",
"command": "php artisan schedule:run"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/cronjobs/mailtoroot reseller userGet cron MAILTO recipient.
What this endpoint does
Get cron MAILTO recipient.
Endpoint
GET /v1/accounts/{username}/cronjobs/mailto
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/cronjobs/mailtoroot reseller userSet cron MAILTO recipient.
What this endpoint does
Set cron MAILTO recipient.
Operational guidance: Sets cron MAILTO recipient for the account crontab.
Endpoint
PATCH /v1/accounts/{username}/cronjobs/mailto
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"email": "admin@example.com"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Set MAILTO
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"email": "admin@example.com"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Database Users
GET/v1/accounts/{username}/database-usersroot reseller userList database users.
What this endpoint does
List database users.
Endpoint
GET /v1/accounts/{username}/database-users
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/database-usersroot reseller userCreate database user.
What this endpoint does
Create database user.
Operational guidance: Creates a database user and grants privileges for selected databases.
Endpoint
POST /v1/accounts/{username}/database-users
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
hosts_arrayOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
["localhost"]
Host list. MySQL Host entries. Default: ["localhost"]. Allowed formats include localhost, IPv4, IPv6, FQDN, and patterns using % / _.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"dbuser_databases": [
"demo_db"
],
"dbuser_name": "letters",
"hashed_password": "STRONG_PASSWORD",
"hosts_array": [
"localhost"
],
"migration": 1,
"privileges": "ALL"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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","hosts_array":["localhost"]}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create DB user with ALL privileges on one DB
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"dbuser_name": "letters",
"dbuser_databases": [
"demo_db"
],
"privileges": "ALL",
"hosts_array": [
"localhost"
]
}
}Requires a documented runtime value 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": [
"127.0.0.1"
]
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/database-users/{id}root reseller userDelete database user.
What this endpoint does
Delete database user.
Endpoint
DELETE /v1/accounts/{username}/database-users/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/database-users/{id}root reseller userEdit database user hosts/permissions/password.
What this endpoint does
Edit database user hosts/permissions/password.
Operational guidance: Edits a database user with true PATCH semantics. Omitted permissions and hosts preserve their current values. A supplied permissions or hosts list replaces that field and must not be empty. A password-only request rotates the password without rebuilding grants or adding/removing host identities.
Endpoint
PATCH /v1/accounts/{username}/database-users/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
[]
Database permission list.
Validation and use: Optional Send this parameter as a JSON body property.
dbuserpasswordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Database user password.
Validation and use: Optional Send this parameter as a JSON body property.
hostsOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
["localhost"]
Host list. Replace-style MySQL host allow-list. Omit to preserve existing host identities; an explicit empty list is rejected. Allowed formats include localhost, IPv4, IPv6, FQDN, and patterns using % / _.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"db_permissions": [],
"dbuserpassword": "STRONG_PASSWORD",
"hosts": [
"localhost"
],
"password": "STRONG_PASSWORD",
"permissions": [
"SELECT"
]
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Rotate password only
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"password": "STRONG_PASSWORD"
}
}Requires a documented runtime value before QA can execute this request.
Restrict to localhost and read-only
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"permissions": [
"SELECT"
],
"hosts": [
"localhost"
]
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Databases
GET/v1/accounts/{username}/databasesroot reseller userList databases.
What this endpoint does
List databases.
Endpoint
GET /v1/accounts/{username}/databases
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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-scoped endpoint. Canonical endpoint: GET /v1/accounts/{username}/databases.
Validation and use: Required Send this parameter in the query string.
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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"account_user": "demo",
"include_sizes": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/databasesroot reseller userCreate database.
What this endpoint does
Create database.
Operational guidance: Creates a MySQL/MariaDB database and stores it in the account YAML. Name validation is enforced.
Endpoint
POST /v1/accounts/{username}/databases
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Database name (no prefix). Allowed: letters, numbers, underscore. Max 64 chars. Example: "demo_db".
Validation and use: Required Send this parameter as a JSON body property.
databasenameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
appdb
Databasename accepted by this endpoint while it performs: Create database. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
db_usersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Database user list.
Validation and use: Optional Send this parameter as a JSON body property.
migrationOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Migration accepted by this endpoint while it performs: Create database. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
newdbuserOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Newdbuser accepted by this endpoint while it performs: Create database. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
selectdbusersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Selected database users.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"database_name": "letters",
"databasename": "appdb",
"db_users": [],
"migration": 1,
"newdbuser": 1,
"selectdbusers": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create database
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"database_name": "letters"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/databases/{id}root reseller userDelete database.
What this endpoint does
Delete database.
Endpoint
DELETE /v1/accounts/{username}/databases/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/databases/{id}root reseller userEdit database user assignments.
What this endpoint does
Edit database user assignments.
Operational guidance: Edits database user assignments for the database. Use an empty list to remove all users.
Endpoint
PATCH /v1/accounts/{username}/databases/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
db_usersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Database user list.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"selectdbusers": [
"demo_dbuser"
],
"db_users": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
Remove all DB user assignments
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"selectdbusers": [
"demo_dbuser"
]
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/databases/ai-accessroot reseller userGuarded AI database endpoint. Root may access any account, a reseller only owned accounts, and an end user only the current account. List owned databases/tables, inspect redacted table data, or execute one bounded allowlisted SQL statement with privileges limited to databases owned by that account.
What this endpoint does
Guarded AI database endpoint. Root may access any account, a reseller only owned accounts, and an end user only the current account. List owned databases/tables, inspect redacted table data, or execute one bounded allowlisted SQL statement with privileges limited to databases owned by that account.
Operational guidance: Inspect or work with MySQL data only inside databases owned by the authorized account. Root can target any account, a reseller only accounts it owns, and an end user only its own account. Prefer list_databases, list_tables, describe_table, and read_rows for diagnosis. read_rows and execute_sql redact secret-like columns. execute_sql accepts exactly one bounded allowlisted statement; administrative SQL, users/grants, server variables, file access, delay/lock functions, system schemas, and multiple statements are rejected. Mutating SQL is destructive from the AI perspective and requires explicit user confirmation before the tool is retried.
Endpoint
POST /v1/accounts/{username}/databases/ai-access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
schemaOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
appdb
Compatibility alias for `database`. Do not send both fields. Compatibility alias for database. Do not send both database and schema.
Validation and use: Optional Send this parameter as a JSON body property.
sqlConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
SELECT 1
Single SQL statement for `execute_sql`, capped at 20,000 bytes and 10 seconds. Only bounded 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 bounded execution time. Do not place SQL in another field.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"action": "list_databases",
"database": "demo_app",
"limit": 50,
"offset": 0,
"schema": "appdb",
"sql": "SELECT 1",
"table": "orders"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
List account-owned 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 documented runtime value before QA can execute this request.
Read a bounded redacted table page
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"action": "read_rows",
"database": "demo_app",
"table": "orders",
"limit": 50,
"offset": 0
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/phpmyadmin/accessroot reseller userPrepare SHM account phpMyAdmin access
What this endpoint does
Prepare SHM account phpMyAdmin access
Endpoint
POST /v1/accounts/{username}/phpmyadmin/access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
hostOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
Host accepted by this endpoint while it performs: Prepare SHM account phpMyAdmin access. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
remote_ipOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
203.0.113.10
Remote ip accepted by this endpoint while it performs: Prepare SHM account phpMyAdmin access. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"host": "host.example.com",
"remote_ip": "203.0.113.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"host.example.com","remote_ip":"203.0.113.10"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"host": "host.example.com",
"remote_ip": "203.0.113.10"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Diagnostics
GET/v1/accounts/{username}/diagnostics/app-checkroot reseller userDetect the account application stack and expose safe inspection hints.
What this endpoint does
Detect the account application stack and expose safe inspection hints.
Endpoint
GET /v1/accounts/{username}/diagnostics/app-check
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain to focus on. Defaults to all detected sites.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/diagnostics/centerroot reseller userAggregate HTTP, PHP, MySQL, log, application, Node.js, Podman, Git, and PostgreSQL diagnostics for the selected account domain.
What this endpoint does
Aggregate HTTP, PHP, MySQL, log, application, Node.js, Podman, Git, and PostgreSQL diagnostics for the selected account domain.
Endpoint
GET /v1/accounts/{username}/diagnostics/center
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain to inspect. Defaults to the main domain.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"path": "/home/demo/public_html",
"scheme": "http",
"sample_count": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/diagnostics/code-searchroot reseller userSearch account-owned application files with a bounded parallel OS grep executed under the account UID. This read-only endpoint is the fast discovery path before exact File Manager reads.
What this endpoint does
Search account-owned application files with a bounded parallel OS grep executed under the account UID. This read-only endpoint is the fast discovery path before exact File Manager reads.
Operational guidance: Use this read-only endpoint for fast multi-file discovery inside an authorized account application. SHM resolves the requested directory canonically below the account home, enumerates only bounded regular files without following directory symlinks, executes parallel OS grep under the account system UID, and applies fixed depth, file-count, file-size, result, worker, output, and wall-clock ceilings. Private account metadata, VCS, trash, mail, and log directories are excluded; vendor and node_modules are excluded unless explicitly requested. Secret-like assignment values, credentials in URLs, private-key material, and common token formats are redacted from previews. Use the returned account-relative paths with GET /v1/accounts/{username}/file-manager/content only when exact file content is needed.
Endpoint
GET /v1/accounts/{username}/diagnostics/code-search
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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 bounded text file.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string.
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-bounded POSIX ERE. Default: literal.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string. 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 canonical target outside the account home are rejected.
Validation and use: Optional Send this parameter in the query string.
qOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
handleCheckout
Alias of pattern. Prefer pattern.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string. Minimum 1. Maximum 4.
Complete request template
This reference template contains all 15 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 bounded 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 bounded 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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/diagnostics/config-mismatchroot reseller userDetect application/runtime configuration mismatches for one account domain, such as DB credential drift, APP_URL mismatch, or document-root mismatch.
What this endpoint does
Detect application/runtime configuration mismatches for one account domain, such as DB credential drift, APP_URL mismatch, or document-root mismatch.
Operational guidance: Detect application/runtime configuration drift for one account domain. SHM compares common app settings against account-owned databases and document-root expectations, then returns a short issue list per detected site.
Endpoint
GET /v1/accounts/{username}/diagnostics/config-mismatch
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain to inspect. Defaults to the main domain. Optional account-owned domain to focus on.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Check the main domain for drift
{
"path_parameters": {},
"query_parameters": {
"domain": "example.com"
},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/diagnostics/file-changeroot reseller userApply one account-owned UTF-8 text file change with optimistic concurrency, a bounded rollback snapshot, atomic publication, exact read-back verification, and storage verification. The expected SHA-1 prevents overwriting a version changed after AI read it; rollback also refuses to clobber a later edit.
What this endpoint does
Apply one account-owned UTF-8 text file change with optimistic concurrency, a bounded rollback snapshot, atomic publication, exact read-back verification, and storage verification. The expected SHA-1 prevents overwriting a version changed after AI read it; rollback also refuses to clobber a later edit.
Operational guidance: Replace one authorized account UTF-8 text file only if its current SHA-1 still matches the version previously read by AI. SHM creates an account-bound rollback snapshot before publishing, performs an atomic compare-and-swap, reads the file back, verifies content and storage, and returns the exact rollback token. Rollback refuses to overwrite any later customer edit.
Endpoint
POST /v1/accounts/{username}/diagnostics/file-change
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/diagnostics/fix-planroot reseller userBuild a safe remediation plan for a selected account symptom by correlating diagnostics center and health center data.
What this endpoint does
Build a safe remediation plan for a selected account symptom by correlating diagnostics center and health center data.
Operational guidance: Build a safe remediation plan for common account problems by combining diagnostics center and health center signals. Use it first for requests like "site slow", "site broken", "certificate problem", or "repair this". The response only proposes a narrow allowlist of safe fixes and explains why each fix is relevant.
Endpoint
POST /v1/accounts/{username}/diagnostics/fix-plan
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain to focus on. Defaults to the main domain.
Validation and use: Optional Send this parameter as a JSON body property.
issueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Managed by automation
Alias of `symptom`. Prefer `symptom`. Alias of symptom. Prefer symptom.
Validation and use: Optional Send this parameter as a JSON body property.
pathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
/
Optional request path to probe. Defaults to `/`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"issue": "Managed by automation",
"path": "/",
"sample_count": 1,
"scheme": "https",
"symptom": "Site is slow, repair it"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/diagnostics/fix-runroot reseller userRun one safe account remediation action returned by diagnostics fix-plan. Supported actions are intentionally limited.
What this endpoint does
Run one safe account remediation action returned by diagnostics fix-plan. Supported actions are intentionally limited.
Operational guidance: Run one safe remediation action returned by diagnostics fix-plan. Supported actions are intentionally limited to low-risk account repairs: reconcile_php_fpm, run_autossl, clear_web_cache, permissions_repair, wordpress_repair_pack, laravel_clear_caches. Prefer to call fix-plan first, then send back exactly one action payload from that plan.
Endpoint
POST /v1/accounts/{username}/diagnostics/fix-run
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
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: Required Send this parameter as a JSON body property.
domainOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
example.com
Optional account-owned domain to target. Defaults to the main domain.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
idOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional domain target id for addon/subdomain/parked actions. Optional domain target id when you already know the addon/subdomain/parked target.
Validation and use: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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
classic-editor
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
theme_slugOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
twentytwentysix
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: Optional Send this parameter as a JSON body property.
typeOptional- Send in
- JSON body
- Type
enum- Accepted values
- main, addon, subdomain, parked
- Example
addon
Optional explicit domain target 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 15 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "classic-editor",
"profile": "auto",
"theme_slug": "twentytwentysix",
"type": "addon"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Run PHP-FPM reconciliation
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"action": "reconcile_php_fpm",
"domain": "example.com"
}
}Requires a documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/diagnostics/http-proberoot reseller userCheck whether an account-owned website is reachable by pinning the request to its configured public IP. Private, loopback, link-local, documentation, multicast, and reserved targets are rejected; redirects are reported but never followed.
What this endpoint does
Check whether an account-owned website is reachable by pinning the request to its configured public IP. Private, loopback, link-local, documentation, multicast, and reserved targets are rejected; redirects are reported but never followed.
Operational guidance: Probe only an account-owned domain on HTTP or HTTPS. SHM pins curl to the public IP configured for that owned domain, rejects private, loopback, link-local, documentation, multicast, reserved, or invalid targets, and never follows redirects even when follow_redirects is requested. Use routing-check when public DNS resolution rather than the configured account IP is the primary question.
Endpoint
GET /v1/accounts/{username}/diagnostics/http-probe
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the 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 the query string.
sample_countOptional- Send in
- Query string
- Type
int|string|integer- Accepted values
- Any value matching int|string|integer
- Example
1
Number of bounded probe samples. Range: `1-5`. Number of bounded samples. Default: 1.
Validation and use: Optional Send this parameter in the query string. Minimum 1. Maximum 5.
samplesOptional- Send in
- Query string
- Type
int|string- Accepted values
- Any value matching int|string
- Example
1
Samples accepted by this endpoint while it performs: Check whether an account-owned website is reachable by pinning the request to its configured public IP. Private, loopback, link-local, documentation, multicast, and reserved targets are rejected; redirects are reported but never followed. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the query string.
timeout_secondsOptional- Send in
- Query string
- Type
int|string|integer- Accepted values
- Any value matching int|string|integer
- Example
1
Probe timeout in seconds. Range: `2-15`. Per-sample timeout. Default: 6 seconds.
Validation and use: Optional Send this parameter in the query string. Minimum 2. Maximum 15.
Complete request template
This reference template contains all 9 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"follow_redirects": 1,
"method": "HEAD",
"path": "/",
"sample_count": 1,
"samples": 1,
"scheme": "https",
"timeout_seconds": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/diagnostics/log-summaryroot reseller userReturn bounded access/error log summaries for an account domain.
What this endpoint does
Return bounded access/error log summaries for an account domain.
Endpoint
GET /v1/accounts/{username}/diagnostics/log-summary
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"access_lines": 200,
"domain": "example.com",
"error_lines": 200
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"access_lines": 200,
"error_lines": 200
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/diagnostics/mysql-summaryroot reseller userReturn a bounded MySQL process and duplicate-query summary for the account.
What this endpoint does
Return a bounded MySQL process and duplicate-query summary for the account.
Endpoint
GET /v1/accounts/{username}/diagnostics/mysql-summary
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"mode": "current",
"sample_count": 1,
"sleep_ms": 1,
"slow_threshold": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"mode": "current",
"sample_count": 1,
"sleep_ms": 1,
"slow_threshold": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/diagnostics/permissions-repairroot reseller userPreview or run a safe account-only ownership and permissions repair inside the current account home. The target path must stay inside the account and cannot be the home root.
What this endpoint does
Preview or run a safe account-only ownership and permissions repair inside the current account home. The target path must stay inside the account and cannot be the home root.
Operational guidance: Preview or run a safe account-only ownership and permission repair inside one account path. This endpoint never acts outside the account home, skips symlinks/protected directories, and is designed for permission-denied or wrong-owner incidents after uploads, deploys, or app restores. Prefer dry_run first, then rerun with apply=1 when the preview looks correct.
Endpoint
POST /v1/accounts/{username}/diagnostics/permissions-repair
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
domainOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
example.com
Optional account-owned domain used to resolve the default document root target when `path` is omitted. Optional account-owned domain used to resolve the default document root when path is omitted.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Preview a WordPress permission repair
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"path": "/public_html",
"profile": "wordpress",
"dry_run": 1
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/diagnostics/php-summaryroot reseller userReturn a bounded PHP diagnostics summary for an account domain.
What this endpoint does
Return a bounded PHP diagnostics summary for an account domain.
Endpoint
GET /v1/accounts/{username}/diagnostics/php-summary
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"lines": 200
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"lines": 200
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/diagnostics/proactive-insightsroot reseller userReturn account-scoped proactive incident hints by combining diagnostics center, health center, config mismatch, and WordPress update signals.
What this endpoint does
Return account-scoped proactive incident hints by combining diagnostics center, health center, config mismatch, and WordPress update signals.
Operational guidance: Build a proactive incident summary for one account domain by combining diagnostics center, health center, config mismatch, and WordPress update checks. Use it when you want the assistant to explain what needs attention before the owner asks.
Endpoint
GET /v1/accounts/{username}/diagnostics/proactive-insights
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain to inspect. Defaults to the main domain.
Validation and use: Optional Send this parameter in the 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 the query string.
sample_countOptional- Send in
- Query string
- Type
int|string- Accepted values
- Any value matching int|string
- Example
1
Sample count accepted by this endpoint while it performs: Return account-scoped proactive incident hints by combining diagnostics center, health center, config mismatch, and WordPress update signals. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"path": "/",
"sample_count": 1,
"scheme": "https"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Build proactive insights for the main site
{
"path_parameters": {},
"query_parameters": {
"domain": "example.com",
"path": "/",
"scheme": "https"
},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/diagnostics/repair-sessionroot reseller userRun a one-shot account repair workflow: diagnose, detect mismatch, choose safe actions, optionally snapshot, execute, and verify.
What this endpoint does
Run a one-shot account repair workflow: diagnose, detect mismatch, choose safe actions, optionally snapshot, execute, and verify.
Operational guidance: Run the one-shot incident workflow for one account domain: diagnose, detect config mismatch, choose the safest allowed actions, optionally create a local snapshot, execute the fixes, then verify and narrate the result. This is the preferred endpoint for requests like "site broken, repair it" or "site slow, fix it".
Endpoint
POST /v1/accounts/{username}/diagnostics/repair-session
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
domainOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
example.com
Optional account-owned domain to focus on. Defaults to the main domain.
Validation and use: Optional Send this parameter as a JSON body property.
issueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Managed by automation
Alias of `symptom`. Prefer `symptom`. Alias of symptom. Prefer symptom.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"apply": 0,
"domain": "example.com",
"issue": "Managed by automation",
"max_actions": 1,
"path": "/",
"scheme": "https",
"symptom": "Site is slow, repair it"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/diagnostics/rollbackroot reseller userRollback one local diagnostics repair snapshot for the current account using the rollback token returned by diagnostics/repair-session.
What this endpoint does
Rollback one local diagnostics repair snapshot for the current account using the rollback token returned by diagnostics/repair-session.
Operational guidance: Rollback one local diagnostics repair snapshot. Use the token returned by diagnostics/repair-session when a safe repair pack touched WordPress state or file snapshots.
Endpoint
POST /v1/accounts/{username}/diagnostics/rollback
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"token": "ONE_TIME_TOKEN",
"rollback_token": "ONE_TIME_TOKEN"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Rollback one repair snapshot
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"token": "ONE_TIME_TOKEN"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/diagnostics/runtime-summaryroot reseller userCorrelate one account domain with bounded Node.js status/log patterns, Podman containers/Compose projects, Git repository state, and PostgreSQL databases/processes. Returns exact follow-up diagnostic and repair endpoints without exposing an interactive shell.
What this endpoint does
Correlate one account domain with bounded Node.js status/log patterns, Podman containers/Compose projects, Git repository state, and PostgreSQL databases/processes. Returns exact follow-up diagnostic and repair endpoints without exposing an interactive shell.
Operational guidance: Use this as the preferred first runtime diagnosis for Node.js, Next.js, Podman, Git, or PostgreSQL incidents. It resolves the authenticated account, optionally validates one owned domain, maps that domain to its configured PHP/Node.js/Podman topology, returns sanitized Node runtime state and bounded error fingerprints, Podman container/Compose state, bounded Git repository status, PostgreSQL databases/processes, and exact follow-up endpoints. It does not expose account terminal sessions or interactive podman exec to AI.
Endpoint
GET /v1/accounts/{username}/diagnostics/runtime-summary
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain used to correlate the configured PHP/Node.js/Podman backend. Omit for an account-wide runtime inventory. Optional account-owned domain to correlate with its configured backend. Foreign domains are rejected.
Validation and use: Optional Send this parameter in the query string.
include_git_statusOptional- Send in
- Query string
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Run bounded git status for at most 20 repositories after the account-home repository scan. After repository discovery, run bounded git status for at most 20 repositories. Default: 1.
Validation and use: Optional Send this parameter in the 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 bounded redacted/fingerprinted Node.js log summaries for the focused or unhealthy apps. Include bounded Node.js log fingerprints/samples for the focused or unhealthy apps. Default: 1.
Validation and use: Optional Send this parameter in the 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 the query string. Minimum 20. Maximum 500. Default: 120.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value before QA can execute this request.
Fast account-wide 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.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Disk Usage
GET/v1/accounts/{username}/disk-usageroot reseller userFetch SHM account disk usage tree
What this endpoint does
Fetch SHM account disk usage tree
Endpoint
GET /v1/accounts/{username}/disk-usage
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the query string.
show_filesOptional- Send in
- Query string
- Type
int|string- Accepted values
- Any value matching int|string
- Example
1
Show files accepted by this endpoint while it performs: Fetch SHM account disk usage tree. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html",
"show_files": 1,
"unit": "auto"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html",
"unit": "auto",
"show_files": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/disk-usageroot reseller userFetch SHM account disk usage tree
What this endpoint does
Fetch SHM account disk usage tree
Endpoint
POST /v1/accounts/{username}/disk-usage
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property.
show_filesOptional- Send in
- JSON body
- Type
int|string- Accepted values
- Any value matching int|string
- Example
1
Show files accepted by this endpoint while it performs: Fetch SHM account disk usage tree. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"show_files": 1,
"unit": "auto"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"unit": "auto",
"show_files": 1
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Dns
POST/v1/dns/recordsroot reseller userCreate DNS record.
What this endpoint does
Create DNS record.
Operational guidance: Create DNS record in an existing managed zone. Required fields depend on record type; see type-specific fields below.
Endpoint
POST /v1/dns/records
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
afsdbhostConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
For afsdb: hostname.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
afsdbtypeConditional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For afsdb: subtype.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
caaflagConditional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For caa: flag.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
caatagConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
issue
For caa: tag.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
caavalueConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
letsencrypt.org
For caa: value.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
hinfocpuConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
x86_64
For hinfo: CPU string.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
hinfoosConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Linux
For hinfo: OS string.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
mxdestinationConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mail.example.com.
For mx: destination hostname.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
mxpriorityConditional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
10
For mx: priority.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
srvportConditional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For srv: port.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
srvpriorityConditional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For srv: priority.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
srvtargetConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
sip.example.com
For srv: target hostname.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
srvweightConditional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For srv: weight.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
Complete request template
This reference template contains all 23 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"record": "api",
"ttl": "3600",
"type": "a",
"afsdbhost": "host.example.com",
"afsdbtype": 1,
"caaflag": 1,
"caatag": "issue",
"caavalue": "letsencrypt.org",
"dsalgorithm": "13",
"dsdigest": "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF",
"dsdigesttype": "2",
"dskeytag": "12345",
"hinfocpu": "x86_64",
"hinfoos": "Linux",
"mxdestination": "mail.example.com.",
"mxpriority": "10",
"proxied": 1,
"srvport": 1,
"srvpriority": 1,
"srvtarget": "sip.example.com",
"srvweight": 1,
"value": "192.0.2.25"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
A record
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "a",
"record": "api",
"ttl": "3600",
"value": "192.0.2.25"
}
}CNAME record
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "cname",
"record": "www",
"ttl": "3600",
"value": "example.com."
}
}MX record
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "mx",
"record": "@",
"ttl": "3600",
"mxpriority": "10",
"mxdestination": "mail.example.com."
}
}TXT record
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "txt",
"record": "@",
"ttl": "3600",
"value": "v=spf1 a mx ~all"
}
}DS record
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "ds",
"record": "@",
"ttl": "3600",
"dskeytag": "12345",
"dsalgorithm": "13",
"dsdigesttype": "2",
"dsdigest": "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/dns/records/{id}root reseller userDelete DNS record.
What this endpoint does
Delete DNS record.
Operational guidance: Delete DNS record by id. Provide domain + type to locate the zone and record list.
Endpoint
DELETE /v1/dns/records/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
afsdbhostOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
Optional afsdb hostname guard.
Validation and use: Optional Send this parameter as a JSON body property.
afsdbtypeOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional afsdb subtype guard.
Validation and use: Optional Send this parameter as a JSON body property.
caaflagOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional caa flag guard.
Validation and use: Optional Send this parameter as a JSON body property.
caatagOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
issue
Optional caa tag guard.
Validation and use: Optional Send this parameter as a JSON body property.
caavalueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
letsencrypt.org
Optional caa value guard.
Validation and use: Optional Send this parameter as a JSON body property.
dsalgorithmOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional ds algorithm guard.
Validation and use: Optional Send this parameter as a JSON body property.
dsdigestOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
Optional ds digest guard.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
fieldsOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{}
Optional record-value guards when legacy duplicate ids exist; accepts the same guard keys as the top-level fields below.
Validation and use: Optional Send this parameter as a JSON body property.
hinfocpuOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
x86_64
Optional hinfo CPU guard.
Validation and use: Optional Send this parameter as a JSON body property.
hinfoosOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Linux
Optional hinfo operating-system guard.
Validation and use: Optional Send this parameter as a JSON body property.
mxdestinationOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mail.example.com
Optional mx destination guard.
Validation and use: Optional Send this parameter as a JSON body property.
mxpriorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional mx priority guard.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
recordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
www
Optional owner-name guard used to identify the exact row when duplicate ids exist.
Validation and use: Optional Send this parameter as a JSON body property.
srvportOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional srv port guard.
Validation and use: Optional Send this parameter as a JSON body property.
srvpriorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional srv priority guard.
Validation and use: Optional Send this parameter as a JSON body property.
srvtargetOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
sip.example.com
Optional srv target guard.
Validation and use: Optional Send this parameter as a JSON body property.
srvweightOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
Optional srv weight guard.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
192.0.2.25
Optional value guard for a/aaaa/cname/dname/ns/ptr/txt.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 25 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1
},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "a",
"afsdbhost": "host.example.com",
"afsdbtype": 1,
"caaflag": 1,
"caatag": "issue",
"caavalue": "letsencrypt.org",
"dsalgorithm": 1,
"dsdigest": "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF",
"dsdigesttype": 1,
"dskeytag": 1,
"fields": {},
"hinfocpu": "x86_64",
"hinfoos": "Linux",
"mxdestination": "mail.example.com",
"mxpriority": 1,
"proxied": 1,
"record": "www",
"srvport": 1,
"srvpriority": 1,
"srvtarget": "sip.example.com",
"srvweight": 1,
"ttl": 3600,
"value": "192.0.2.25"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Delete record
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "a"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/dns/records/{id}root reseller userEdit DNS record.
What this endpoint does
Edit DNS record.
Operational guidance: Edit DNS record by id. Provide domain + type to locate the zone list, and one or more fields to change (record/ttl/type-specific fields).
Endpoint
PATCH /v1/dns/records/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
afsdbhostOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
For afsdb: replacement hostname.
Validation and use: Optional Send this parameter as a JSON body property.
afsdbtypeOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For afsdb: replacement subtype.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
caatagOptional- Send in
- JSON body
- Type
enum- Accepted values
- issue, issuewild, iodef
- Example
issue
For caa: replacement tag.
Validation and use: Optional Send this parameter as a JSON body property.
caavalueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
letsencrypt.org
For caa: replacement value.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
dsdigestOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
For ds: replacement hexadecimal digest; length must match its digest type (40, 64, or 96).
Validation and use: Optional Send this parameter as a JSON body property.
dsdigesttypeOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 2, 4
- Example
1
For ds: replacement digest type.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
eaddressOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
hostmaster.example.com
For soa: replacement responsible-party address in DNS hostname format.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
hinfocpuOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
x86_64
For hinfo: replacement CPU string.
Validation and use: Optional Send this parameter as a JSON body property.
hinfoosOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Linux
For hinfo: replacement operating-system string.
Validation and use: Optional Send this parameter as a JSON body property.
mxdestinationOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mail.example.com
For mx: replacement destination hostname.
Validation and use: Optional Send this parameter as a JSON body property.
mxpriorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For mx: replacement priority.
Validation and use: Optional Send this parameter as a JSON body property.
pnameserverOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
ns1.example.com
For soa: replacement primary nameserver.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
recordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
api
Record name/host label (if changing).
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
srvportOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For srv: replacement port.
Validation and use: Optional Send this parameter as a JSON body property.
srvpriorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For srv: replacement priority.
Validation and use: Optional Send this parameter as a JSON body property.
srvtargetOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
sip.example.com
For srv: replacement target hostname.
Validation and use: Optional Send this parameter as a JSON body property.
srvweightOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For srv: replacement weight.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 31 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1
},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"type": "a",
"afsdbhost": "host.example.com",
"afsdbtype": 1,
"caaflag": 1,
"caatag": "issue",
"caavalue": "letsencrypt.org",
"dsalgorithm": 3,
"dsdigest": "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF",
"dsdigesttype": 1,
"dskeytag": 1,
"eaddress": "hostmaster.example.com",
"expire": 1,
"fields": {
"value": "hello world"
},
"hinfocpu": "x86_64",
"hinfoos": "Linux",
"mxdestination": "mail.example.com",
"mxpriority": 1,
"pnameserver": "ns1.example.com",
"proxied": 1,
"record": "api",
"refresh": 1,
"retry": 1,
"serial": 1,
"srvport": 1,
"srvpriority": 1,
"srvtarget": "sip.example.com",
"srvweight": 1,
"ttl": "3600",
"value": "192.0.2.26"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/dns/zones/{domain}root reseller userGet DNS zone data.
What this endpoint does
Get DNS zone data.
Endpoint
GET /v1/dns/zones/{domain}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
DNS
POST/v1/dns/zones/{domain}/cloudflare/cache/purgeroot reseller userPurge SHM DNS zone Cloudflare cache through SDM
What this endpoint does
Purge SHM DNS zone Cloudflare cache through SDM
Operational guidance: Empty body defaults to purge_everything=true.
Endpoint
POST /v1/dns/zones/{domain}/cloudflare/cache/purge
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
[]
Optional Cloudflare files purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
hostsOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
host.example.com
Optional Cloudflare hosts purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
prefixesOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
[]
Optional Cloudflare prefixes purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
tagsOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
[]
Optional Cloudflare tags purge payload.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {
"files": [],
"hosts": "host.example.com",
"prefixes": [],
"purge_everything": true,
"tags": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/dns/zones/{domain}/cloudflare/recordsroot reseller userList SHM DNS zone Cloudflare records from SDM
What this endpoint does
List SHM DNS zone Cloudflare records from SDM
Operational guidance: List SDM-managed Cloudflare DNS records for one DNS zone.
Endpoint
GET /v1/dns/zones/{domain}/cloudflare/records
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/dns/zones/{domain}/cloudflare/recordsroot reseller userCreate SHM DNS zone Cloudflare record through SDM
What this endpoint does
Create SHM DNS zone Cloudflare record through SDM
Operational guidance: Supported record types: A, AAAA, CNAME, TXT, MX.
Endpoint
POST /v1/dns/zones/{domain}/cloudflare/records
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Example content
Record value/content.
Validation and use: Required Send this parameter as a JSON body property.
nameRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Record owner name, such as @, www, or api.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
commentOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Managed by automation
Optional record comment.
Validation and use: Optional Send this parameter as a JSON body property.
priorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For MX records: priority.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {
"content": "Example content",
"name": "Primary",
"type": "A",
"comment": "Managed by automation",
"priority": 1,
"proxied": 1,
"ttl": 3600
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary","content":"Example content"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {
"type": "A",
"name": "Primary",
"content": "Example content"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/dns/zones/{domain}/cloudflare/records/{record_id}root reseller userDelete SHM DNS zone Cloudflare record through SDM
What this endpoint does
Delete SHM DNS zone Cloudflare record through SDM
Operational guidance: Delete an SDM-managed Cloudflare DNS record for one DNS zone.
Endpoint
DELETE /v1/dns/zones/{domain}/cloudflare/records/{record_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com",
"record_id": 1
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/dns/zones/{domain}/cloudflare/records/{record_id}root reseller userUpdate SHM DNS zone Cloudflare record through SDM
What this endpoint does
Update SHM DNS zone Cloudflare record through SDM
Operational guidance: Supported record types: A, AAAA, CNAME, TXT, MX.
Endpoint
PATCH /v1/dns/zones/{domain}/cloudflare/records/{record_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Managed by automation
Optional record comment.
Validation and use: Optional Send this parameter as a JSON body property.
contentOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Example content
Record value/content.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Record owner name, such as @, www, or api.
Validation and use: Optional Send this parameter as a JSON body property.
priorityOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
1
For MX records: priority.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 9 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com",
"record_id": 1
},
"query_parameters": {},
"json_body": {
"comment": "Managed by automation",
"content": "Example content",
"name": "Primary",
"priority": 1,
"proxied": 1,
"ttl": 3600,
"type": "A"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary","content":"Example content","ttl":3600}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"domain": "example.com",
"record_id": 1
},
"query_parameters": {},
"json_body": {
"type": "A",
"name": "Primary",
"content": "Example content",
"ttl": 3600
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/dns/zones/{domain}/cloudflare/settingsroot reseller userGet SHM DNS zone Cloudflare settings from SDM
What this endpoint does
Get SHM DNS zone Cloudflare settings from SDM
Operational guidance: Read SDM-managed Cloudflare zone settings for one DNS zone.
Endpoint
GET /v1/dns/zones/{domain}/cloudflare/settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/dns/zones/{domain}/cloudflare/settings/{setting}root reseller userUpdate SHM DNS zone Cloudflare setting through SDM
What this endpoint does
Update SHM DNS zone Cloudflare setting through SDM
Operational guidance: Supported settings: development_mode, security_level, cache_level, always_online, brotli.
Endpoint
PATCH /v1/dns/zones/{domain}/cloudflare/settings/{setting}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com",
"setting": "security_level"
},
"query_parameters": {},
"json_body": {
"value": "under_attack"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/dns/zones/{domain}/cloudflare/statusroot reseller userGet SHM DNS zone Cloudflare status from SDM
What this endpoint does
Get SHM DNS zone Cloudflare status from SDM
Operational guidance: Read SDM-managed Cloudflare status for one DNS zone. SHM calls SDM External API; SDM calls Cloudflare.
Endpoint
GET /v1/dns/zones/{domain}/cloudflare/status
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/dns/zones/{domain}/dnssecroot reseller userGet automatic zone-wide DNSSEC status, public DS material, and DNS Cluster synchronization state.
What this endpoint does
Get automatic zone-wide DNSSEC status, public DS material, and DNS Cluster synchronization state.
Operational guidance: Read the zone-wide automatic DNSSEC policy, public DNSKEY/DS material, parent DS detection, staged CSK rollover, and DNS Cluster synchronization state. When DNS Cluster is active, SHM keeps the same signing identity on local and cluster authorities automatically. Private keys are never returned.
Endpoint
GET /v1/dns/zones/{domain}/dnssec
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/dns/zones/{domain}/dnssec/disableroot reseller userSafely disable automatic zone-wide DNSSEC on SHM and its active DNS Cluster.
What this endpoint does
Safely disable automatic zone-wide DNSSEC on SHM and its active DNS Cluster.
Operational guidance: Safely disable the zone-wide DNSSEC policy on SHM and its active DNS Cluster. Remove the DS at the parent first. Exact zone confirmation is mandatory; parent DS detection blocks normal disable. Cluster removal is applied before local key cleanup so a failed cluster operation cannot leave DNSSEC advertised only by SHM. Root force is reserved for recovery and isolated QA.
Endpoint
POST /v1/dns/zones/{domain}/dnssec/disable
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Confirm accepted by this endpoint while it performs: Safely disable automatic zone-wide DNSSEC on SHM and its active DNS Cluster. Use the documented type, location, and constraints below.
Validation and use: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. Default: false.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {
"confirm": "example.com",
"force": false
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/dns/zones/{domain}/dnssec/enableroot reseller userEnable automatic zone-wide DNSSEC on SHM and its active DNS Cluster.
What this endpoint does
Enable automatic zone-wide DNSSEC on SHM and its active DNS Cluster.
Operational guidance: Enable DNSSEC idempotently for the zone. SHM creates one ECDSA P-256 CSK signing identity and, when DNS Cluster is active, transfers it through the verified private synchronization path before reporting success. Publish one returned DS at the parent after authoritative DNSKEY/RRSIG validation. HTTP 202 means the signed local policy is saved but cluster reconciliation is still pending.
Endpoint
POST /v1/dns/zones/{domain}/dnssec/enable
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/dns/zones/{domain}/dnssec/rolloverroot reseller userAdvance one staged zone-wide DNSSEC CSK rollover on SHM and its active DNS Cluster.
What this endpoint does
Advance one staged zone-wide DNSSEC CSK rollover on SHM and its active DNS Cluster.
Operational guidance: Advance the staged zone-wide CSK rollover on SHM and every active DNS Cluster replica. begin publishes one inactive ECDSA P-256 CSK, activate requires its DS at the parent, and complete requires the new parent DS plus a 24-hour hold-down before the old key is removed. Each transition is synchronized as one signing identity.
Endpoint
POST /v1/dns/zones/{domain}/dnssec/rollover
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
forceOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
false
Root-only recovery/QA override for parent DS and hold-down gates. It does not bypass ownership or authentication.
Validation and use: Optional Send this parameter as a JSON body property. Default: false.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com"
},
"query_parameters": {},
"json_body": {
"phase": "begin",
"force": false
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Docs
GET/v1/docsroot reseller userMachine-readable endpoint catalog.
What this endpoint does
Machine-readable endpoint catalog.
Endpoint
GET /v1/docs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (0)
This endpoint accepts no path, query, or JSON parameters.
Complete request template
This reference template contains all 0 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/docs' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "access_denied",
"message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Domains
GET/v1/accounts/{username}/domains/{domain}/public-dns-checkroot reseller userFetch public DNS/delegation data and compare it with the managed SHM zone for one account-owned domain.
What this endpoint does
Fetch public DNS/delegation data and compare it with the managed SHM zone for one account-owned domain.
Operational guidance: Fetch public DNS data for one account-owned domain and compare it with the managed SHM zone. Use it for nameserver mismatch, delegation drift, or public A/AAAA/CNAME checks.
Endpoint
GET /v1/accounts/{username}/domains/{domain}/public-dns-check
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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}/domains
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/domains/{domain}/routing-checkroot reseller userFetch public routing/IP data for one account-owned domain and compare it with the expected SHM edge IP.
What this endpoint does
Fetch public routing/IP data for one account-owned domain and compare it with the expected SHM edge IP.
Operational guidance: Fetch public routing/IP data for one account-owned domain. SHM resolves A/AAAA, rejects every private, loopback, link-local, metadata, documentation, multicast, or reserved answer, pins curl to one validated public answer to prevent DNS rebinding, reports redirects without following them, then compares the routed remote IP with the expected SHM edge IP.
Endpoint
GET /v1/accounts/{username}/domains/{domain}/routing-check
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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}/domains
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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-scoped probe, preventing cross-host, private-network, metadata, and DNS-rebinding requests. Compatibility flag. Redirects are never followed by this account-scoped probe; the first response is reported safely.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com",
"username": "demo"
},
"query_parameters": {
"follow_redirects": 0,
"path": "/",
"scheme": "https",
"timeout_seconds": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/domains/{domain}/whois-summaryroot reseller userFetch a WHOIS summary for one account-owned domain.
What this endpoint does
Fetch a WHOIS summary for one account-owned domain.
Operational guidance: Fetch a concise WHOIS summary for one account-owned domain. Use it when the owner asks if the domain is expired, who the registrar is, or which nameservers WHOIS currently reports.
Endpoint
GET /v1/accounts/{username}/domains/{domain}/whois-summary
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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}/domains
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"domain": "example.com",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/domains/addonsroot reseller userList addon domains.
What this endpoint does
List addon domains.
Endpoint
GET /v1/accounts/{username}/domains/addons
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/domains/addonsroot reseller userCreate addon domain.
What this endpoint does
Create addon domain.
Operational guidance: Creates an addon domain (virtual host + account YAML entry).
Endpoint
POST /v1/accounts/{username}/domains/addons
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
opcacheOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Enable or disable OPcache for the new or updated hosted domain, using a supported toggle value.
Validation and use: Optional Send this parameter as a JSON body property.
phpversionOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
php83
PHP runtime key assigned to the hosted domain, such as php83 or another version installed in Services.
Validation and use: Optional Send this parameter as a JSON body property.
setopcacheOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
OPcache toggle.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 10 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "1",
"phpversion": "php83",
"setopcache": 1,
"setphpversion": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create addon domain (use account IP)
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "addon.example.com",
"document_root": "addon"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/domains/addons/{id}root reseller userDelete addon domain.
What this endpoint does
Delete addon domain.
Endpoint
DELETE /v1/accounts/{username}/domains/addons/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/domains/addons/{id}root reseller userEdit addon domain.
What this endpoint does
Edit addon domain.
Operational guidance: Edit addon domain. This is replace-style for the addon record: send the updated fields (typically domain/document_root/ip).
Endpoint
PATCH /v1/accounts/{username}/domains/addons/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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. Directory under the account home (or absolute path under the account home).
Validation and use: Required Send this parameter as a JSON body property.
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. "addon.example.com".
Validation and use: Required Send this parameter as a JSON body property.
ipOptional- Send in
- JSON body
- Type
string|ipv4- Accepted values
- Any value matching string|ipv4
- Example
192.0.2.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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"document_root": "addon2",
"domain": "addon.example.com",
"ip": "192.0.2.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 '{"domain":"addon.example.com","document_root":"addon2","ip":"192.0.2.10"}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Change addon document root
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "addon.example.com",
"document_root": "addon2",
"ip": "192.0.2.10"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/domains/parkedroot reseller userList parked domains.
What this endpoint does
List parked domains.
Endpoint
GET /v1/accounts/{username}/domains/parked
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/domains/parkedroot reseller userCreate parked domain.
What this endpoint does
Create parked domain.
Operational guidance: Creates a parked domain (alias) that points to the account main document root.
Endpoint
POST /v1/accounts/{username}/domains/parked
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create parked domain (use account IP)
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"domain": "parked.example.com"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/domains/parked/{id}root reseller userDelete parked domain.
What this endpoint does
Delete parked domain.
Endpoint
DELETE /v1/accounts/{username}/domains/parked/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/domains/subdomainsroot reseller userList subdomains.
What this endpoint does
List subdomains.
Endpoint
GET /v1/accounts/{username}/domains/subdomains
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/domains/subdomainsroot reseller userCreate subdomain.
What this endpoint does
Create subdomain.
Operational guidance: Creates a subdomain (virtual host + DNS record + account YAML entry).
Endpoint
POST /v1/accounts/{username}/domains/subdomains
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
opcacheOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Enable or disable OPcache for the new or updated hosted domain, using a supported toggle value.
Validation and use: Optional Send this parameter as a JSON body property.
phpversionOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
php83
PHP runtime key assigned to the hosted domain, such as php83 or another version installed in Services.
Validation and use: Optional Send this parameter as a JSON body property.
setopcacheOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
OPcache toggle.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "1",
"phpversion": "php83",
"setopcache": 1,
"setphpversion": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create blog subdomain (use account IP)
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"subdomain": "blog",
"parent": ".example.com",
"document_root": "blog"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/domains/subdomains/{id}root reseller userDelete subdomain.
What this endpoint does
Delete subdomain.
Endpoint
DELETE /v1/accounts/{username}/domains/subdomains/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/domains/subdomains/{id}root reseller userEdit subdomain.
What this endpoint does
Edit subdomain.
Operational guidance: Edit subdomain. This is replace-style for the subdomain record: send the updated fields (typically subdomain/parent/document_root/ip).
Endpoint
PATCH /v1/accounts/{username}/domains/subdomains/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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. Directory under the account home (or absolute path under the account home).
Validation and use: Required Send this parameter as a JSON body property.
parentRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
.example.com
Parent domain name. Parent domain with or without leading dot. Parent domain, with or without leading dot.
Validation and use: Required Send this parameter as a JSON body property.
subdomainRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
blog
Subdomain label.
Validation and use: Required Send this parameter as a JSON body property.
ipOptional- Send in
- JSON body
- Type
string|ipv4- Accepted values
- Any value matching string|ipv4
- Example
192.0.2.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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"document_root": "blog2",
"parent": ".example.com",
"subdomain": "blog",
"ip": "192.0.2.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 '{"subdomain":"blog","parent":".example.com","document_root":"blog2","ip":"192.0.2.10"}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Change subdomain document root
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"subdomain": "blog",
"parent": ".example.com",
"document_root": "blog2",
"ip": "192.0.2.10"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/domains/tableroot reseller userList indexed account domains for domain, DNS, mail-domain, FTP-domain, and selector table views. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed account domains for domain, DNS, mail-domain, FTP-domain, and selector table views. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/domains/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/domains
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/domains
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/domains
searchOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
account
Case-insensitive search text applied by the native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/domains/tableroot reseller userList indexed account domains for domain, DNS, mail-domain, FTP-domain, and selector table views. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed account domains for domain, DNS, mail-domain, FTP-domain, and selector table views. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/domains/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/domains
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/domains
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/domains
searchOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
account
Case-insensitive search text applied by the native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emailroot reseller userUpdate account contact email.
What this endpoint does
Update account contact email.
Operational guidance: Updates account contact email.
Endpoint
PATCH /v1/accounts/{username}/email
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
account_passwordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Account or mailbox password.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
passwordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Password value.
Validation and use: Optional Send this parameter as a JSON body property.
quotaOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
100
Quota value.
Validation and use: Optional Send this parameter as a JSON body property.
quota_typeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Quota type or unit.
Validation and use: Optional Send this parameter as a JSON body property.
storage_spaceOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
100
Storage quota amount.
Validation and use: Optional Send this parameter as a JSON body property.
storage_typeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
GB
Storage unit.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": 1,
"storage_space": 100,
"storage_type": "GB",
"suspended_incoming": 1,
"suspended_login": 1,
"suspended_outgoing": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Set contact email
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"email": "admin@example.com"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Emails
GET/v1/accounts/{username}/emailsroot reseller userList mailboxes.
What this endpoint does
List mailboxes.
Endpoint
GET /v1/accounts/{username}/emails
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emailsroot reseller userCreate mailbox.
What this endpoint does
Create mailbox.
Operational guidance: Creates an email mailbox. storage_type is the quota unit (M=MB, G=GB). storage_space is a number; 0 means unlimited. Migration mode is root-only; when enabled, account_password is treated as a pre-hashed value.
Endpoint
POST /v1/accounts/{username}/emails
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. Default: 0.
Complete request template
This reference template contains all 10 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| Field | Documented type or shape |
|---|---|
email | string |
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/{id}root reseller userDelete mailbox.
What this endpoint does
Delete mailbox.
Endpoint
DELETE /v1/accounts/{username}/emails/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/{id}root reseller userEdit mailbox quota/password.
What this endpoint does
Edit mailbox quota/password.
Operational guidance: Edit mailbox quota/password/suspension flags. PATCH is partial: send only fields that must change.
Endpoint
PATCH /v1/accounts/{username}/emails/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
quota_typeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Quota type or unit. Alias of storage_type. Prefer storage_type.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"account_password": "STRONG_PASSWORD",
"password": "STRONG_PASSWORD",
"quota": 100,
"quota_type": 1,
"storage_space": "2",
"storage_type": "G",
"suspended_incoming": 1,
"suspended_login": 1,
"suspended_outgoing": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Increase quota
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"storage_type": "G",
"storage_space": "2"
}
}Requires a documented runtime value 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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/{id}/messagesroot reseller userList mailbox messages from one folder.
What this endpoint does
List mailbox messages from one folder.
Operational guidance: List mailbox messages from one folder. Use the returned `message_id` token for the message detail/raw/delete endpoints.
Endpoint
GET /v1/accounts/{username}/emails/{id}/messages
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
fromOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
admin@example.com
Case-insensitive sender substring filter.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
searchOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
account
Alias of `q`.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
startOptional- Send in
- Query string
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
0
Alias of `offset`.
Validation and use: Optional Send this parameter in the query string.
subjectOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
Invoice
Case-insensitive subject substring filter.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {
"folder": "INBOX",
"from": "admin@example.com",
"limit": 25,
"offset": 0,
"q": "account",
"search": "account",
"since": "2026-04-01",
"start": 0,
"subject": "Invoice",
"unread": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Latest inbox messages
{
"path_parameters": {},
"query_parameters": {
"account_user": "demo",
"folder": "INBOX",
"limit": 25
},
"json_body": {}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
DELETE/v1/accounts/{username}/emails/{id}/messages/{message_id}root reseller userDelete one mailbox message by moving it to Trash or permanently expunging it.
What this endpoint does
Delete one mailbox message by moving it to Trash or permanently expunging it.
Operational guidance: Delete one mailbox message by moving it to Trash or permanently expunging it. Prefer the encoded `message_id` returned by list/search. If you only have a plain numeric UID, also send `folder`.
Endpoint
DELETE /v1/accounts/{username}/emails/{id}/messages/{message_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
modeOptional- Send in
- JSON body
- Type
enum- Accepted values
- trash, permanent
- Example
trash
Allowed values: `trash` (default) or `permanent`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"message_id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"folder": "INBOX",
"mode": "trash",
"permanent": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/{id}/messages/{message_id}root reseller userGet one normalized mailbox message with decoded headers, text body, HTML excerpt, and attachment metadata.
What this endpoint does
Get one normalized mailbox message with decoded headers, text body, HTML excerpt, and attachment metadata.
Operational guidance: Read one normalized mailbox message. Prefer the encoded `message_id` returned by list/search. If you only have a numeric UID, also send `folder` so SHM can resolve the message.
Endpoint
GET /v1/accounts/{username}/emails/{id}/messages/{message_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"message_id": 1,
"username": "demo"
},
"query_parameters": {
"folder": "INBOX"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/emails/{id}/messages/{message_id}/rawroot reseller userGet the raw RFC822 mailbox message. Use only when the raw source is explicitly needed.
What this endpoint does
Get the raw RFC822 mailbox message. Use only when the raw source is explicitly needed.
Operational guidance: Fetch the raw RFC822 source of one mailbox message. Prefer the encoded `message_id` returned by list/search. If you only have a numeric UID, also send `folder`.
Endpoint
GET /v1/accounts/{username}/emails/{id}/messages/{message_id}/raw
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"message_id": 1,
"username": "demo"
},
"query_parameters": {
"folder": "INBOX"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/{id}/messages/searchroot reseller userSearch mailbox messages across one folder or all folders.
What this endpoint does
Search mailbox messages across one folder or all folders.
Operational guidance: Search mailbox messages across one folder or all folders. Omit `folder` to search all visible folders returned by the mailbox context endpoint.
Endpoint
POST /v1/accounts/{username}/emails/{id}/messages/search
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
searchOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
account
Alias of `q`.
Validation and use: Optional Send this parameter as a JSON body property.
sinceOptional- Send in
- JSON body
- Type
timestamp|string- Accepted values
- Any value matching timestamp|string
- Example
2026-07-16
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: Optional Send this parameter as a JSON body property.
startOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
0
Alias of `offset`.
Validation and use: Optional Send this parameter as a JSON body property.
subjectOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Invoice
Case-insensitive subject substring filter.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "2026-07-16",
"start": 0,
"subject": "Invoice",
"unread": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Search invoices across all folders
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"q": "invoice",
"limit": 20
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/emails/{id}/messages/sendroot reseller userSend one email through the selected mailbox identity and optionally save a Sent copy.
What this endpoint does
Send one email through the selected mailbox identity and optionally save a Sent copy.
Operational guidance: Send one email through the selected mailbox identity. SHM uses the mailbox sender envelope locally and, by default, saves a Sent copy through Dovecot.
Endpoint
POST /v1/accounts/{username}/emails/{id}/messages/send
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
bccOptional- Send in
- JSON body
- Type
string|array- Accepted values
- Any value matching string|array
- Example
[]
Optional BCC recipient list. Accepts the same formats as `to`. Optional BCC recipients. Same formats as `to`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
htmlOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
<p>Hello from SHM</p>
Alias of `html_body`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. Contract requirement: body.
reply_toOptional- Send in
- JSON body
- Type
string|email- Accepted values
- Any value matching string|email
- Example
mailbox@example.com
Optional Reply-To address.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
textOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Example content
Alias of `text_body`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. Contract requirement: body.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"to": [
"owner@example.net"
],
"bcc": [],
"cc": [
"team@example.net"
],
"html": "<p>Hello from SHM</p>",
"html_body": "<p><strong>Summary</strong></p><p>The mailbox API test completed successfully.</p>",
"reply_to": "mailbox@example.com",
"save_to_sent": 1,
"subject": "Status update",
"text": "Example content",
"text_body": "Hello,\n\nThe mailbox API test completed successfully.\n"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/autorespondersroot reseller userList mailbox auto responders.
What this endpoint does
List mailbox auto responders.
Operational guidance: List one or all mailbox autoresponders, including current schedule state, exact interval seconds, reply identity, subject/body, HTML mode, charset, and saved custom_variables object.
Endpoint
GET /v1/accounts/{username}/emails/autoresponders
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string. GET /v1/accounts/{username}/emails
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"email": "team@example.com",
"email_id": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/autorespondersroot reseller userCreate mailbox auto responder.
What this endpoint does
Create mailbox auto responder.
Operational guidance: Create one autoresponder for an existing mailbox. Use GET /emails/autoresponders/catalog first for professional presets, automatic variables, and custom-variable limits. Preferred and legacy aliases work in subject and body. Custom values use {{custom.variable_name}} and are expanded once without recursively interpreting tokens inside their saved values. Unknown tokens remain literal. HTML replacements are escaped for HTML text; do not place variables inside HTML attributes.
Endpoint
POST /v1/accounts/{username}/emails/autoresponders
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: 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: Conditional Send this parameter as a JSON body property. GET /v1/accounts/{username}/emails Contract requirement: 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
from_addressOptional- Send in
- JSON body
- Type
string|email|display-name address- Accepted values
- Any value matching string|email|display-name address
- Example
mailbox@example.com
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 14 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "mailbox@example.com",
"interval_hours": 24,
"interval_seconds": 86400,
"is_html": 1,
"starts_at": "2026-07-10T17:00"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"mailbox@example.com","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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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": "mailbox@example.com",
"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 documented runtime value 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": "mailbox@example.com",
"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 documented runtime value 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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/autoresponders/{id}root reseller userDelete mailbox auto responder.
What this endpoint does
Delete mailbox auto responder.
Operational guidance: Delete one autoresponder. Supplying email_id or email is optional and narrows the deletion to the expected mailbox.
Endpoint
DELETE /v1/accounts/{username}/emails/autoresponders/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. GET /v1/accounts/{username}/emails
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"email": "admin@example.com",
"email_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/autoresponders/{id}root reseller userEdit mailbox auto responder.
What this endpoint does
Edit mailbox auto responder.
Operational guidance: Partially update one autoresponder. Omitted fields, including custom_variables, retain their current values. Supplying custom_variables replaces the complete saved object; send an empty object to clear it. Automatic, custom, and legacy tokens have the same semantics as create.
Endpoint
PATCH /v1/accounts/{username}/emails/autoresponders/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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-16T18:00
Optional `YYYY-MM-DDTHH:MM` local end time. Local server end time; empty clears it.
Validation and use: Optional Send this parameter as a JSON body property.
from_addressOptional- Send in
- JSON body
- Type
string|email|display-name address- Accepted values
- Any value matching string|email|display-name address
- Example
mailbox@example.com
Optional reply-from address or display-name address; defaults to the mailbox address. Reply identity as email or Display Name <email>.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
starts_atOptional- Send in
- JSON body
- Type
string|yyyy-mm-ddthh:mm- Accepted values
- Any value matching string|yyyy-mm-ddthh:mm
- Example
1
Optional `YYYY-MM-DDTHH:MM` local start time. Local server start time; empty clears it.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 15 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "2026-07-16T18:00",
"from_address": "mailbox@example.com",
"interval_hours": 24,
"interval_seconds": 86400,
"is_html": 0,
"starts_at": 1,
"subject": "We received: {{original_subject}}"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/autoresponders/catalogroot reseller userList the server-owned professional autoresponder templates, automatic variables, and custom-variable authoring contract.
What this endpoint does
List the server-owned professional autoresponder templates, automatic variables, and custom-variable authoring contract.
Operational guidance: Load the canonical SHM autoresponder authoring catalog before creating or editing a responder. The response separates automatic incoming-message/mailbox variables from the validated custom-variable contract and contains editable professional presets. Automatic variables are supplied by SHM at delivery time; custom variables are saved per responder and use {{custom.variable_name}} tokens.
Endpoint
GET /v1/accounts/{username}/emails/autoresponders/catalog
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/emails/autoresponders/tableroot reseller userList indexed email autoresponders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email autoresponders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/emails/autoresponders/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/emails
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/autoresponders/tableroot reseller userList indexed email autoresponders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email autoresponders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/emails/autoresponders/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/filtersroot reseller userList email filters.
What this endpoint does
List email filters.
Operational guidance: List email filters. Omit filters to list all account filters, send scope=global for global filters, or send email_id/email for one mailbox.
Endpoint
GET /v1/accounts/{username}/emails/filters
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"email": "info@example.com",
"email_id": 1,
"scope": "global"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/filtersroot reseller userCreate email filter.
What this endpoint does
Create email filter.
Operational guidance: Create an email filter (Sieve-like rules). Use scope=global for account-wide filters, or provide email_id/email for mailbox-specific filters.
Endpoint
POST /v1/accounts/{username}/emails/filters
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
actionsOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
[]
Structured action payload. Optional alternative to `filter_action` / `action`. Alternative legacy actions payload (advanced): actions[0].action + actions[0].dest.
Validation and use: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. GET /v1/accounts/{username}/emails Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
logicalOptional- Send in
- JSON body
- Type
enum- Accepted values
- and, or
- Example
or
Allowed values: or, and.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 14 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": [],
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/filters/{id}root reseller userDelete email filter.
What this endpoint does
Delete email filter.
Operational guidance: Delete an email filter by id. Optional scope and email_id/email can be provided as guards.
Endpoint
DELETE /v1/accounts/{username}/emails/filters/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"email": "info@example.com",
"email_id": 1,
"scope": "mailbox"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/filters/{id}root reseller userEdit email filter.
What this endpoint does
Edit email filter.
Operational guidance: Edit an email filter. PATCH is partial: send only fields that must change.
Endpoint
PATCH /v1/accounts/{username}/emails/filters/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
resource-id
Action target/extra data for actions that require it.
Validation and use: Optional Send this parameter as a JSON body property.
actionsOptional- Send in
- JSON body
- Type
array- Accepted values
- Any value matching array
- Example
[]
Legacy actions payload (advanced).
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
filter_nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
Filter name (must not be empty).
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
logicalOptional- Send in
- JSON body
- Type
enum- Accepted values
- and, or
- Example
and
and|or. Allowed values: and, or.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 14 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"action_extra": "resource-id",
"actions": [],
"email": "admin@example.com",
"email_id": 1,
"enabled": 0,
"filter_action": "discard",
"filter_name": "active",
"filter_scope": "mailbox",
"global": 0,
"logical": "and",
"rules": [],
"scope": "mailbox"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Disable filter
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"enabled": 0
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/filters/tableroot reseller userList indexed global and mailbox email filters for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed global and mailbox email filters for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/emails/filters/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/emails
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/filters/tableroot reseller userList indexed global and mailbox email filters for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed global and mailbox email filters for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/emails/filters/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/forwardersroot reseller userList email forwarders.
What this endpoint does
List email forwarders.
Endpoint
GET /v1/accounts/{username}/emails/forwarders
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/forwardersroot reseller userCreate email forwarder.
What this endpoint does
Create email forwarder.
Operational guidance: Create an email forwarder. Source domain must be owned by the account.
Endpoint
POST /v1/accounts/{username}/emails/forwarders
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
targetRequired- Send in
- JSON body
- Type
string|email- Accepted values
- Any value matching string|email
- Example
mailbox@example.com
Destination email address. Alias of destination. Prefer destination.
Validation and use: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "owner@example.net",
"source": "sales@example.com",
"target": "mailbox@example.com"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"mailbox@example.com"}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Forward sales@ to owner@
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"source": "sales@example.com",
"destination": "owner@example.net"
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/forwarders/{id}root reseller userDelete email forwarder.
What this endpoint does
Delete email forwarder.
Endpoint
DELETE /v1/accounts/{username}/emails/forwarders/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/forwarders/{id}root reseller userEdit email forwarder.
What this endpoint does
Edit email forwarder.
Operational guidance: Edit an email forwarder. PATCH is partial: omit fields you do not want to change.
Endpoint
PATCH /v1/accounts/{username}/emails/forwarders/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
sourceOptional- Send in
- JSON body
- Type
string|email- Accepted values
- Any value matching string|email
- Example
mailbox@example.com
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: Optional Send this parameter as a JSON body property.
targetOptional- Send in
- JSON body
- Type
string|email- Accepted values
- Any value matching string|email
- Example
mailbox@example.com
Destination email address. Alias of destination. Prefer destination.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "new-owner@example.net",
"source": "mailbox@example.com",
"target": "mailbox@example.com"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Change destination
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"destination": "new-owner@example.net"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/forwarders/tableroot reseller userList indexed email forwarders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email forwarders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/emails/forwarders/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/emails
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/forwarders/tableroot reseller userList indexed email forwarders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email forwarders for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/emails/forwarders/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/mailing-listsroot reseller userList Mailman mailing lists.
What this endpoint does
List Mailman mailing lists.
Operational guidance: List Mailman mailing lists for one account. Use address to filter one list.
Endpoint
GET /v1/accounts/{username}/emails/mailing-lists
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter in the query string.
addressOptional- Send in
- Query string
- Type
email|string- Accepted values
- Any value matching email|string
- Example
mailbox@example.com
Optional mailing list address filter. Optional list address filter.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"account_user": "demo",
"address": "mailbox@example.com"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
List account mailing lists
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/mailing-listsroot reseller userCreate Mailman mailing list.
What this endpoint does
Create Mailman mailing list.
Operational guidance: Create a Mailman mailing list. The list address must be under a domain managed by the account.
Endpoint
POST /v1/accounts/{username}/emails/mailing-lists
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
emailOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
admin@example.com
Email address.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
owner_emailOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
admin@example.com
Owner email accepted by this endpoint while it performs: Create Mailman mailing list. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/mailing-lists/{id}root reseller userDelete Mailman mailing list.
What this endpoint does
Delete Mailman mailing list.
Operational guidance: Delete one Mailman mailing list and remove its Exim routing map entries.
Endpoint
DELETE /v1/accounts/{username}/emails/mailing-lists/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Delete list
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/mailing-lists/{id}root reseller userEdit Mailman mailing list.
What this endpoint does
Edit Mailman mailing list.
Operational guidance: Edit a Mailman mailing list. PATCH is partial; send members only when replacing the full member list.
Endpoint
PATCH /v1/accounts/{username}/emails/mailing-lists/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
addressOptional- Send in
- JSON body
- Type
string|email- Accepted values
- Any value matching string|email
- Example
mailbox@example.com
Optional new mailing list address under an account-managed mail domain. Optional new list address.
Validation and use: Optional Send this parameter as a JSON body property.
emailOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
admin@example.com
Email address.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
header_matchesOptional- Send in
- JSON body
- Type
object|string|array- Accepted values
- Any value matching object|string|array
- Example
[]
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: Optional Send this parameter as a JSON body property.
membersOptional- Send in
- JSON body
- Type
object|string|array- Accepted values
- Any value matching object|string|array
- Example
mailbox@example.com
Optional full replacement member array. Optional full replacement member list.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Display name for the list. Display name.
Validation and use: Optional Send this parameter as a JSON body property.
ownerOptional- Send in
- JSON body
- Type
string|email- Accepted values
- Any value matching string|email
- Example
demo
Owner username or owner filter. List owner email address.
Validation and use: Optional Send this parameter as a JSON body property.
owner_emailOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
admin@example.com
Owner email accepted by this endpoint while it performs: Edit Mailman mailing list. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"account_user": "demo",
"address": "mailbox@example.com",
"email": "admin@example.com",
"enabled": 0,
"header_matches": [],
"members": "mailbox@example.com",
"name": "Primary",
"owner": "demo",
"owner_email": "admin@example.com",
"settings": {
"default_nonmember_action": "discard"
}
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/emails/mailing-lists/{id}/membersroot reseller userAdd Mailman mailing list member.
What this endpoint does
Add Mailman mailing list member.
Operational guidance: Add one member to a Mailman mailing list.
Endpoint
POST /v1/accounts/{username}/emails/mailing-lists/{id}/members
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
memberOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mailbox@example.com
Member accepted by this endpoint while it performs: Add Mailman mailing list member. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
statusOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
enabled
Optional member status, defaults to enabled. Optional member status; defaults to enabled.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"account_user": "demo",
"email": "member@example.net",
"member": "mailbox@example.com",
"status": "enabled"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Add member
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"email": "member@example.net"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/mailing-lists/{id}/members/{member_id}root reseller userDelete Mailman mailing list member.
What this endpoint does
Delete Mailman mailing list member.
Operational guidance: Delete one member from a Mailman mailing list.
Endpoint
DELETE /v1/accounts/{username}/emails/mailing-lists/{id}/members/{member_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"member_id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Delete member
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/mailing-lists/tableroot reseller userList indexed Mailman mailing lists for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed Mailman mailing lists for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/emails/mailing-lists/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/emails
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/mailing-lists/tableroot reseller userList indexed Mailman mailing lists for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed Mailman mailing lists for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/emails/mailing-lists/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/messages/contextroot reseller userSummarize mailbox-message access and the mailbox list visible to the current account.
What this endpoint does
Summarize mailbox-message access and the mailbox list visible to the current account.
Operational guidance: Show mailbox-message API context for the current account: whether the mailbox message runtime is available, whether account AI is enabled, and which mailbox ids/emails/folders are visible.
Endpoint
GET /v1/accounts/{username}/emails/messages/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Load mailbox message context
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/emails/spam-settingsroot reseller userGet spam threshold and allow/deny rules.
What this endpoint does
Get spam threshold and allow/deny rules.
Endpoint
GET /v1/accounts/{username}/emails/spam-settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/spam-settings/rulesroot reseller userCreate spam allow/deny rule.
What this endpoint does
Create spam allow/deny rule.
Operational guidance: Add a spam allow/deny rule (whitelist/blacklist).
Endpoint
POST /v1/accounts/{username}/emails/spam-settings/rules
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"pattern": "*@spamdomain.tld",
"type": "blacklist",
"comment": "Block known spam sender domain"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Blacklist spam domain
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"pattern": "*@spamdomain.tld",
"type": "blacklist",
"comment": "Block known spam sender domain"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/emails/spam-settings/rules/{id}root reseller userDelete spam allow/deny rule.
What this endpoint does
Delete spam allow/deny rule.
Endpoint
DELETE /v1/accounts/{username}/emails/spam-settings/rules/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/spam-settings/rules/{id}root reseller userEdit spam allow/deny rule.
What this endpoint does
Edit spam allow/deny rule.
Operational guidance: Edit a spam allow/deny rule. PATCH is partial: omit fields you do not want to change.
Endpoint
PATCH /v1/accounts/{username}/emails/spam-settings/rules/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
patternOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
Search or match pattern. Pattern (must not be empty if provided).
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"comment": "Updated note",
"pattern": "active",
"type": "whitelist"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Update comment
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"comment": "Updated note"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/spam-settings/tableroot reseller userList indexed email spam whitelist/blacklist rules for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email spam whitelist/blacklist rules for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/emails/spam-settings/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/emails
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/spam-settings/tableroot reseller userList indexed email spam whitelist/blacklist rules for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email spam whitelist/blacklist rules for one account. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/emails/spam-settings/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/emails/spam-settings/thresholdroot reseller userUpdate spam threshold score.
What this endpoint does
Update spam threshold score.
Operational guidance: Set SpamAssassin required_score threshold (integer 1..1000).
Endpoint
PATCH /v1/accounts/{username}/emails/spam-settings/threshold
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"score": "5"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/emails/tableroot reseller userList indexed email account rows for one account. The first row can be a passwordless `system_mailbox=true` default collector on the server hostname; it is `readonly=true`, SSO-only, and not editable as a normal mailbox. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email account rows for one account. The first row can be a passwordless `system_mailbox=true` default collector on the server hostname; it is `readonly=true`, SSO-only, and not editable as a normal mailbox. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/emails/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (18)
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: Optional Send this parameter in the query string.
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 the 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 the 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 the 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 the 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 the query string. GET /v1/accounts/{username}/emails
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 18 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"account_user": "demo",
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/emails/tableroot reseller userList indexed email account rows for one account. The first row can be a passwordless `system_mailbox=true` default collector on the server hostname; it is `readonly=true`, SSO-only, and not editable as a normal mailbox. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed email account rows for one account. The first row can be a passwordless `system_mailbox=true` default collector on the server hostname; it is `readonly=true`, SSO-only, and not editable as a normal mailbox. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/emails/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (18)
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: Optional Send this parameter in the query string.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
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 bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. GET /v1/accounts/{username}/emails
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 18 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"account_user": "demo"
},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/webmail/ssoroot reseller userPrepare SHM account Roundcube SSO redirect
What this endpoint does
Prepare SHM account Roundcube SSO redirect
Endpoint
GET /v1/accounts/{username}/webmail/sso
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/webmail/sso' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
File Manager
GET/v1/accounts/{username}/file-managerroot reseller userList files and folders inside the account home directory.
What this endpoint does
List files and folders inside the account home directory.
Endpoint
GET /v1/accounts/{username}/file-manager
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the 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 the 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 the query string. Default: simple.
orderOptional- Send in
- Query string
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Sort order payload.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the 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 the 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: Optional Send this parameter in the query string.
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 the query string. Default: 0.
valueOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 14 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"dir": "public_html",
"draw": 0,
"filter_kind": "all",
"length": 100,
"mode": "simple",
"order": {},
"order_dir": "asc",
"order_idx": 1,
"path": "/",
"search": "account",
"search[value]": "account",
"start": 0,
"value": "updated-content"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/file-manager?path=%2F&mode=simple&value=updated-content&dir=public_html' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/",
"mode": "simple",
"value": "updated-content",
"dir": "public_html"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/file-managerroot reseller userList files and folders inside the account home directory.
What this endpoint does
List files and folders inside the account home directory.
Endpoint
POST /v1/accounts/{username}/file-manager
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
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 as a JSON body property.
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 as a JSON body property. 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 as a JSON body property. 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 as a JSON body property. 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 as a JSON body property. Default: simple.
orderOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Sort order payload.
Validation and use: Optional Send this parameter as a JSON body property.
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction.
Validation and use: Optional Send this parameter as a JSON body property. 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 as a JSON body property. 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 as a JSON body property. 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 as a JSON body property.
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 as a JSON body property. Default: 0.
valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 14 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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_dir": "asc",
"order_idx": 1,
"path": "/",
"search": "account",
"start": 0,
"value": "updated-content"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"updated-content","dir":"public_html"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/",
"mode": "simple",
"value": "updated-content",
"dir": "public_html"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/file-manager/contentroot reseller userRead a text file under the account home directory.
What this endpoint does
Read a text file under the account home directory.
Operational guidance: Read the live content of one text file under the selected account home directory. Use this for website files such as public_html/wp-config.php, .htaccess, PHP, HTML, CSS, JS, logs copied under the account, and similar account-owned files. Send the full relative file path in file, for example file=public_html/wp-config.php. Do not split directory and basename unless the caller already has separate UI path fields. The API enforces account permissions; return the content exactly as the API returns it.
Endpoint
GET /v1/accounts/{username}/file-manager/content
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Read WordPress config
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"file": "public_html/wp-config.php"
},
"json_body": {}
}Read .htaccess
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"file": "public_html/.htaccess"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/file-manager/contentroot reseller userSave a text file under the account home directory.
What this endpoint does
Save a text file under the account home directory.
Endpoint
PATCH /v1/accounts/{username}/file-manager/content
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Example content
Text content to save. New file content (UTF-8). Max 2MB.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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
CreateDirs accepted by this endpoint while it performs: Save a text file under the account home directory. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
file_pathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
public_html
File path accepted by this endpoint while it performs: Save a text file under the account home directory. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"content": "Example content",
"file": "error.log",
"createDirs": 1,
"create_dirs": 0,
"filePath": "public_html",
"file_path": "public_html",
"path": "public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Example content"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"file": "error.log",
"content": "Example content"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/contentroot reseller userRead a text file under the account home directory.
What this endpoint does
Read a text file under the account home directory.
Operational guidance: Read the live content of one text file under the selected account home directory using a JSON body. Use this when the client sends POST for read-compatible file-manager content reads. Prefer GET with query for normal reads.
Endpoint
POST /v1/accounts/{username}/file-manager/content
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property. 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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Read WordPress config
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"file": "public_html/wp-config.php"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/copyroot reseller userCopy files/folders into another destination directory under the account home.
What this endpoint does
Copy files/folders into another destination directory under the account home.
Endpoint
POST /v1/accounts/{username}/file-manager/copy
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
public_html/archive
Destination value or redirect target. Destination directory relative to account home. Missing directories are created. UI alias: `copyPath`.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
copyPathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
public_html
UI compatibility alias for `destination`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. Default: 0.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "public_html/archive",
"files": [
"public_html/index.php"
],
"copyPath": "public_html",
"overwrite": 0
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"public_html/archive","files":["public_html/index.php"]}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "public_html/archive",
"files": [
"public_html/index.php"
]
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/file-manager/downloadroot reseller userDownload SHM file manager file
What this endpoint does
Download SHM file manager file
Endpoint
GET /v1/accounts/{username}/file-manager/download
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the query string.
file_pathOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
public_html
File path accepted by this endpoint while it performs: Download SHM file manager file. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/file-manager/fileroot reseller userCreate an empty file in an existing account directory.
What this endpoint does
Create an empty file in an existing account directory.
Endpoint
POST /v1/accounts/{username}/file-manager/file
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Primary
File name to create. UI alias: `fileName`.
Validation and use: Required Send this parameter as a JSON body property.
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 as a JSON body property.
fileNameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
error.log
UI compatibility alias for `name`.
Validation and use: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. Default: /.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"name": "Primary",
"dir": "public_html",
"fileName": "error.log",
"path": "/"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"name": "Primary"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/folderroot reseller userCreate a folder in an existing account directory.
What this endpoint does
Create a folder in an existing account directory.
Endpoint
POST /v1/accounts/{username}/file-manager/folder
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Primary
Folder name to create. UI alias: `folderName`.
Validation and use: Required Send this parameter as a JSON body property.
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 as a JSON body property.
folderNameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
assets
UI compatibility alias for `name`.
Validation and use: Optional Send this parameter as a JSON body property.
pathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string; default: /
- Example
/
Destination directory relative to account home.
Validation and use: Optional Send this parameter as a JSON body property. Default: /.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"name": "Primary",
"dir": "public_html",
"folderName": "assets",
"path": "/"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"name": "Primary"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/file-manager/itemroot reseller userRename a file/folder and/or change its permissions.
What this endpoint does
Rename a file/folder and/or change its permissions.
Endpoint
PATCH /v1/accounts/{username}/file-manager/item
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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
example.com
UI compatibility alias for `path`.
Validation and use: Optional Send this parameter as a JSON body property.
newNameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
renamed-file.txt
UI compatibility alias for `new_name`.
Validation and use: Optional Send this parameter as a JSON body property.
newPermsOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
0640
UI compatibility alias for `perms`.
Validation and use: Optional Send this parameter as a JSON body property.
new_nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
renamed-file.txt
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: Optional Send this parameter as a JSON body property.
permsOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
0640
Octal permissions like `0640` or `0750`. UI alias: `newPerms`.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "public_html",
"file": "error.log",
"item": "example.com",
"newName": "renamed-file.txt",
"newPerms": "0640",
"new_name": "renamed-file.txt",
"perms": "0640"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "public_html"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/moveroot reseller userMove files/folders into another destination directory under the account home.
What this endpoint does
Move files/folders into another destination directory under the account home.
Endpoint
POST /v1/accounts/{username}/file-manager/move
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
public_html/archive
Destination value or redirect target. Destination directory relative to account home. Missing directories are created. UI alias: `movePath`.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
movePathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
public_html
UI compatibility alias for `destination`.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. Default: 0.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "public_html/archive",
"files": [
"public_html/index.php"
],
"movePath": "public_html",
"overwrite": 0
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"public_html/archive","files":["public_html/index.php"]}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "public_html/archive",
"files": [
"public_html/index.php"
]
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/file-manager/trashroot reseller userEmpty the account trash directory.
What this endpoint does
Empty the account trash directory.
Endpoint
DELETE /v1/accounts/{username}/file-manager/trash
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| Field | Documented type or shape |
|---|---|
trash | string |
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/trashroot reseller userMove files/folders into the account trash directory.
What this endpoint does
Move files/folders into the account trash directory.
Endpoint
POST /v1/accounts/{username}/file-manager/trash
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"files": [
"public_html/index.php"
]
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"]}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"files": [
"public_html/index.php"
]
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/unziproot reseller userExtract one or more ZIP archives into a destination folder. Symlink entries are allowed only when their extracted targets resolve inside the account home; unsafe symlinks or entries nested under archive symlinks are rejected.
What this endpoint does
Extract one or more ZIP archives into a destination folder. Symlink entries are allowed only when their extracted targets resolve inside the account home; unsafe symlinks or entries nested under archive symlinks are rejected.
Endpoint
POST /v1/accounts/{username}/file-manager/unzip
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
public_html/archive
Destination value or redirect target. Destination directory relative to account home. Missing directories are created. UI alias: `unzipPath`.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
unzipPathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
public_html
UI compatibility alias for `destination`.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "public_html/archive",
"files": [
"public_html/index.php"
],
"unzipPath": "public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"public_html/archive","files":["public_html/index.php"]}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"destination": "public_html/archive",
"files": [
"public_html/index.php"
]
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/uploadroot reseller userUpload one or more files into an existing account directory.
What this endpoint does
Upload one or more files into an existing account directory.
Endpoint
POST /v1/accounts/{username}/file-manager/upload
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Example content
Single-file convenience alias. Base64 file contents. Supports optional `data:*;base64,...` prefix.
Validation and use: Optional Send this parameter as a JSON body property.
content_base64Optional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Example content
Content base64 accepted by this endpoint while it performs: Upload one or more files into an existing account directory. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
file_nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
error.log
File name accepted by this endpoint while it performs: Upload one or more files into an existing account directory. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. 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
[]
Array of upload objects: `[{\"name\":\"hello.txt\",\"content_b64\":\"SGVsbG8K\"}]`. Use this or the single-file `name` + `content_b64` form.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Single-file convenience alias used with content_b64.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. Default: /.
staged_pathOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
public_html
Staged path accepted by this endpoint while it performs: Upload one or more files into an existing account directory. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 10 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"content_b64": "Example content",
"content_base64": "Example content",
"dir": "public_html",
"file_name": "error.log",
"files": [],
"name": "Primary",
"overwrite": 0,
"path": "/",
"staged_path": "public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary","dir":"public_html","file_name":"error.log"}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/",
"name": "Primary",
"dir": "public_html",
"file_name": "error.log"
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/file-manager/ziproot reseller userCreate a ZIP archive from one or more files/folders under the account home. Symlinks are preserved only when their resolved targets stay inside the account home; symlinks pointing outside the selected archive scope are allowed with warnings.
What this endpoint does
Create a ZIP archive from one or more files/folders under the account home. Symlinks are preserved only when their resolved targets stay inside the account home; symlinks pointing outside the selected archive scope are allowed with warnings.
Endpoint
POST /v1/accounts/{username}/file-manager/zip
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
backups/site-files.zip
Destination archive path relative to account home. `.zip` is added automatically if missing. UI alias: `zipPath`.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"archive": "backups/site-files.zip",
"files": [
"public_html/index.php"
],
"overwrite": 0,
"zipPath": "public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"backups/site-files.zip","files":["public_html/index.php"]}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"archive": "backups/site-files.zip",
"files": [
"public_html/index.php"
]
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Ftp
GET/v1/accounts/{username}/ftp/accountsroot reseller userList FTP accounts.
What this endpoint does
List FTP accounts.
Endpoint
GET /v1/accounts/{username}/ftp/accounts
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ftp/accountsroot reseller userCreate FTP account.
What this endpoint does
Create FTP account.
Operational guidance: Create an FTP account. ftp_domain defaults to the account main domain. access_path is required.
Endpoint
POST /v1/accounts/{username}/ftp/accounts
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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
Accesspath accepted by this endpoint while it performs: Create FTP account. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
quotaOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
100
Quota value.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 9 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/ftp/accounts/{id}root reseller userDelete FTP account.
What this endpoint does
Delete FTP account.
Endpoint
DELETE /v1/accounts/{username}/ftp/accounts/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/ftp/accounts/{id}root reseller userEdit FTP account.
What this endpoint does
Edit FTP account.
Operational guidance: Partial update endpoint. Send one or more editable FTP fields.
Endpoint
PATCH /v1/accounts/{username}/ftp/accounts/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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
Access path accepted by this endpoint while it performs: Edit FTP account. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
passwordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Password value.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
FTP
GET/v1/accounts/{username}/ftp/accounts/tableroot reseller userList SHM FTP accounts for table view
What this endpoint does
List SHM FTP accounts for table view
Endpoint
GET /v1/accounts/{username}/ftp/accounts/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the 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 the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"account_user": "demo",
"draw": 1,
"length": 25,
"search": "account",
"start": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"search": "account",
"draw": 1,
"start": 0,
"length": 25
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ftp/accounts/tableroot reseller userList SHM FTP accounts for table view
What this endpoint does
List SHM FTP accounts for table view
Endpoint
POST /v1/accounts/{username}/ftp/accounts/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the 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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"account_user": "demo"
},
"json_body": {
"draw": 1,
"length": 25,
"search": "account",
"start": 0
},
"query_or_json_parameters": {}
}
Runnable workflow example
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}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"search": "account",
"draw": 1,
"start": 0,
"length": 25
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Git
POST/v1/accounts/{username}/git/actions/{action}root reseller userRun Git Manager action.
What this endpoint does
Run Git Manager action.
Operational guidance: Action endpoint. Replace {action} with a supported action name. Examples below include one request per action.
Endpoint
POST /v1/accounts/{username}/git/actions/{action}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
clone_branchOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
main
For clone: branch name (optional).
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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 reference template contains all 21 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"action": "scan",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"add_all": 1,
"branch": "main",
"checkout_branch": "main",
"clone_branch": "main",
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Health
GET/v1/healthroot reseller userEngine status and metadata.
What this endpoint does
Engine status and metadata.
Endpoint
GET /v1/health
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (0)
This endpoint accepts no path, query, or JSON parameters.
Complete request template
This reference template contains all 0 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/health' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "access_denied",
"message": "The API key is not authorized for this endpoint, resource, role, or source IP."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Information
GET/v1/accounts/{username}/informationroot reseller userFetch bounded account information extras used by the account dashboard. Set `include_domains=0` when the domain list is loaded independently through the indexed domains table.
What this endpoint does
Fetch bounded account information extras used by the account dashboard. Set `include_domains=0` when the domain list is loaded independently through the indexed domains table.
Endpoint
GET /v1/accounts/{username}/information
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the query string. Default: true.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"include_domains": true
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/informationroot reseller userFetch bounded account information extras used by the account dashboard. Set `include_domains=0` when the domain list is loaded independently through the indexed domains table.
What this endpoint does
Fetch bounded account information extras used by the account dashboard. Set `include_domains=0` when the domain list is loaded independently through the indexed domains table.
Endpoint
POST /v1/accounts/{username}/information
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property. Default: true.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"include_domains": true
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/information/health-centerroot reseller userAggregate account website, PHP, SSL, backup, and mail health into one summary for the current account.
What this endpoint does
Aggregate account website, PHP, SSL, backup, and mail health into one summary for the current account.
Endpoint
GET /v1/accounts/{username}/information/health-center
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned domain to focus on. Defaults to the main domain.
Validation and use: Optional Send this parameter in the 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 the 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 the query string.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"path": "/home/demo/public_html",
"scheme": "http"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "example.com",
"path": "/home/demo/public_html",
"scheme": "http"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/information/php-pools/actionroot reseller userRun a PHP-FPM pool action for one account-owned unit.
What this endpoint does
Run a PHP-FPM pool action for one account-owned unit.
Endpoint
POST /v1/accounts/{username}/information/php-pools/action
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
unitRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
php83-php-fpm.service
PHP-FPM systemd unit name to control.
Validation and use: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"cmd": "start",
"unit": "php83-php-fpm.service"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"php83-php-fpm.service","cmd":"start"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"unit": "php83-php-fpm.service",
"cmd": "start"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/information/php-pools/statusroot reseller userFetch SHM account PHP-FPM pool status for one unit.
What this endpoint does
Fetch SHM account PHP-FPM pool status for one unit.
Endpoint
POST /v1/accounts/{username}/information/php-pools/status
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
php83-php-fpm.service
PHP-FPM systemd unit name returned by the information page or page context.
Validation and use: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"unit": "php83-php-fpm.service"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"php83-php-fpm.service"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"unit": "php83-php-fpm.service"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Logs
GET/v1/accounts/{username}/logsroot reseller userRead/tail an account log file (access/error/modsecurity/http_guard/ftp/login/mail_auth).
What this endpoint does
Read/tail an account log file (access/error/modsecurity/http_guard/ftp/login/mail_auth).
Operational guidance: Fetch account log content. Use GET /v1/logs/files first to list available files for the selected log type.
Endpoint
GET /v1/accounts/{username}/logs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (16)
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 the 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 the 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 the query string. Contract requirement: context.
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 the query string.
fileB64Optional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
YWNjZXNzLmxvZw==
Optional explicit log file selection (from /logs/files).
Validation and use: Optional Send this parameter in the query string. 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 the query string. GET /v1/accounts/{username}/ftp
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 the query string. GET /v1/accounts/{username}/ftp
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 the 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 the 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 the 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 the 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 the 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 the 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 the 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 the query string.
Complete request template
This reference template contains all 16 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"logType": "access",
"action": "FetchLog",
"domain": "example.com",
"download": "FetchLog",
"fileB64": "YWNjZXNzLmxvZw==",
"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": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Read recent access.log lines
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"logType": "access",
"domain": "example.com",
"lines": 500
}
}Requires a documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| Field | Documented type or shape |
|---|---|
content | string |
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/logsroot reseller userRead/tail an account log file (access/error/modsecurity/http_guard/ftp/login/mail_auth).
What this endpoint does
Read/tail an account log file (access/error/modsecurity/http_guard/ftp/login/mail_auth).
Operational guidance: POST form of GET /v1/logs with the same accepted fields and actions.
Endpoint
POST /v1/accounts/{username}/logs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (16)
usernameRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
demo
Target SHM account username. Root may target any authorized account, a 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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. Contract requirement: context.
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 as a JSON body property.
fileB64Optional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
YWNjZXNzLmxvZw==
Optional explicit log file selection (from /logs/files).
Validation and use: Optional Send this parameter as a JSON body property. 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 as a JSON body property. GET /v1/accounts/{username}/ftp
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 as a JSON body property. GET /v1/accounts/{username}/ftp
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 as a JSON body property.
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 as a JSON body property. 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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 16 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"logType": "access",
"action": "FetchLog",
"domain": "example.com",
"download": "FetchLog",
"fileB64": "YWNjZXNzLmxvZw==",
"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": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"logType": "access"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/logs/filesroot reseller userList available account log files (access/error/modsecurity/http_guard/ftp/login/mail_auth).
What this endpoint does
List available account log files (access/error/modsecurity/http_guard/ftp/login/mail_auth).
Endpoint
GET /v1/accounts/{username}/logs/files
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
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.
Validation and use: Required Send this parameter in the query string.
domainOptional- 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.
Validation and use: Optional Send this parameter in the query string.
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.
Validation and use: Optional Send this parameter in the query string. GET /v1/accounts/{username}/ftp
ftp_accountOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
deploy@example.com
FTP account username.
Validation and use: Optional Send this parameter in the query string. GET /v1/accounts/{username}/ftp
log_typeOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
access
Log type.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/logs/files?logType=access' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"logType": "access"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/logs/filesroot reseller userList available account log files (access/error/modsecurity/http_guard/ftp/login/mail_auth).
What this endpoint does
List available account log files (access/error/modsecurity/http_guard/ftp/login/mail_auth).
Endpoint
POST /v1/accounts/{username}/logs/files
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
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.
Validation and use: Required Send this parameter as a JSON body property.
domainOptional- 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.
Validation and use: Optional Send this parameter as a JSON body property.
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.
Validation and use: Optional Send this parameter as a JSON body property. GET /v1/accounts/{username}/ftp
ftp_accountOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
deploy@example.com
FTP account username.
Validation and use: Optional Send this parameter as a JSON body property. GET /v1/accounts/{username}/ftp
log_typeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
access
Log type.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"logType": "access",
"domain": "example.com",
"ftpAccount": "deploy@example.com",
"ftp_account": "deploy@example.com",
"log_type": "access"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"access"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"logType": "access"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Mail Delivery Reports
GET/v1/accounts/{username}/mail-delivery-reportsroot reseller userMail delivery reports based on Exim logs (per-account view).
What this endpoint does
Mail delivery reports based on Exim logs (per-account view).
Endpoint
GET /v1/accounts/{username}/mail-delivery-reports
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the 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 the 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 the query string.
sender_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
mailbox@example.com
Sender filter accepted by this endpoint while it performs: Mail delivery reports based on Exim logs (per-account view). Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the 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 the query string. Default: all.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"status": "all",
"direction": "outgoing",
"sender": "mailbox@example.com",
"sender_filter": "mailbox@example.com"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/mail-delivery-reportsroot reseller userMail delivery reports based on Exim logs (per-account view).
What this endpoint does
Mail delivery reports based on Exim logs (per-account view).
Endpoint
POST /v1/accounts/{username}/mail-delivery-reports
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property. 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 as a JSON body property. 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 as a JSON body property. 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 as a JSON body property.
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 as a JSON body property.
sender_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mailbox@example.com
Sender filter accepted by this endpoint while it performs: Mail delivery reports based on Exim logs (per-account view). Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. Default: all.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"status": "all",
"direction": "outgoing",
"sender": "mailbox@example.com",
"sender_filter": "mailbox@example.com"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/mail-delivery-reports/contextroot reseller userDeliverability summary for one account-owned mailbox domain, including managed and public MX/SPF/DKIM/DMARC, MX host resolution, reverse DNS for the account sending IP, and a bounded 24-hour Exim trace overview.
What this endpoint does
Deliverability summary for one account-owned mailbox domain, including managed and public MX/SPF/DKIM/DMARC, MX host resolution, reverse DNS for the account sending IP, and a bounded 24-hour Exim trace overview.
Operational guidance: Run the preferred account mail deliverability diagnosis. It combines owned mailbox scope, public and managed MX/SPF/DKIM/DMARC evidence, public-routability validation for every MX host, reverse-DNS context for the account sending IP, and a bounded 24-hour Exim delivery summary. Use the full mail-delivery-reports endpoint with mailbox/status filters when a specific message trace is needed.
Endpoint
GET /v1/accounts/{username}/mail-delivery-reports/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 account-owned mail domain to focus on. Defaults to the main domain. Optional account-owned mail domain. Defaults to the main account domain. Foreign domains are rejected.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain": "mail.example.com"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Mail Security
GET/v1/accounts/{username}/mail-securityroot reseller userFetch the SHM Protected Mail account context. Supplying paging parameters bounds the mailbox projection while recent events and alerts remain capped at 30 rows each; omitting paging parameters preserves the legacy full-mailbox response.
What this endpoint does
Fetch the SHM Protected Mail account context. Supplying paging parameters bounds the mailbox projection while recent events and alerts remain capped at 30 rows each; omitting paging parameters preserves the legacy full-mailbox response.
Operational guidance: Fetch Protected Mail status for all mailboxes in an account. The response includes mailbox protected_mail enabled state, twofa_mode, twofa_configured, app password metadata only, recent auth events, alerts, and whether account 2FA is enabled. App password secrets and mailbox TOTP secrets are never returned by this endpoint.
Endpoint
GET /v1/accounts/{username}/mail-security
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 bounded mailbox paging.
Validation and use: Optional Send this parameter in the query string.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the 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 the query string.
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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"draw": 1,
"length": 25,
"search": "account",
"search_value": "account",
"start": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/mail-security/mailboxes/{email}/lockdownroot reseller userLock down one exact account-owned compromised mailbox. Suspends mailbox login and authenticated outbound sending while preserving the current incoming state, revokes every app password, rebuilds and verifies Exim suspension maps, freezes exact authenticated-mailbox messages already in the Exim queue, removes and verifies Roundcube sessions, and repeatedly kicks/verifies Dovecot sessions. Returns warning rather than success when any verification is incomplete.
What this endpoint does
Lock down one exact account-owned compromised mailbox. Suspends mailbox login and authenticated outbound sending while preserving the current incoming state, revokes every app password, rebuilds and verifies Exim suspension maps, freezes exact authenticated-mailbox messages already in the Exim queue, removes and verifies Roundcube sessions, and repeatedly kicks/verifies Dovecot sessions. Returns warning rather than success when any verification is incomplete.
Operational guidance: Lock down one exact compromised mailbox after explicit confirmation. SHM preserves incoming delivery state, suspends login and authenticated outbound sending, revokes all app passwords, freezes exact authenticated-mailbox queue messages, removes Roundcube sessions, kicks Dovecot sessions, and verifies every resulting state. A warning response means one or more checks remain incomplete and must never be described as fully secured.
Endpoint
POST /v1/accounts/{username}/mail-security/mailboxes/{email}/lockdown
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (3)
emailRequired- Send in
- URL path
- Type
email- Accepted values
- Any value matching email
- Example
mail@example.com
Exact account-owned 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"email": "mail@example.com",
"username": "exampleacct"
},
"query_parameters": {},
"json_body": {
"reason": "Customer reported authenticated spam sending"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Lock down one compromised mailbox
{
"path_parameters": {
"username": "exampleacct",
"email": "mail@example.com"
},
"query_parameters": {},
"json_body": {
"reason": "Customer reported authenticated spam sending"
}
}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"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Mysql Processes
GET/v1/accounts/{username}/mysql-processesroot reseller userList MySQL/MariaDB processlist filtered to the current account scope.
What this endpoint does
List MySQL/MariaDB processlist filtered to the current account scope.
Endpoint
GET /v1/accounts/{username}/mysql-processes
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
drawOptional- Send in
- Query string
- Type
int- Accepted values
- Any value matching int; default: 0
- Example
0
(mode=full) DataTables draw counter.
Validation and use: Optional Send this parameter in the query string. Default: 0.
lengthOptional- Send in
- Query string
- Type
int- Accepted values
- Any value matching int; default: 25
- Example
25
(mode=full) Page size.
Validation and use: Optional Send this parameter in the query string. Minimum 1. Maximum 200. Default: 25.
modeOptional- Send in
- Query string
- Type
enum- Accepted values
- simple, full
- Example
simple
Response shape. `full` supports pagination/search/order.
Validation and use: Optional Send this parameter in the query string. Default: simple.
orderOptional- Send in
- Query string
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Sort order payload.
Validation and use: Optional Send this parameter in the query string.
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
desc
(mode=full) Sort direction.
Validation and use: Optional Send this parameter in the query string. Default: desc.
order_idxOptional- Send in
- Query string
- Type
enum- Accepted values
- 0, 1, 2, 3, 4, 5, 6, 7
- Example
1
(mode=full) Sort column index.
Validation and use: Optional Send this parameter in the query string. Default: 1.
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 the query string.
search.valueOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
account
Search value accepted by this endpoint while it performs: List MySQL/MariaDB processlist filtered to the current account scope. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
startOptional- Send in
- Query string
- Type
int- Accepted values
- Any value matching int; default: 0
- Example
0
(mode=full) Row offset.
Validation and use: Optional Send this parameter in the query string. Default: 0.
valueOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"draw": 0,
"length": 25,
"mode": "simple",
"order": {},
"order_dir": "desc",
"order_idx": 1,
"search": "account",
"search.value": "account",
"start": 0,
"value": "updated-content"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/mysql-processes?mode=simple&value=updated-content&search.value=account&order=%5Bobject+Object%5D' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"mode": "simple",
"value": "updated-content",
"search.value": "account",
"order": {}
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| Field | Documented type or shape |
|---|---|
data[] | ["pid","user","host","db","command","time","state","info","killable"] |
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/mysql-processesroot reseller userList MySQL/MariaDB processlist filtered to the current account scope.
What this endpoint does
List MySQL/MariaDB processlist filtered to the current account scope.
Endpoint
POST /v1/accounts/{username}/mysql-processes
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
drawOptional- Send in
- JSON body
- Type
int- Accepted values
- Any value matching int; default: 0
- Example
0
(mode=full) DataTables draw counter.
Validation and use: Optional Send this parameter as a JSON body property. Default: 0.
lengthOptional- Send in
- JSON body
- Type
int- Accepted values
- Any value matching int; default: 25
- Example
25
(mode=full) Page size.
Validation and use: Optional Send this parameter as a JSON body property. Minimum 1. Maximum 200. Default: 25.
modeOptional- Send in
- JSON body
- Type
enum- Accepted values
- simple, full
- Example
simple
Response shape. `full` supports pagination/search/order.
Validation and use: Optional Send this parameter as a JSON body property. Default: simple.
orderOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Sort order payload.
Validation and use: Optional Send this parameter as a JSON body property.
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
desc
(mode=full) Sort direction.
Validation and use: Optional Send this parameter as a JSON body property. Default: desc.
order_idxOptional- Send in
- JSON body
- Type
enum- Accepted values
- 0, 1, 2, 3, 4, 5, 6, 7
- Example
1
(mode=full) Sort column index.
Validation and use: Optional Send this parameter as a JSON body property. Default: 1.
searchOptional- Send in
- JSON body
- 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 as a JSON body property.
search.valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
account
Search value accepted by this endpoint while it performs: List MySQL/MariaDB processlist filtered to the current account scope. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
startOptional- Send in
- JSON body
- Type
int- Accepted values
- Any value matching int; default: 0
- Example
0
(mode=full) Row offset.
Validation and use: Optional Send this parameter as a JSON body property. Default: 0.
valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"draw": 0,
"length": 25,
"mode": "simple",
"order": {},
"order_dir": "desc",
"order_idx": 1,
"search": "account",
"search.value": "account",
"start": 0,
"value": "updated-content"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"simple","value":"updated-content","search.value":"account","order":{}}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"mode": "simple",
"value": "updated-content",
"search.value": "account",
"order": {}
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/mysql-processes/{id}root reseller userKill a MySQL/MariaDB processlist entry by id (if owned by the account database users).
What this endpoint does
Kill a MySQL/MariaDB processlist entry by id (if owned by the account database users).
Endpoint
DELETE /v1/accounts/{username}/mysql-processes/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (2)
idRequired- Send in
- URL path
- Type
int- Accepted values
- Any value matching int
- Example
1
MySQL PROCESSLIST.ID
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/mysql-processes/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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Nodejs
GET/v1/accounts/{username}/nodejs/appsroot reseller userList Node.js applications with runtime status.
What this endpoint does
List Node.js applications with runtime status.
Endpoint
GET /v1/accounts/{username}/nodejs/apps
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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- Accepted values
- Any value matching string
- Example
1
Application ID.
Validation and use: Optional Send this parameter in the query string. GET /v1/accounts/{username}/nodejs/apps
drawOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
1
DataTables draw counter.
Validation and use: Optional Send this parameter in the query string.
f_domainOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
example.com
F domain query parameter.
Validation and use: Optional Send this parameter in the query string.
f_modeOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
all
F mode query parameter.
Validation and use: Optional Send this parameter in the query string.
f_statusOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
all
F status query parameter.
Validation and use: Optional Send this parameter in the query string.
f_versionOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
current
F version query parameter.
Validation and use: Optional Send this parameter in the query string.
lengthOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
25
Page size.
Validation and use: Optional Send this parameter in the 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 the query string.
search_valueOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
account
Search value query parameter.
Validation and use: Optional Send this parameter in the query string.
startOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
0
Row offset.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"app_id": 1,
"draw": 1,
"f_domain": "example.com",
"f_mode": "all",
"f_status": "all",
"f_version": "current",
"length": 25,
"search": "account",
"search_value": "account",
"start": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps?draw=1&start=0&length=25&search=account' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"draw": 1,
"start": 0,
"length": 25,
"search": "account"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/nodejs/appsroot reseller userCreate a Node.js application.
What this endpoint does
Create a Node.js application.
Operational guidance: Create a Node.js application configuration (PM2-managed). Port assignment may change if requested port is busy.
Endpoint
POST /v1/accounts/{username}/nodejs/apps
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
cwdRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
public_html
Working directory under account home (relative or absolute under /home/{username}).
Validation and use: Required Send this parameter as a JSON body property.
domainRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
example.com
Domain that belongs to the account.
Validation and use: Required Send this parameter as a JSON body property.
modeRequired- Send in
- JSON body
- Type
enum- Accepted values
- production, development
- Example
production
Runtime mode: production|development (affects NODE_ENV and watch mode). Allowed values: production, development.
Validation and use: Required Send this parameter as a JSON body property.
nameRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
api-engine
Unique app name within the account.
Validation and use: Required Send this parameter as a JSON body property.
node_versionRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
20
Node.js version installed on server (example: "20").
Validation and use: Required Send this parameter as a JSON body property.
portRequired- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
3001
Requested port. Engine may assign a different port if busy.
Validation and use: Required Send this parameter as a JSON body property.
start_cmdRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
npm start
Start command (e.g. "npm start").
Validation and use: Required Send this parameter as a JSON body property.
envOptional- Send in
- JSON body
- Type
string|array- Accepted values
- Any value matching string|array
- Example
FOO=bar BAZ=qux
Environment variables. Accepts newline-separated KEY=VALUE string or array/object (see env_json).
Validation and use: Optional Send this parameter as a JSON body property.
env_jsonOptional- Send in
- JSON body
- Type
object|array|string- Accepted values
- Any value matching object|array|string
- Example
[]
Alternative to env: JSON object/array of env vars (advanced).
Validation and use: Optional Send this parameter as a JSON body property.
start_fileOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
error.log
Optional start file path relative to cwd (advanced).
Validation and use: Optional Send this parameter as a JSON body property. Use the relevant list/read endpoint for this resource and copy the returned file name.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"cwd": "public_html",
"domain": "example.com",
"mode": "production",
"name": "api-engine",
"node_version": "20",
"port": 3001,
"start_cmd": "npm start",
"env": "FOO=bar\nBAZ=qux",
"env_json": [],
"start_file": "error.log"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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","start_cmd":"npm start","port":3001,"mode":"production","node_version":"20","env":"FOO=bar\nBAZ=qux"}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create app
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"name": "api-engine",
"domain": "example.com",
"cwd": "public_html",
"start_cmd": "npm start",
"port": 3001,
"mode": "production",
"node_version": "20",
"env": "FOO=bar\nBAZ=qux"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/nodejs/apps/{id}root reseller userDelete a Node.js application.
What this endpoint does
Delete a Node.js application.
Endpoint
DELETE /v1/accounts/{username}/nodejs/apps/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/nodejs/apps/{id}root reseller userGet a single Node.js application configuration.
What this endpoint does
Get a single Node.js application configuration.
Endpoint
GET /v1/accounts/{username}/nodejs/apps/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/nodejs/apps/{id}root reseller userEdit a Node.js application configuration.
What this endpoint does
Edit a Node.js application configuration.
Operational guidance: Edit Node.js application configuration. PATCH is partial: send only fields that must change.
Endpoint
PATCH /v1/accounts/{username}/nodejs/apps/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (12)
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.
cwdOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
/home/demo/public_html
Working directory under account home.
Validation and use: Optional Send this parameter as a JSON body property.
domainOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
example.com
Domain that belongs to the account.
Validation and use: Optional Send this parameter as a JSON body property.
envOptional- Send in
- JSON body
- Type
string|array- Accepted values
- Any value matching string|array
- Example
FOO=bar NODE_OPTIONS=--max-old-space-size=256
Environment variables (newline KEY=VALUE) or object/array.
Validation and use: Optional Send this parameter as a JSON body property.
env_jsonOptional- Send in
- JSON body
- Type
object|array|string- Accepted values
- Any value matching object|array|string
- Example
[]
Alternative to env (advanced).
Validation and use: Optional Send this parameter as a JSON body property.
modeOptional- Send in
- JSON body
- Type
enum- Accepted values
- production, development
- Example
production
Runtime mode: production|development. Allowed values: production, development.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Unique app name within the account.
Validation and use: Optional Send this parameter as a JSON body property.
node_versionOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
20
Node.js version installed on server (example: "20").
Validation and use: Optional Send this parameter as a JSON body property.
portOptional- Send in
- JSON body
- Type
integer|string- Accepted values
- Any value matching integer|string
- Example
3010
Requested port. Engine may assign a different port if busy.
Validation and use: Optional Send this parameter as a JSON body property.
start_cmdOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
npm start
Start command (e.g. "npm start").
Validation and use: Optional Send this parameter as a JSON body property.
start_fileOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
error.log
Optional start file path relative to cwd (advanced).
Validation and use: Optional Send this parameter as a JSON body property. Use the relevant list/read endpoint for this resource and copy the returned file name.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"cwd": "/home/demo/public_html",
"domain": "example.com",
"env": "FOO=bar\nNODE_OPTIONS=--max-old-space-size=256",
"env_json": [],
"mode": "production",
"name": "Primary",
"node_version": "20",
"port": 3010,
"start_cmd": "npm start",
"start_file": "error.log"
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/1' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"port":3010}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Change requested port
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"port": 3010
}
}Requires a documented runtime value before QA can execute this request.
Update env
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"env": "FOO=bar\nNODE_OPTIONS=--max-old-space-size=256"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/nodejs/apps/{id}/actions/{action}root reseller userRun Node.js app lifecycle action.
What this endpoint does
Run Node.js app lifecycle action.
Operational guidance: Action endpoint. Replace {action} with a supported action name. Path {id} is the Node.js app id. Use repair to clear stale PM2/process state for this app only.
Endpoint
POST /v1/accounts/{username}/nodejs/apps/{id}/actions/{action}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (3)
actionRequired- Send in
- URL path
- Type
enum- Accepted values
- start, stop, restart, repair
- Example
start
Path parameter. 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 reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"action": "start",
"id": 3,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Action: start
{
"path_parameters": {
"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": {
"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": {
"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": {
"id": 3,
"action": "repair"
},
"query_parameters": {},
"json_body": {}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/nodejs/apps/{id}/logsroot reseller userRead Node.js app stdout/stderr logs.
What this endpoint does
Read Node.js app stdout/stderr logs.
Endpoint
GET /v1/accounts/{username}/nodejs/apps/{id}/logs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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- Accepted values
- Any value matching int|string
- Example
200
Number of lines to return. Optional log tail size. Defaults to `200`.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {
"lines": 200
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/nodejs/apps/{id}/npm-installroot reseller userRun npm install inside Node.js app root and return output.
What this endpoint does
Run npm install inside Node.js app root and return output.
Operational guidance: Run npm install inside the Node.js app cwd. Returns combined output (trimmed if large).
Endpoint
POST /v1/accounts/{username}/nodejs/apps/{id}/npm-install
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
timeout_secondsOptional- Send in
- JSON body
- Type
int|string|integer- Accepted values
- Any value matching int|string|integer
- Example
1800
Timeout in seconds. Timeout in seconds (min 60, max 3600; default 1200).
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"timeout_seconds": 1800
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/nodejs/apps/1/npm-install' \
-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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
npm install (default timeout)
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
npm install (30 min timeout)
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"timeout_seconds": 1800
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/nodejs/discoveryroot reseller userDiscover runnable Node.js projects under account home.
What this endpoint does
Discover runnable Node.js projects under account home.
Endpoint
GET /v1/accounts/{username}/nodejs/discovery
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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- Accepted values
- Any value matching int|string
- Example
25
Result size limit.
Validation and use: Optional Send this parameter in the query string.
max_depthOptional- Send in
- Query string
- Type
int|string- Accepted values
- Any value matching int|string
- Example
200
Max depth query parameter.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"limit": 25,
"max_depth": 200
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/nodejs/discovery?limit=25&max_depth=200' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"limit": 25,
"max_depth": 200
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/nodejs/domainsroot reseller userList account domains available for Node.js app assignment.
What this endpoint does
List account domains available for Node.js app assignment.
Endpoint
GET /v1/accounts/{username}/nodejs/domains
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/nodejs/ports/checkroot reseller userCheck requested Node.js port and provide a free suggestion.
What this endpoint does
Check requested Node.js port and provide a free suggestion.
Operational guidance: Checks whether a port is free/usable for a Node.js app and suggests an alternative if needed.
Endpoint
POST /v1/accounts/{username}/nodejs/ports/check
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 port number.
Validation and use: Required Send this parameter as a JSON body property.
app_idOptional- Send in
- JSON body
- Type
int|string|integer- Accepted values
- Any value matching int|string|integer
- Example
1
Application ID. Optional app id context (useful when checking the current port of an existing app). Alias: id.
Validation and use: Optional Send this parameter as a JSON body property. 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. Alias of app_id. Prefer app_id.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned id value.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"port": 3000,
"app_id": 1,
"id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Check port 3000
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"port": 3000
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Page Context
GET/v1/accounts/{username}/page-contextroot reseller userFetch bounded SHM account shell context from the current indexed account summary. Large domain, mailbox, FTP, and database collections are intentionally excluded and must be read through paginated table endpoints.
What this endpoint does
Fetch bounded SHM account shell context from the current indexed account summary. Large domain, mailbox, FTP, and database collections are intentionally excluded and must be read through paginated table endpoints.
Endpoint
GET /v1/accounts/{username}/page-context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Password
PATCH/v1/accounts/{username}/passwordroot reseller userUpdate account password.
What this endpoint does
Update account password.
Operational guidance: Updates an account password. This action invalidates the account session (forces re-login).
Endpoint
PATCH /v1/accounts/{username}/password
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"password": "STRONG_PASSWORD",
"new_password": "STRONG_PASSWORD"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Rotate password
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"password": "STRONG_PASSWORD"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PgSQL Processes
GET/v1/accounts/{username}/pgsql-processesroot reseller userList PostgreSQL backend processes filtered to the current account PostgreSQL users and databases.
What this endpoint does
List PostgreSQL backend processes filtered to the current account PostgreSQL users and databases.
Endpoint
GET /v1/accounts/{username}/pgsql-processes
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
orderOptional- Send in
- Query string
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Sort order payload.
Validation and use: Optional Send this parameter in the query string.
searchOptional- Send in
- Query string
- 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 the query string.
search.valueOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
account
Search value accepted by this endpoint while it performs: List PostgreSQL backend processes filtered to the current account PostgreSQL users and databases. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter in the query string.
valueOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"order": {},
"search": "account",
"search.value": "account",
"value": "updated-content"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/pgsql-processes?value=updated-content&search.value=account&order=%5Bobject+Object%5D&search=account' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"value": "updated-content",
"search.value": "account",
"order": {},
"search": "account"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/pgsql-processesroot reseller userList PostgreSQL backend processes filtered to the current account PostgreSQL users and databases.
What this endpoint does
List PostgreSQL backend processes filtered to the current account PostgreSQL users and databases.
Endpoint
POST /v1/accounts/{username}/pgsql-processes
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
orderOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Sort order payload.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
search.valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
account
Search value accepted by this endpoint while it performs: List PostgreSQL backend processes filtered to the current account PostgreSQL users and databases. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"order": {},
"search": "account",
"search.value": "account",
"value": "updated-content"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 '{"value":"updated-content","search.value":"account","order":{},"search":"account"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"value": "updated-content",
"search.value": "account",
"order": {},
"search": "account"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/pgsql-processes/{id}root reseller userTerminate a PostgreSQL backend process if it belongs to the current account PostgreSQL user or database scope.
What this endpoint does
Terminate a PostgreSQL backend process if it belongs to the current account PostgreSQL user or database scope.
Endpoint
DELETE /v1/accounts/{username}/pgsql-processes/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/pgsql-processes/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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Php
POST/v1/accounts/{username}/php/fpm/reconcileroot reseller userRebuild and reload the current account PHP-FPM pools for its domains. Use this when the user wants to restart/sync their own PHP-FPM service after PHP changes or pool issues.
What this endpoint does
Rebuild and reload the current account PHP-FPM pools for its domains. Use this when the user wants to restart/sync their own PHP-FPM service after PHP changes or pool issues.
Endpoint
POST /v1/accounts/{username}/php/fpm/reconcile
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/php/runtimeroot reseller userList PHP runtime (version/opcache) per domain object.
What this endpoint does
List PHP runtime (version/opcache) per domain object.
Endpoint
GET /v1/accounts/{username}/php/runtime
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/php/runtimeroot reseller userChange PHP version/opcache state.
What this endpoint does
Change PHP version/opcache state.
Operational guidance: Updates PHP runtime settings (PHP version and/or Opcache) for a specific target (main/addon/subdomain). Provide setphpversion and/or setopcache.
Endpoint
PATCH /v1/accounts/{username}/php/runtime
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 0,
"type": "main",
"setopcache": "1",
"setphpversion": "php82"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/php/runtime/tableroot reseller userList indexed PHP runtime rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed PHP runtime rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/php/runtime/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/php/runtime/tableroot reseller userList indexed PHP runtime rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed PHP runtime rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/php/runtime/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/php/settingsroot reseller userRead effective PHP INI settings for a domain object.
What this endpoint does
Read effective PHP INI settings for a domain object.
Operational guidance: Fetch effective PHP settings for one domain target.
Endpoint
GET /v1/accounts/{username}/php/settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 canonical account-scoped calls that already imply the main domain.
Validation and use: Conditional Send this parameter in the query string. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: context.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"type": "main",
"id": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/php/settingsroot reseller userChange PHP INI settings.
What this endpoint does
Change PHP INI settings.
Operational guidance: Updates PHP ini settings for a specific target (main/addon/subdomain). Send only the fields you want to change.
Endpoint
PATCH /v1/accounts/{username}/php/settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
disable_functionsOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
exec
Comma-separated function names to disable, e.g. "exec,shell_exec".
Validation and use: Optional Send this parameter as a JSON body property.
display_errorsOptional- Send in
- JSON body
- Type
on|off|string- Accepted values
- on, off
- Example
on
display_errors. Values: on, off.
Validation and use: Optional Send this parameter as a JSON body property.
error_reportingOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
443
PHP error_reporting expression using E_* constants and operators (&, |, ~).
Validation and use: Optional Send this parameter as a JSON body property.
file_uploadsOptional- Send in
- JSON body
- Type
on|off|string- Accepted values
- on, off
- Example
on
file_uploads. Values: on, off.
Validation and use: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 18 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 0,
"type": "main",
"allow_url_fopen": "on",
"date_timezone": "UTC",
"disable_functions": "exec",
"display_errors": "on",
"error_reporting": 443,
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PHP
PATCH/v1/accounts/{username}/php/runtime/bulkroot reseller userBulk update SHM PHP runtime settings
What this endpoint does
Bulk update SHM PHP runtime settings
Endpoint
PATCH /v1/accounts/{username}/php/runtime/bulk
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 accepted by this endpoint while it performs: Bulk update SHM PHP runtime settings. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
targetsOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Targets accepted by this endpoint while it performs: Bulk update SHM PHP runtime settings. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"changes": {},
"targets": {}
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":{},"changes":{}}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"targets": {},
"changes": {}
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/php/settings/bulkroot reseller userBulk update SHM PHP settings
What this endpoint does
Bulk update SHM PHP settings
Endpoint
PATCH /v1/accounts/{username}/php/settings/bulk
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 accepted by this endpoint while it performs: Bulk update SHM PHP settings. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
targetsOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
Targets accepted by this endpoint while it performs: Bulk update SHM PHP settings. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"changes": {},
"targets": {}
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":{},"changes":{}}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"targets": {},
"changes": {}
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Podman
POST/v1/accounts/{username}/podman/actions/{action}root reseller userRun Podman Manager action.
What this endpoint does
Run Podman Manager action.
Operational guidance: Action endpoint. Replace {action} with a supported action name. Examples below include one request per action. For Compose workflows use compose_project_save to create/update ~/.podman/compose/{project}/compose.yml and optional .env, then run compose_config, compose_pull, compose_build, compose_up, compose_status, compose_logs, compose_restart, or compose_down. SHM runs Compose rootless under the account system user; published ports in Compose YAML must bind to 127.0.0.1 so Web Manager can safely route them through the domain backend selector.
Endpoint
POST /v1/accounts/{username}/podman/actions/{action}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (29)
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_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_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. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
composeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
services: app: image: nginx:alpine
Alias of yaml for compose_project_save. Prefer yaml.
Validation and use: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
cpusOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
0
For run_container/container_update: CPU limit (e.g. "0.5", "1", "2").
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
creds_userOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
registry-user
For pull_image: registry username for a one-off pull (optional).
Validation and use: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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 as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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 as a JSON body property.
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: Optional Send this parameter as a JSON body property.
memoryOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
256m
For run_container/container_update: memory limit (e.g. "256m", "1g").
Validation and use: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
search.valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
account
Search value accepted by this endpoint while it performs: Run Podman Manager action. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
session_idOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Session id accepted by this endpoint while it performs: Run Podman Manager action. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. GET /v1/accounts/{username}/podman/containers
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 as a JSON body property.
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: Optional Send this parameter as a JSON body property.
valueOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
updated-content
Value payload.
Validation and use: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
Supported actions and option sets
action values (39)
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_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
},
"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"
},
"compose_build": {
"project": "myapp"
},
"compose_up": {
"project": "myapp"
},
"compose_down": {
"project": "myapp"
},
"compose_restart": {
"project": "myapp"
},
"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 reference template contains all 29 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"action": "dashboard_info",
"username": "myuser"
},
"query_parameters": {},
"json_body": {
"autostart": 1,
"compose": "services:\n app:\n image: nginx:alpine",
"container_port": 80,
"cpus": "0",
"creds_pass": "STRONG_PASSWORD",
"creds_user": "registry-user",
"domain": "main:1000",
"draw": 1,
"env": "FOO=bar\nBAZ=qux",
"image": "docker.io/library/nginx:latest",
"length": 25,
"lines": 200,
"memory": "256m",
"name": "my-container",
"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": 1,
"start": 0,
"status_filter": "running",
"value": "updated-content",
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value before QA can execute this request.
Action: container_config
{
"path_parameters": {
"action": "container_config"
},
"query_parameters": {},
"json_body": {
"name": "my-container"
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Action: container_start
{
"path_parameters": {
"action": "container_start"
},
"query_parameters": {},
"json_body": {
"name": "my-container"
}
}Requires a documented runtime value before QA can execute this request.
Action: container_stop
{
"path_parameters": {
"action": "container_stop"
},
"query_parameters": {},
"json_body": {
"name": "my-container"
}
}Requires a documented runtime value before QA can execute this request.
Action: container_restart
{
"path_parameters": {
"action": "container_restart"
},
"query_parameters": {},
"json_body": {
"name": "my-container"
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Action: container_remove
{
"path_parameters": {
"action": "container_remove"
},
"query_parameters": {},
"json_body": {
"name": "my-container"
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Action: container_exec_session
{
"path_parameters": {
"action": "container_exec_session"
},
"query_parameters": {},
"json_body": {
"name": "my-container"
}
}Requires a documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Action: volume_inspect
{
"path_parameters": {
"action": "volume_inspect"
},
"query_parameters": {},
"json_body": {
"name": "my-volume"
}
}Requires a documented runtime value before QA can execute this request.
Action: volume_size
{
"path_parameters": {
"action": "volume_size"
},
"query_parameters": {},
"json_body": {
"name": "my-volume"
}
}Requires a documented runtime value before QA can execute this request.
Action: volume_remove
{
"path_parameters": {
"action": "volume_remove"
},
"query_parameters": {},
"json_body": {
"name": "my-volume"
}
}Requires a documented runtime value 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
}
}Requires a documented runtime value before QA can execute this request.
Action: registry_logout
{
"path_parameters": {
"action": "registry_logout"
},
"query_parameters": {},
"json_body": {
"registry": "docker.io"
}
}Requires a documented runtime value 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 documented runtime value 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 documented runtime value before QA can execute this request.
Action: compose_project_delete
{
"path_parameters": {
"action": "compose_project_delete"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_config
{
"path_parameters": {
"action": "compose_config"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_pull
{
"path_parameters": {
"action": "compose_pull"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_build
{
"path_parameters": {
"action": "compose_build"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_up
{
"path_parameters": {
"action": "compose_up"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_down
{
"path_parameters": {
"action": "compose_down"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_restart
{
"path_parameters": {
"action": "compose_restart"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_status
{
"path_parameters": {
"action": "compose_status"
},
"query_parameters": {},
"json_body": {
"project": "myapp"
}
}Requires a documented runtime value before QA can execute this request.
Action: compose_logs
{
"path_parameters": {
"action": "compose_logs"
},
"query_parameters": {},
"json_body": {
"project": "myapp",
"lines": 500
}
}Requires a documented runtime value 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Postgresql
POST/v1/accounts/{username}/postgresql/ai-accessroot reseller userInspect or repair data inside PostgreSQL databases owned by the authorized account. This endpoint exposes fixed database/table/schema/row operations only; it never accepts arbitrary SQL, shell commands, server administration, roles, grants, extensions, functions, or cross-database targets.
What this endpoint does
Inspect or repair data inside PostgreSQL databases owned by the authorized account. This endpoint exposes fixed database/table/schema/row operations only; it never accepts arbitrary SQL, shell commands, server administration, roles, grants, extensions, functions, or cross-database targets.
Operational guidance: Inspect or repair PostgreSQL data only inside databases recorded for the authorized account. Root may target any account, a reseller only accounts it owns, and an end user only its current account. The endpoint accepts fixed structured actions, never arbitrary SQL or shell. Every data query authenticates as a dedicated non-superuser bridge that is a member only of a validated account database role; it refuses superuser, role-creation, database-creation, replication, row-security-bypass, or privileged pg_* role membership. Tenant functions cannot reset this connection to the PostgreSQL service superuser. Schema/table names must come from list_tables. describe_table redacts defaults for secret-like columns; read_rows is capped and redacts secret-like fields. insert_row writes one row; update_rows and delete_rows require a non-empty exact-equality where object and affect at most limit rows (default 1, maximum 100), including across partitioned tables. Every query uses PostgreSQL statement, lock, and idle transaction timeouts. AI data mutations require the exact pending-operation confirmation gate before retry.
Endpoint
POST /v1/accounts/{username}/postgresql/ai-access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 bounded operation. Data mutations require the AI confirmation gate. Fixed account-bounded operation.
Validation and use: Required Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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: Conditional Send this parameter as a JSON body property. Contract requirement: context.
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 mutations are impossible. Required non-empty exact-equality map for update_rows/delete_rows. Null becomes IS NULL.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: context.
Complete request template
This reference template contains all 9 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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 documented runtime value 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 documented runtime value before QA can execute this request.
List account-owned PostgreSQL databases
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"action": "list_databases"
}
}Requires a documented runtime value before QA can execute this request.
Read a bounded redacted page
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"action": "read_rows",
"database": "demo_app",
"schema": "public",
"table": "orders",
"limit": 50,
"offset": 0
}
}Requires a documented runtime value before QA can execute this request.
Repair one exact setting 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 documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/postgresql/databasesroot reseller userList PostgreSQL databases for one account. Canonical path becomes /v1/accounts/{username}/postgresql/databases.
What this endpoint does
List PostgreSQL databases for one account. Canonical path becomes /v1/accounts/{username}/postgresql/databases.
Endpoint
GET /v1/accounts/{username}/postgresql/databases
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/postgresql/databases' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/postgresql/databasesroot reseller userCreate an account-scoped PostgreSQL database with strict identifier validation, YAML ownership, and generated user grants only.
What this endpoint does
Create an account-scoped PostgreSQL database with strict identifier validation, YAML ownership, and generated user grants only.
Endpoint
POST /v1/accounts/{username}/postgresql/databases
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
string- Accepted values
- Any value matching string
- Example
appdb
Database name. Allowed characters: letters, numbers, underscore. Must be globally unique in PostgreSQL.
Validation and use: Required Send this parameter as a JSON body property.
databasenameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
appdb
Databasename accepted by this endpoint while it performs: Create an account-scoped PostgreSQL database with strict identifier validation, YAML ownership, and generated user grants only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
newdbuserOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Newdbuser accepted by this endpoint while it performs: Create an account-scoped PostgreSQL database with strict identifier validation, YAML ownership, and generated user grants only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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.
Validation and use: Optional Send this parameter as a JSON body property.
pg_usersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Pg users accepted by this endpoint while it performs: Create an account-scoped PostgreSQL database with strict identifier validation, YAML ownership, and generated user grants only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
selectdbusersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Selected database users.
Validation and use: Optional Send this parameter as a JSON body property.
selectpgusersOptional- Send in
- JSON body
- Type
array|string|string[]- Accepted values
- Any value matching array|string|string[]
- Example
[]
Existing PostgreSQL users owned by this account to grant. Alias: selectdbusers.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"database_name": "appdb",
"databasename": "appdb",
"newdbuser": 1,
"newpguser": 1,
"pg_users": [],
"selectdbusers": [],
"selectpgusers": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"appdb"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"database_name": "appdb"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/postgresql/databases/{id}root reseller userDelete one account-owned PostgreSQL database and remove it from account state.
What this endpoint does
Delete one account-owned PostgreSQL database and remove it from account state.
Endpoint
DELETE /v1/accounts/{username}/postgresql/databases/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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}/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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/postgresql/databases/{id}root reseller userReplace PostgreSQL user assignments for one account-owned database.
What this endpoint does
Replace PostgreSQL user assignments for one account-owned database.
Endpoint
PATCH /v1/accounts/{username}/postgresql/databases/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
pg_usersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Pg users accepted by this endpoint while it performs: Replace PostgreSQL user assignments for one account-owned database. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
selectdbusersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Selected database users.
Validation and use: Optional Send this parameter as a JSON body property.
selectpgusersOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Selectpgusers accepted by this endpoint while it performs: Replace PostgreSQL user assignments for one account-owned database. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"pg_users": [],
"selectdbusers": [],
"selectpgusers": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":[],"selectdbusers":[],"pg_users":[]}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"id": 1
},
"query_parameters": {},
"json_body": {
"selectpgusers": [],
"selectdbusers": [],
"pg_users": []
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/postgresql/usersroot reseller userList PostgreSQL users for one account, including explicit remote IP/CIDR hosts. Canonical path becomes /v1/accounts/{username}/postgresql/users. PostgreSQL root/superuser/admin roles are not exposed for remote access.
What this endpoint does
List PostgreSQL users for one account, including explicit remote IP/CIDR hosts. Canonical path becomes /v1/accounts/{username}/postgresql/users. PostgreSQL root/superuser/admin roles are not exposed for remote access.
Endpoint
GET /v1/accounts/{username}/postgresql/users
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/postgresql/users' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/postgresql/usersroot reseller userCreate an account-scoped PostgreSQL user, grant selected account databases through generated GRANT statements, and optionally allow explicit remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only.
What this endpoint does
Create an account-scoped PostgreSQL user, grant selected account databases through generated GRANT statements, and optionally allow explicit remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only.
Endpoint
POST /v1/accounts/{username}/postgresql/users
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
string- Accepted values
- Any value matching string
- Example
appuser
User name. Allowed characters: letters, numbers, underscore. Must be globally unique in PostgreSQL. Alias: dbuser_name.
Validation and use: Required Send this parameter as a JSON body property.
dbuserOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
appuser
Dbuser accepted by this endpoint while it performs: Create an account-scoped PostgreSQL user, grant selected account databases through generated GRANT statements, and optionally allow explicit remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
dbuser_databasesOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Dbuser databases accepted by this endpoint while it performs: Create an account-scoped PostgreSQL user, grant selected account databases through generated GRANT statements, and optionally allow explicit remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
dbuser_nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
appuser
Database username.
Validation and use: Optional Send this parameter as a JSON body property.
dbuserpasswordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Database user password.
Validation and use: Optional Send this parameter as a JSON body property.
hostsOptional- Send in
- JSON body
- Type
array|string[]- Accepted values
- Any value matching array|string[]
- Example
host.example.com
Allowed remote PostgreSQL hosts for this account-owned user. Accepts single IP/CIDR entries only. Empty or omitted keeps local-only access. Wildcards/all/0.0.0.0/0/::/0 and PostgreSQL root/superuser/admin remote access are blocked.
Validation and use: Optional Send this parameter as a JSON body property.
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.
Validation and use: Optional Send this parameter as a JSON body property.
pguserOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
appuser
Pguser accepted by this endpoint while it performs: Create an account-scoped PostgreSQL user, grant selected account databases through generated GRANT statements, and optionally allow explicit remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
pguser_databasesOptional- Send in
- JSON body
- Type
array|string|string[]- Accepted values
- Any value matching array|string|string[]
- Example
[]
Existing account PostgreSQL databases to grant. Alias: dbuser_databases/selectdatabases.
Validation and use: Optional Send this parameter as a JSON body property.
privilegesOptional- Send in
- JSON body
- Type
enum- 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.
Validation and use: Optional Send this parameter as a JSON body property.
selectdatabasesOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Selectdatabases accepted by this endpoint while it performs: Create an account-scoped PostgreSQL user, grant selected account databases through generated GRANT statements, and optionally allow explicit remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"pguser_name": "appuser",
"dbuser": "appuser",
"dbuser_databases": [],
"dbuser_name": "appuser",
"dbuserpassword": "STRONG_PASSWORD",
"hosts": "host.example.com",
"password": "STRONG_PASSWORD",
"pguser": "appuser",
"pguser_databases": [],
"privileges": "ALL",
"selectdatabases": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"appuser"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"pguser_name": "appuser"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/postgresql/users/{id}root reseller userDelete one account-owned PostgreSQL user and remove it from account state.
What this endpoint does
Delete one account-owned PostgreSQL user and remove it from account state.
Endpoint
DELETE /v1/accounts/{username}/postgresql/users/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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. 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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/postgresql/users/{id}root reseller userUpdate one account-owned PostgreSQL user password, privilege template, database grants, and allowed remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only.
What this endpoint does
Update one account-owned PostgreSQL user password, privilege template, database grants, and allowed remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only.
Endpoint
PATCH /v1/accounts/{username}/postgresql/users/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (8)
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 accepted by this endpoint while it performs: Update one account-owned PostgreSQL user password, privilege template, database grants, and allowed remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
dbuserpasswordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Database user password.
Validation and use: Optional Send this parameter as a JSON body property.
hostsOptional- Send in
- JSON body
- Type
array|string[]- Accepted values
- Any value matching array|string[]
- Example
[]
Replacement allowed remote PostgreSQL hosts for this account-owned user. Accepts single IP/CIDR entries only. Empty array removes remote access; omitted keeps current hosts. Wildcards/all/0.0.0.0/0/::/0 and PostgreSQL root/superuser/admin remote access are blocked.
Validation and use: Optional Send this parameter as a JSON body property.
passwordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Password value.
Validation and use: Optional Send this parameter as a JSON body property.
pguser_databasesOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Pguser databases accepted by this endpoint while it performs: Update one account-owned PostgreSQL user password, privilege template, database grants, and allowed remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
selectdatabasesOptional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
[]
Selectdatabases accepted by this endpoint while it performs: Update one account-owned PostgreSQL user password, privilege template, database grants, and allowed remote IP/CIDR hosts. PostgreSQL root/superuser/admin roles remain local-only. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"dbuser_databases": [],
"dbuserpassword": "STRONG_PASSWORD",
"hosts": [],
"password": "STRONG_PASSWORD",
"pguser_databases": [],
"selectdatabases": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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","dbuserpassword":"STRONG_PASSWORD","pguser_databases":[],"dbuser_databases":[]}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo",
"id": 1
},
"query_parameters": {},
"json_body": {
"password": "STRONG_PASSWORD",
"dbuserpassword": "STRONG_PASSWORD",
"pguser_databases": [],
"dbuser_databases": []
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PostgreSQL
POST/v1/accounts/{username}/pgadmin/accessroot reseller userPrepare an account-scoped pgAdmin sign-on token. The generated pgAdmin server entry is limited to the account PostgreSQL databases.
What this endpoint does
Prepare an account-scoped pgAdmin sign-on token. The generated pgAdmin server entry is limited to the account PostgreSQL databases.
Endpoint
POST /v1/accounts/{username}/pgadmin/access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
hostOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
Host accepted by this endpoint while it performs: Prepare an account-scoped pgAdmin sign-on token. The generated pgAdmin server entry is limited to the account PostgreSQL databases. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
remote_ipOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
203.0.113.10
Remote ip accepted by this endpoint while it performs: Prepare an account-scoped pgAdmin sign-on token. The generated pgAdmin server entry is limited to the account PostgreSQL databases. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"host": "host.example.com",
"remote_ip": "203.0.113.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"host.example.com","remote_ip":"203.0.113.10"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"host": "host.example.com",
"remote_ip": "203.0.113.10"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Progress
GET/v1/progress/{task}root reseller userRead a task progress text file. Account-creation task ids are restricted to root or the reseller encoded in the task id.
What this endpoint does
Read a task progress text file. Account-creation task ids are restricted to root or the reseller encoded in the task id.
Operational guidance: Reads live task progress. Create Account task ids are actor-bound: root may read them, a reseller may read only create_account_<own username>_<32 hex>, and account users are denied.
Endpoint
GET /v1/progress/{task}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (1)
taskRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
create_account_root_0123456789abcdef0123456789abcdef
Task id matching [A-Za-z0-9_.-]{1,80}. Create Account uses create_account_<caller>_<32 hexadecimal characters>. Path task id matching [A-Za-z0-9_.-]{1,80}.
Validation and use: Required Replace this placeholder directly in the URL path.
Complete request template
This reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"task": "create_account_root_0123456789abcdef0123456789abcdef"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/progress/create_account_root_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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Read root account-creation progress
{
"path_parameters": {
"task": "create_account_root_0123456789abcdef0123456789abcdef"
},
"query_parameters": {},
"json_body": {}
}Requires a value returned by another endpoint before QA can execute this request.
Read account creation progress
{
"path_parameters": {
"task": "create_account_root_0123456789abcdef0123456789abcdef"
},
"query_parameters": {},
"json_body": {}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Resource Usage
GET/v1/accounts/{username}/resource-usage/historyroot reseller userHistorical resource usage time-series from the local SQLite usage index. The index is rebuilt automatically from retained CSV and snapshot files if it is missing or invalid.
What this endpoint does
Historical resource usage time-series from the local SQLite usage index. The index is rebuilt automatically from retained CSV and snapshot files if it is missing or invalid.
Endpoint
GET /v1/accounts/{username}/resource-usage/history
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the 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: Optional Send this parameter in the query string. Minimum 1. Maximum 10080. Default: 60.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"resource": "cpu",
"compact": 1,
"format": "object",
"timeRange": 60
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"resource": "cpu"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/resource-usage/historyroot reseller userHistorical resource usage time-series from the local SQLite usage index. The index is rebuilt automatically from retained CSV and snapshot files if it is missing or invalid.
What this endpoint does
Historical resource usage time-series from the local SQLite usage index. The index is rebuilt automatically from retained CSV and snapshot files if it is missing or invalid.
Endpoint
POST /v1/accounts/{username}/resource-usage/history
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. 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: Optional Send this parameter as a JSON body property. Minimum 1. Maximum 10080. Default: 60.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"resource": "cpu",
"compact": 1,
"format": "object",
"timeRange": 60
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"resource": "cpu"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/resource-usage/liveroot reseller userLive resource usage & top processes from the systemd user slice.
What this endpoint does
Live resource usage & top processes from the systemd user slice.
Endpoint
GET /v1/accounts/{username}/resource-usage/live
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/resource-usage/liveroot reseller userLive resource usage & top processes from the systemd user slice.
What this endpoint does
Live resource usage & top processes from the systemd user slice.
Endpoint
POST /v1/accounts/{username}/resource-usage/live
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/resource-usage/snapshotroot reseller userProcess snapshot table for a given timestamp (exact minute or nearest before).
What this endpoint does
Process snapshot table for a given timestamp (exact minute or nearest before).
Endpoint
GET /v1/accounts/{username}/resource-usage/snapshot
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the query string.
tsRequired- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
2026-07-16T12:00:00Z
Timestamp parseable by PHP DateTime (ISO-8601 recommended).
Validation and use: Required Send this parameter in the query string.
limitOptional- Send in
- Query string
- Type
int- Accepted values
- Any value matching int; default: 200
- Example
200
Request parameter.
Validation and use: Optional Send this parameter in the query string. 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 the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"resource": "cpu",
"ts": "2026-07-16T12:00:00Z",
"limit": 200,
"timestamp": 60
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/resource-usage/snapshot?resource=cpu&ts=2026-07-16T12%3A00%3A00Z' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"resource": "cpu",
"ts": "2026-07-16T12:00:00Z"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/resource-usage/snapshotroot reseller userProcess snapshot table for a given timestamp (exact minute or nearest before).
What this endpoint does
Process snapshot table for a given timestamp (exact minute or nearest before).
Endpoint
POST /v1/accounts/{username}/resource-usage/snapshot
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property.
tsRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
2026-07-16T12:00:00Z
Timestamp parseable by PHP DateTime (ISO-8601 recommended).
Validation and use: Required Send this parameter as a JSON body property.
limitOptional- Send in
- JSON body
- Type
int- Accepted values
- Any value matching int; default: 200
- Example
200
Request parameter.
Validation and use: Optional Send this parameter as a JSON body property. 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 as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"resource": "cpu",
"ts": "2026-07-16T12:00:00Z",
"limit": 200,
"timestamp": 60
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"2026-07-16T12:00:00Z"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"resource": "cpu",
"ts": "2026-07-16T12:00:00Z"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Resources
GET/v1/accounts/{username}/resources/tableroot reseller userList any indexed account resource collection. Response includes compact account summary plus `recordsTotal`, `recordsFiltered`, and `data`. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List any indexed account resource collection. Response includes compact account summary plus `recordsTotal`, `recordsFiltered`, and `data`. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/resources/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/resources/tableroot reseller userList any indexed account resource collection. Response includes compact account summary plus `recordsTotal`, `recordsFiltered`, and `data`. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List any indexed account resource collection. Response includes compact account summary plus `recordsTotal`, `recordsFiltered`, and `data`. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/resources/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Search
GET/v1/searchroot reseller userGlobal search across panel pages and account resources.
What this endpoint does
Global search across panel pages and account resources.
Endpoint
GET /v1/search
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (2)
qOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
account
Search query string.
Validation and use: Optional Send this parameter in the query string.
warmOptional- Send in
- Query string
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Set whether SHM should warm the corresponding search or read model as part of this request.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {
"q": "account",
"warm": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/search?q=account&warm=1' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {
"q": "account",
"warm": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/searchroot reseller userGlobal search across panel pages and account resources.
What this endpoint does
Global search across panel pages and account resources.
Operational guidance: Global search across server pages and account resources. For small queries (<2 chars) the API returns an empty result set.
Endpoint
POST /v1/search
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (2)
qOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
dns zones
Search query string. Search query string (recommended min length: 2).
Validation and use: Optional Send this parameter as a JSON body property.
warmOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Set whether SHM should warm the corresponding search or read model as part of this request.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"q": "dns zones",
"warm": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Search (POST body)
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"q": "dns zones"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Security
PATCH/v1/accounts/{username}/engine-api/enabledroot reseller userUpdate Engine API access enabled state for a panel user
What this endpoint does
Update Engine API access enabled state for a panel user
Endpoint
PATCH /v1/accounts/{username}/engine-api/enabled
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Enabled accepted by this endpoint while it performs: Update Engine API access enabled state for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"enabled": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"enabled": 1
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/engine-api/keysroot reseller userDelete an Engine API key for a panel user
What this endpoint does
Delete an Engine API key for a panel user
Endpoint
DELETE /v1/accounts/{username}/engine-api/keys
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Key id accepted by this endpoint while it performs: Delete an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned key_id value.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"key_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/engine-api/keysroot reseller userCreate or update an Engine API key for a panel user
What this endpoint does
Create or update an Engine API key for a panel user
Endpoint
POST /v1/accounts/{username}/engine-api/keys
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
192.0.2.10
Description accepted by this endpoint while it performs: Create or update an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
enabledOptional- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
Enabled accepted by this endpoint while it performs: Create or update an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
ipsOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
192.0.2.10
Ips accepted by this endpoint while it performs: Create or update an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
key_idOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Key id accepted by this endpoint while it performs: Create or update an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. 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
Role id accepted by this endpoint while it performs: Create or update an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned role_id value.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"description": "192.0.2.10",
"enabled": 1,
"ips": "192.0.2.10",
"key_id": 1,
"role_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"192.0.2.10","role_id":1,"key_id":1,"enabled":1}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"description": "192.0.2.10",
"role_id": 1,
"key_id": 1,
"enabled": 1
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/engine-api/keys/revealroot reseller userReveal a stored Engine API key for a panel user
What this endpoint does
Reveal a stored Engine API key for a panel user
Endpoint
POST /v1/accounts/{username}/engine-api/keys/reveal
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Key id accepted by this endpoint while it performs: Reveal a stored Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned key_id value.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"key_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/engine-api/keys/rotateroot reseller userRotate an Engine API key for a panel user
What this endpoint does
Rotate an Engine API key for a panel user
Endpoint
POST /v1/accounts/{username}/engine-api/keys/rotate
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Key id accepted by this endpoint while it performs: Rotate an Engine API key for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned key_id value.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"key_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/engine-api/profileroot reseller userGet Engine API access profile for a panel user
What this endpoint does
Get Engine API access profile for a panel user
Endpoint
GET /v1/accounts/{username}/engine-api/profile
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
DELETE/v1/accounts/{username}/engine-api/rolesroot reseller userDelete an Engine API access role for a panel user
What this endpoint does
Delete an Engine API access role for a panel user
Endpoint
DELETE /v1/accounts/{username}/engine-api/roles
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Role id accepted by this endpoint while it performs: Delete an Engine API access role for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned role_id value.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"role_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/engine-api/rolesroot reseller userCreate or update an Engine API access role for a panel user
What this endpoint does
Create or update an Engine API access role for a panel user
Endpoint
POST /v1/accounts/{username}/engine-api/roles
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
192.0.2.10
Description accepted by this endpoint while it performs: Create or update an Engine API access role for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Name value.
Validation and use: Optional Send this parameter as a JSON body property.
role_idOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Role id accepted by this endpoint while it performs: Create or update an Engine API access role for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. 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 accepted by this endpoint while it performs: Create or update an Engine API access role for a panel user. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"description": "192.0.2.10",
"name": "Primary",
"role_id": 1,
"scopes": {}
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"Primary","role_id":1,"description":"192.0.2.10","scopes":{}}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"name": "Primary",
"role_id": 1,
"description": "192.0.2.10",
"scopes": {}
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/mail-security/mailboxesroot reseller userBulk enable or disable Protected Mail for selected or all account mailboxes.
What this endpoint does
Bulk enable or disable Protected Mail for selected or all account mailboxes.
Operational guidance: Bulk enable or disable Protected Mail for selected mailboxes or all mailboxes in an account. Bulk enable normally uses account 2FA. If twofa_mode is mailbox, each targeted mailbox must already have an individual mailbox 2FA secret configured.
Endpoint
PATCH /v1/accounts/{username}/mail-security/mailboxes
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (5)
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.
enabledRequired- Send in
- JSON body
- Type
enum- Accepted values
- 1, 0, true, false, yes, no, on, off
- Example
1
1/true/on to enable Protected Mail, 0/false/off to disable it.
Validation and use: Required Send this parameter as a JSON body property.
scopeRequired- Send in
- JSON body
- Type
enum- Accepted values
- selected, all
- Example
selected
Scope request field. Allowed values: selected, all. selected updates only the emails list; all updates every mailbox in the account.
Validation and use: Required Send this parameter as a JSON body property.
emailsConditional- Send in
- JSON body
- Type
array|string- Accepted values
- Any value matching array|string
- Example
["user@example.com","sales@example.com"]
Mailbox email addresses to update. String input may be newline or comma separated. Alias: mailboxes.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: required when scope=selected.
twofa_modeOptional- Send in
- JSON body
- Type
account|mailbox- Accepted values
- account, mailbox
- Example
account
2FA mode to apply. account is recommended for bulk actions; mailbox requires preconfigured individual mailbox secrets.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"enabled": 1,
"scope": "selected",
"emails": [
"user@example.com",
"sales@example.com"
],
"twofa_mode": "account"
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/mail-security/mailboxes' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"scope":"selected","emails":["user@example.com","sales@example.com"],"enabled":1,"twofa_mode":"account"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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"
}
}Disable Protected Mail for all mailboxes
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"scope": "all",
"enabled": 0
}
}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"
}
}Disable Protected Mail for all mailboxes
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"scope": "all",
"enabled": 0
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/mail-security/mailboxes/{email}root reseller userEnable or disable Protected Mail for one mailbox and select account or individual mailbox 2FA.
What this endpoint does
Enable or disable Protected Mail for one mailbox and select account or individual mailbox 2FA.
Operational guidance: Enable or disable Protected Mail for one mailbox. When enabled, the primary mailbox password is blocked for external IMAP, POP and SMTP; mail clients must use app passwords. Direct Webmail keeps using the mailbox primary password and Webmail 2FA is optional based on twofa_mode.
Endpoint
PATCH /v1/accounts/{username}/mail-security/mailboxes/{email}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (8)
emailRequired- Send in
- URL path
- Type
string|email- Accepted values
- Any value matching string|email
- Example
user@example.com
Email 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
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
1
1/true/on to enable Protected Mail, 0/false/off to disable it.
Validation and use: Required Send this parameter as a JSON body property.
mailboxOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mailbox@example.com
Mailbox accepted by this endpoint while it performs: Enable or disable Protected Mail for one mailbox and select account or individual mailbox 2FA. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property.
twofa_modeOptional- Send in
- JSON body
- Type
account|mailbox- Accepted values
- account, mailbox
- Example
account
Use account 2FA or individual mailbox 2FA for direct Webmail step-up. Alias: protected_mail.twofa_mode.
Validation and use: Optional Send this parameter as a JSON body property.
twofa_secretOptional- Send in
- JSON body
- Type
base32 string- Accepted values
- Any value matching base32 string
- Example
STRONG_PASSWORD
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: Optional Send this parameter as a JSON body property.
twofacodeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
123456
Current TOTP code used to verify a supplied twofa_secret before it is stored. Alias: code or protected_mail.twofacode.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"email": "user@example.com",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"enabled": 1,
"mailbox": "mailbox@example.com",
"protected_mail.enabled": 1,
"twofa_mode": "account",
"twofa_secret": "STRONG_PASSWORD",
"twofacode": "123456"
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/mail-security/mailboxes/user%40example.com' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"enabled":1,"twofa_mode":"account"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Enable Protected Mail with account 2FA
{
"path_parameters": {
"username": "demo",
"email": "user@example.com"
},
"query_parameters": {},
"json_body": {
"enabled": 1,
"twofa_mode": "account"
}
}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"
}
}Disable Protected Mail
{
"path_parameters": {
"username": "demo",
"email": "user@example.com"
},
"query_parameters": {},
"json_body": {
"enabled": 0
}
}Enable Protected Mail with account 2FA
{
"path_parameters": {
"username": "demo",
"email": "user@example.com"
},
"query_parameters": {},
"json_body": {
"enabled": 1,
"twofa_mode": "account"
}
}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"
}
}Disable Protected Mail
{
"path_parameters": {
"username": "demo",
"email": "user@example.com"
},
"query_parameters": {},
"json_body": {
"enabled": 0
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/mail-security/mailboxes/{email}/app-passwordsroot reseller userCreate a revocable Protected Mail app password for one mailbox.
What this endpoint does
Create a revocable Protected Mail app password for one mailbox.
Operational guidance: Create one revocable app password for a mailbox. The app_password value is returned once in this response and cannot be revealed later. Store only the metadata from later GET responses.
Endpoint
POST /v1/accounts/{username}/mail-security/mailboxes/{email}/app-passwords
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (5)
emailRequired- Send in
- URL path
- Type
string|email- Accepted values
- Any value matching string|email
- Example
user@example.com
Email 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
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
- Example
iPhone Mail
Human label for the app/device, for example iPhone, Outlook laptop, or CRM integration. Alias: name.
Validation and use: Optional Send this parameter as a JSON body property.
mailboxOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
mailbox@example.com
Mailbox accepted by this endpoint while it performs: Create a revocable Protected Mail app password for one mailbox. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
nameOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Primary
Alias of label. Prefer label.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"email": "user@example.com",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"label": "iPhone Mail",
"mailbox": "mailbox@example.com",
"name": "Primary"
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X POST 'https://panel.example.com:882/v1/accounts/demo/mail-security/mailboxes/user%40example.com/app-passwords' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"label":"iPhone Mail"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Create iPhone app password
{
"path_parameters": {
"username": "demo",
"email": "user@example.com"
},
"query_parameters": {},
"json_body": {
"label": "iPhone Mail"
}
}Create iPhone app password
{
"path_parameters": {
"username": "demo",
"email": "user@example.com"
},
"query_parameters": {},
"json_body": {
"label": "iPhone Mail"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/mail-security/mailboxes/{email}/app-passwords/{app_password_id}root reseller userRevoke a Protected Mail app password.
What this endpoint does
Revoke a Protected Mail app password.
Operational guidance: Revoke one active app password. Removed app passwords stop authenticating immediately and are deleted from the active app-password list.
Endpoint
DELETE /v1/accounts/{username}/mail-security/mailboxes/{email}/app-passwords/{app_password_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (3)
app_password_idRequired- Send in
- URL path
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
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|email- Accepted values
- Any value matching string|email
- Example
user@example.com
Email 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
Account username.
Validation and use: Required Replace this placeholder directly in the URL path.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"app_password_id": "STRONG_PASSWORD",
"email": "user@example.com",
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X DELETE 'https://panel.example.com:882/v1/accounts/demo/mail-security/mailboxes/user%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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/security/contextroot reseller userFetch SHM account security page context.
What this endpoint does
Fetch SHM account security page context.
Endpoint
GET /v1/accounts/{username}/security/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
DELETE/v1/accounts/{username}/security/ip-accessroot reseller userRemove IP/CIDR from account IP access controls.
What this endpoint does
Remove IP/CIDR from account IP access controls.
Operational guidance: Remove an IP/CIDR from the account IP access allow-list.
Endpoint
DELETE /v1/accounts/{username}/security/ip-access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 3 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"ipaddress": "203.0.113.10",
"ip": "203.0.113.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Remove office IP
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"ipaddress": "203.0.113.10"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/security/ip-accessroot reseller userList account IP access controls.
What this endpoint does
List account IP access controls.
Endpoint
GET /v1/accounts/{username}/security/ip-access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/security/ip-accessroot reseller userAdd IP/CIDR to account IP access controls.
What this endpoint does
Add IP/CIDR to account IP access controls.
Operational guidance: Add an IP/CIDR to the account IP access allow-list.
Endpoint
POST /v1/accounts/{username}/security/ip-access
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
commentOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
Office
Optional comment label.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"ipaddress": "203.0.113.10",
"comment": "Office",
"ip": "203.0.113.10"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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 documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Allow office IP
{
"path_parameters": {},
"query_parameters": {},
"json_body": {
"ipaddress": "203.0.113.10",
"comment": "Office"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/security/passwordroot reseller userChange account password (requires current password).
What this endpoint does
Change account password (requires current password).
Operational guidance: Change the system password for the account user (root password is not allowed here).
Endpoint
PATCH /v1/accounts/{username}/security/password
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
current_passwordRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Current password.
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
passwordOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Password value.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"current_password": "STRONG_PASSWORD",
"new_password": "STRONG_PASSWORD",
"confirm_password": "STRONG_PASSWORD"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/security/twofaroot reseller userEnable or disable account two-factor authentication.
What this endpoint does
Enable or disable account two-factor authentication.
Operational guidance: Enable or disable 2FA for the account user. To disable: send twofasecret="disable". To enable: send twofasecret + twofacode.
Endpoint
PATCH /v1/accounts/{username}/security/twofa
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
twofasecretRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
STRONG_PASSWORD
Two-factor secret. Base32 secret, or the string "disable" to turn off 2FA.
Validation and use: Required Send this parameter as a JSON body property.
codeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
123456
Alias of twofacode. Prefer twofacode.
Validation and use: Optional Send this parameter as a JSON body property.
twofacodeOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
123456
Two-factor authentication code. 6-digit TOTP code (required when enabling). Alias: code.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"twofasecret": "STRONG_PASSWORD",
"code": "123456",
"twofacode": "123456"
},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X PATCH 'https://panel.example.com:882/v1/accounts/demo/security/twofa' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{"twofasecret":"STRONG_PASSWORD"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"twofasecret": "STRONG_PASSWORD"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Services
GET/v1/accounts/{username}/services/contextroot reseller userFetch SHM account services capability context.
What this endpoint does
Fetch SHM account services capability context.
Endpoint
GET /v1/accounts/{username}/services/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
1
Compact query parameter.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"compact": 1
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/services/context?compact=1' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"compact": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Ssl
GET/v1/accounts/{username}/ssl/autossl/overviewroot reseller userFetch the current AutoSSL account summary plus a bounded, searchable domain-health page. Aggregate validity, warning, problem, cooldown, and expiry counts cover the full account.
What this endpoint does
Fetch the current AutoSSL account summary plus a bounded, searchable domain-health page. Aggregate validity, warning, problem, cooldown, and expiry counts cover the full account.
Endpoint
GET /v1/accounts/{username}/ssl/autossl/overview
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
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: Optional Send this parameter in the 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 the query string.
startOptional- Send in
- Query string
- Type
integer- Accepted values
- Any value matching integer
- Example
0
Zero-based domain-health offset.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"length": 25,
"search": "account",
"search_value": "account",
"start": 0
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"start": 0,
"length": 25,
"search": "account",
"search_value": "account"
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ssl/autossl/runroot reseller userRun AutoSSL for an account or one authorized domain target. Legacy responses include the full refreshed account projection; set `include_account=0` for a bounded action response and refresh the paged overview separately.
What this endpoint does
Run AutoSSL for an account or one authorized domain target. Legacy responses include the full refreshed account projection; set `include_account=0` for a bounded action response and refresh the paged overview separately.
Operational guidance: Run AutoSSL for the whole account or for one selected domain target. Use it for expired, missing, or mismatched certificates after DNS already points correctly to this server. If type is omitted, SHM evaluates all eligible account domains. Allowed type values: main, addon, subdomain, parked.
Endpoint
POST /v1/accounts/{username}/ssl/autossl/run
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: context.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/ssl/certificateroot reseller userAssign SSL certificate to domain object.
What this endpoint does
Assign SSL certificate to domain object.
Operational guidance: Assigns a certificate from the account store to a domain object (main/addon/subdomain/parked).
Endpoint
PATCH /v1/accounts/{username}/ssl/certificate
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
certificate_idOptional- Send in
- JSON body
- Type
int|string- Accepted values
- Any value matching int|string
- Example
1
Certificate id accepted by this endpoint while it performs: Assign SSL certificate to domain object. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned certificate_id value.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 1000,
"setcertificate": 1,
"type": "main",
"certificate_id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/ssl/certificatesroot reseller userList SSL certificates of account.
What this endpoint does
List SSL certificates of account.
Endpoint
GET /v1/accounts/{username}/ssl/certificates
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ssl/certificatesroot reseller userAdd SSL certificate.
What this endpoint does
Add SSL certificate.
Operational guidance: Imports an SSL certificate into the account certificate store.
Endpoint
POST /v1/accounts/{username}/ssl/certificates
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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_PEM_FROM_PROVIDER
Certificate content or certificate selection. PEM certificate (leaf). Must be valid and not expired.
Validation and use: Required Send this parameter as a JSON body property.
certificateauthorityRequired- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
CA_CHAIN_PEM_FROM_PROVIDER
PEM CA / chain (required by engine validation).
Validation and use: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
typeOptional- Send in
- JSON body
- Type
enum- Accepted values
- custom, letsencrypt, selfsigned
- Example
custom
Allowed values: custom, letsencrypt, selfsigned. Default: custom.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"certificate": "CERTIFICATE_PEM_FROM_PROVIDER",
"certificateauthority": "CA_CHAIN_PEM_FROM_PROVIDER",
"privatekey": "YOUR_API_KEY",
"type": "custom"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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_PEM_FROM_PROVIDER","privatekey":"YOUR_API_KEY","certificateauthority":"CA_CHAIN_PEM_FROM_PROVIDER"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"certificate": "CERTIFICATE_PEM_FROM_PROVIDER",
"privatekey": "YOUR_API_KEY",
"certificateauthority": "CA_CHAIN_PEM_FROM_PROVIDER"
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/ssl/certificates/{id}root reseller userDelete SSL certificate if not assigned.
What this endpoint does
Delete SSL certificate if not assigned.
Endpoint
DELETE /v1/accounts/{username}/ssl/certificates/{id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"id": 1,
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/ssl/certificates/tableroot reseller userList account SSL certificates with bounded paging. The default format is the legacy DataTables column array; `format=records` returns metadata objects for remote selectors and other API clients.
What this endpoint does
List account SSL certificates with bounded paging. The default format is the legacy DataTables column array; `format=records` returns metadata objects for remote selectors and other API clients.
Endpoint
GET /v1/accounts/{username}/ssl/certificates/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 the 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 the 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 the query string.
formatOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
json
Set to `records` for metadata objects; omit for legacy rendered DataTables columns.
Validation and use: Optional Send this parameter in the 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 the 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 the query string.
order_dirOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
asc
Sort direction. Sort direction: `asc` or `desc`.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
Exact certificate type filter such as `custom`, `autossl`, or `selfsigned`.
Validation and use: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"certificate_ids": 1,
"coverage_domain": "example.com",
"draw": 1,
"format": "json",
"length": 25,
"order_col": 5,
"order_dir": "asc",
"search": "account",
"search_value": "account",
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
curl -sS -X GET 'https://panel.example.com:882/v1/accounts/demo/ssl/certificates/table?type_filter=active&coverage_domain=example.com&format=json&certificate_ids=1' \
-H 'X-Api-User: demo' \
-H 'X-Api-Key: YOUR_API_KEY'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"type_filter": "active",
"coverage_domain": "example.com",
"format": "json",
"certificate_ids": 1
},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/ssl/certificates/tableroot reseller userList account SSL certificates with bounded paging. The default format is the legacy DataTables column array; `format=records` returns metadata objects for remote selectors and other API clients.
What this endpoint does
List account SSL certificates with bounded paging. The default format is the legacy DataTables column array; `format=records` returns metadata objects for remote selectors and other API clients.
Endpoint
POST /v1/accounts/{username}/ssl/certificates/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
formatOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
json
Set to `records` for metadata objects; omit for legacy rendered DataTables columns.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
order_dirOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
asc
Sort direction. Sort direction: `asc` or `desc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
Exact certificate type filter such as `custom`, `autossl`, or `selfsigned`.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"certificate_ids": 1,
"coverage_domain": "example.com",
"draw": 1,
"format": "json",
"length": 25,
"order_col": 5,
"order_dir": "asc",
"search": "account",
"search_value": "account",
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"active","coverage_domain":"example.com","format":"json","certificate_ids":1}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"type_filter": "active",
"coverage_domain": "example.com",
"format": "json",
"certificate_ids": 1
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
SSL
POST/v1/accounts/{username}/ssl/autossl/logsroot reseller userRead SHM account AutoSSL log content
What this endpoint does
Read SHM account AutoSSL log content
Endpoint
POST /v1/accounts/{username}/ssl/autossl/logs
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
supported-option
Requested action name.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
downloadOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
1
Download accepted by this endpoint while it performs: Read SHM account AutoSSL log content. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"action": "supported-option",
"domain": "example.com",
"download": 1,
"lines": 200
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":"supported-option","download":1}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain": "example.com",
"lines": 200,
"action": "supported-option",
"download": 1
}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/ssl/autossl/logs/filesroot reseller userList SHM account AutoSSL log files
What this endpoint does
List SHM account AutoSSL log files
Endpoint
GET /v1/accounts/{username}/ssl/autossl/logs/files
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
Terminal
POST/v1/accounts/{username}/terminal/sessionroot reseller userPrepare SHM account terminal session
What this endpoint does
Prepare SHM account terminal session
Endpoint
POST /v1/accounts/{username}/terminal/session
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Intentionally excluded from AI Mode. A chat cannot create an interactive browser terminal session.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Web Settings
GET/v1/accounts/{username}/web-settingsroot reseller userList web settings for main/addon/subdomain domains.
What this endpoint does
List web settings for main/addon/subdomain domains.
Endpoint
GET /v1/accounts/{username}/web-settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/web-settingsroot reseller userChange web settings. Enabling servercache activates automatic zero-touch native caching, fail-closed analysis, invalidation, and warmup without Redis or application changes.
What this endpoint does
Change web settings. Enabling servercache activates automatic zero-touch native caching, fail-closed analysis, invalidation, and warmup without Redis or application changes.
Operational guidance: Update one Web Manager setting for an account-owned main, addon, or subdomain. Parked domains inherit main-domain changes and are rebuilt with main. Toggle values accept 0/1 or off/on. Cache TTLs accept inherit/default/empty or 1 minute through 30 days; advanced cache values are validated by key.
Endpoint
PATCH /v1/accounts/{username}/web-settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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 bounded durations. Remaining cache_* keys are advanced backward-compatible cache controls.
Validation and use: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 0,
"type": "main",
"value": 1,
"websetting": "sslredirect"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/web-settings/bulkroot reseller userBulk update SHM web settings
What this endpoint does
Bulk update SHM web settings
Operational guidance: Bulk update web settings for one account. Account > Cache Manager uses changes.servercache with enabled, cache_static_enabled, cache_static_access_log, cache_dynamic_enabled, cache_ttl, cache_static_ttl, and advanced per-domain cache controls. cache_profile remains backward-compatible/internal; prefer the explicit Static/Dynamic switches for normal clients.
Endpoint
PATCH /v1/accounts/{username}/web-settings/bulk
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (48)
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.http_guardOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{}
Partial HTTP Guard update. Omitted mode, limits, Smart state, and URI rules remain unchanged for each target.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.http_guard.protected_uri_rulesOptional- Send in
- JSON body
- Type
array<object>- Accepted values
- Any value matching array<object>
- Example
[]
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.http_guard.protected_uri_rules[].patternConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
Wildcard URI pattern such as /search/*?*q=*.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: 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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.modsecurityOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{}
Partial ModSecurity update applied independently to every target; omitted fields, including each target application profile, are preserved.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.modsecurity.rule_remove_idsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
Complete replacement list of known active CRS rule IDs for every selected target.
Validation and use: Optional Send this parameter as a JSON body property.
changes.modsecurity.rule_remove_msgsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
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 parameter as a JSON body property.
changes.modsecurity.rule_remove_tagsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
Complete replacement list of known active CRS tags for every selected target.
Validation and use: Optional Send this parameter as a JSON body property.
changes.restrictionsOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{}
Complete request-restriction configuration applied to every selected target.
Validation and use: Optional Send this parameter as a JSON body property.
changes.restrictions.allow_ipsConditional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
192.0.2.10
Up to 32 exact IPv4/IPv6 addresses.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: 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 parameter as a JSON body property. Contract requirement: 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
[]
Up to 32 known bot signatures.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property. Contract requirement: required when temporary.
changes.servercacheOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
host.example.com
Server cache settings for every selected target.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.servercache.cache_safe_cookiesOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
changes.servercache.cache_static_ttlOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
10m
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 parameter as a JSON body property.
changes.servercache.cache_ttlOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
10m
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 parameter as a JSON body property.
changes.servercache.cache_use_staleOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
host.example.com
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 parameter as a JSON body property.
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, bounded warmup, and conservative mutation invalidation without Redis or application changes.
Validation and use: Optional Send this parameter as a JSON body property.
changes.sslredirectOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{}
HTTPS redirect change for every selected target.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property. Contract requirement: required when section present.
Complete request template
This reference template contains all 48 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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.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[].action": "block",
"changes.http_guard.protected_uri_rules[].limit_profile": "block",
"changes.http_guard.protected_uri_rules[].pattern": "active",
"changes.http_guard.protected_uri_rules[].status": 1,
"changes.http_guard.smart_protection": "off",
"changes.modsecurity": {},
"changes.modsecurity.enabled": 1,
"changes.modsecurity.mode": "on",
"changes.modsecurity.profile": "generic",
"changes.modsecurity.rule_remove_ids": [],
"changes.modsecurity.rule_remove_msgs": [],
"changes.modsecurity.rule_remove_tags": [],
"changes.restrictions": {},
"changes.restrictions.allow_ips": "192.0.2.10",
"changes.restrictions.allow_mode": "off",
"changes.restrictions.blocked_bots": [],
"changes.restrictions.temporary_duration_minutes": 1,
"changes.servercache": "host.example.com",
"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": "host.example.com",
"changes.servercache.cache_static_access_log": "on",
"changes.servercache.cache_static_enabled": "on",
"changes.servercache.cache_static_ttl": "10m",
"changes.servercache.cache_ttl": "10m",
"changes.servercache.cache_use_stale": "host.example.com",
"changes.servercache.enabled": 1,
"changes.sslredirect": {},
"changes.sslredirect.enabled": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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/*"
}
}
}
}Requires a documented runtime value before QA can execute this request.
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"
}
}
}
}Requires a documented runtime value before QA can execute this request.
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/*"
}
}
}
}Requires a documented runtime value before QA can execute this request.
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"
}
}
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/web-settings/cache-clearroot reseller userClear SHM web cache
What this endpoint does
Clear SHM web cache
Operational guidance: Clear the server-side web cache for one domain target. Use it after deployments, stale pages, cache corruption, or when the site still serves old content. Allowed type values: main, addon, subdomain. If type is omitted, SHM defaults to the main domain.
Endpoint
POST /v1/accounts/{username}/web-settings/cache-clear
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: context.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain_id": 1,
"domain_type": "main",
"id": 1,
"type": "addon"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/web-settings/cache-rulesroot reseller userList SHM web cache rules
What this endpoint does
List SHM web cache rules
Operational guidance: List Cache Manager URL-exclusion rules for one account domain target. The response also distinguishes explicit dynamic/static TTL overrides from the current root defaults and returns both effective TTL values. Supported targets are main, addon, and subdomain; parked domains inherit their main-domain configuration and are not independent rule targets.
Endpoint
GET /v1/accounts/{username}/web-settings/cache-rules
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Account-YAML domain id. Omit for main.
Validation and use: Conditional Send this parameter in the query string. Use the corresponding list endpoint for this resource and copy the returned domain_id value. Contract requirement: 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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: 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: Optional Send this parameter in the query string. Contract requirement: optional alias of domain type.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"domain_id": 3,
"domain_type": "main",
"id": 1,
"type": "main"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/web-settings/cache-rulesroot reseller userCreate SHM web cache rule
What this endpoint does
Create SHM web cache rule
Operational guidance: Create one Cache Manager URL-exclusion rule and rebuild that domain cache configuration transactionally. domain_type is required because type identifies the pattern operator on this POST endpoint. Patterns are normalized as safe regex fragments; raw regex alternation, character classes, quotes, control characters, multiple space-separated patterns, and values longer than 180 characters are rejected.
Endpoint
POST /v1/accounts/{username}/web-settings/cache-rules
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
domain_idConditional- Send in
- JSON body
- Type
positive integer|string- Accepted values
- Any value matching positive integer|string
- Example
3
Account-YAML domain id. Omit for main. Alias: id.
Validation and use: Conditional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned domain_id value. Contract requirement: 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: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: optional alias of domain id.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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"}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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"
}
}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.
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"
}
}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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
DELETE/v1/accounts/{username}/web-settings/cache-rules/{rule_id}root reseller userDelete SHM web cache rule
What this endpoint does
Delete SHM web cache rule
Operational guidance: Delete one Cache Manager URL-exclusion rule from the selected domain target, then validate and rebuild that domain cache configuration. Obtain rule_id from the corresponding GET response. Deleting a missing id returns a warning and does not mutate configuration.
Endpoint
DELETE /v1/accounts/{username}/web-settings/cache-rules/{rule_id}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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
Account-YAML domain id. Omit for main. Alias: id.
Validation and use: Conditional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned domain_id value. Contract requirement: 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned id value. Contract requirement: optional alias of domain id.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"rule_id": 7,
"username": "demo"
},
"query_parameters": {},
"json_body": {
"domain_id": 3,
"domain_type": "main",
"id": 1
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/web-settings/cache/tableroot reseller userList indexed web cache target rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed web cache target rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/web-settings/cache/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/web-settings/cache/tableroot reseller userList indexed web cache target rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed web cache target rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/web-settings/cache/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/web-settings/contextroot reseller userFetch SHM web settings page context.
What this endpoint does
Fetch SHM web settings page context.
Endpoint
GET /v1/accounts/{username}/web-settings/context
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {}
}Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/web-settings/http-guardroot reseller userSave per-domain HTTP Guard settings, including protected URI wildcard rules for expensive dynamic URLs.
What this endpoint does
Save per-domain HTTP Guard settings, including protected URI wildcard rules for expensive dynamic URLs.
Operational guidance: Use protected_uri_rules for paths such as /search/*?*q=* to block or monitor expensive dynamic URLs at the web layer. relaxed/standard/strict count all domain requests, including pages and static assets. mode=off disables only the whole-domain baseline profile; URI rules and Smart Protection can still be used when allowed.
Endpoint
PATCH /v1/accounts/{username}/web-settings/http-guard
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
http_guardOptional- Send in
- JSON body
- Type
object|string- Accepted values
- Any value matching object|string
- Example
{}
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
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 parameter as a JSON body property.
protected_uri_rules[].patternConditional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 parameter as a JSON body property. Contract requirement: 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 parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 16 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 0,
"type": "main",
"burst": 40,
"connections": 30,
"dry_run": 0,
"enabled": 0,
"http_guard": {},
"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": "active",
"protected_uri_rules[].status": 1,
"smart_protection": "off"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/web-settings/modsecurityroot reseller userChange advanced ModSecurity mode, application profile, and rule exclusions for a domain object.
What this endpoint does
Change advanced ModSecurity mode, application profile, and rule exclusions for a domain object.
Operational guidance: Partially update ModSecurity for one account-owned main, addon, or subdomain. Send at least one of mode, profile, rule_remove_ids, rule_remove_tags, or rule_remove_msgs; omitted fields retain their current values. The mode and every exclusion are validated before account YAML or generated web-server files change.
Endpoint
PATCH /v1/accounts/{username}/web-settings/modsecurity
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
rule_remove_idsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
Complete replacement list of known active CRS rule IDs disabled for this target.
Validation and use: Optional Send this parameter as a JSON body property.
rule_remove_msgsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
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 parameter as a JSON body property.
rule_remove_tagsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
Complete replacement list of known active CRS tags disabled for this target.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 8 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 0,
"type": "main",
"mode": "on",
"profile": "wordpress",
"rule_remove_ids": [],
"rule_remove_msgs": [],
"rule_remove_tags": []
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/web-settings/portsourceroot reseller userSet web application source (PHP scripts or Node.js port).
What this endpoint does
Set web application source (PHP scripts or Node.js port).
Operational guidance: Switch a domain web root between PHP scripts ("php") and a Node.js app port source. value empty/0/php resets to PHP.
Endpoint
PATCH /v1/accounts/{username}/web-settings/portsource
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 1,
"type": "addon",
"value": "php",
"portsource": 0
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
Reset to PHP
{
"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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/web-settings/redirectsroot reseller userReplace path and full-domain redirects for an account-owned domain.
What this endpoint does
Replace path and full-domain redirects for an account-owned domain.
Operational guidance: Replace the redirect rules for one account-owned main, addon, or subdomain. Path rules can redirect an exact source path to an internal path or HTTP(S) URL. One full_domain rule may redirect every remaining request to a destination domain while preserving the complete original path and query string; ACME certificate validation remains reachable. Existing rows without mode remain path rules.
Endpoint
PATCH /v1/accounts/{username}/web-settings/redirects
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
typeRequired- Send in
- JSON body
- Type
enum- Accepted values
- main, addon, subdomain
- Example
main
Target domain type.
Validation and use: Required Send this parameter as a JSON body property.
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 parameter as a JSON body property. 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 parameter as a JSON body property. 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 parameter as a JSON body property. 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 parameter as a JSON body property. Contract requirement: 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 parameter as a JSON body property. 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 parameter as a JSON body property. Contract requirement: 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 parameter as a JSON body property. Contract requirement: required unless redirects[].target domain is supplied for full domain.
Complete request template
This reference template contains all 11 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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}]}'
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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"
}
]
}
}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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/web-settings/restrictionsroot reseller userUpdate SHM web request restrictions
What this endpoint does
Update SHM web request restrictions
Operational guidance: Replace request restrictions for one account-owned main, addon, or subdomain. Send either the documented flat fields or the same fields inside restrictions. Unknown modes, IP addresses, and bot signatures are rejected before persistence.
Endpoint
PATCH /v1/accounts/{username}/web-settings/restrictions
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (12)
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Conditional Send this parameter as a JSON body property. Contract requirement: required when allow mode enabled.
blocked_botsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
Complete replacement list of up to 32 bot signatures from the Web Settings context catalog.
Validation and use: Optional Send this parameter as a JSON body property.
restrictionsOptional- Send in
- JSON body
- Type
object- Accepted values
- Any value matching object
- Example
{"allow_mode":"off","allow_ips":[],"temporary_duration_minutes":0,"blocked_bots":["GPTBot"]}
Optional object wrapper for allow_mode, allow_ips, temporary_duration_minutes, and blocked_bots. Do not combine object and flat forms.
Validation and use: Optional Send this parameter as a JSON body property.
restrictions.allow_ipsConditional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
192.0.2.10
Object-form equivalent of allow_ips.
Validation and use: Conditional Send this parameter as a JSON body property. Contract requirement: 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 parameter as a JSON body property. Contract requirement: required when object used.
restrictions.blocked_botsOptional- Send in
- JSON body
- Type
array<string>|string- Accepted values
- Any value matching array<string>|string
- Example
[]
Object-form equivalent of blocked_bots.
Validation and use: Optional Send this parameter as a JSON body property.
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 parameter as a JSON body property. Contract requirement: 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: Conditional Send this parameter as a JSON body property. Contract requirement: required when temporary.
Complete request template
This reference template contains all 12 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": [],
"restrictions": {
"allow_mode": "off",
"allow_ips": [],
"temporary_duration_minutes": 0,
"blocked_bots": [
"GPTBot"
]
},
"restrictions.allow_ips": "192.0.2.10",
"restrictions.allow_mode": "off",
"restrictions.blocked_bots": [],
"restrictions.temporary_duration_minutes": 1,
"temporary_duration_minutes": 60
},
"query_or_json_parameters": {}
}
Runnable workflow example
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":[]}'Example note: Requires a value returned by another endpoint before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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": []
}
}Requires a value returned by another endpoint before QA can execute this request.
Disable IP restriction and block 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_bots": [
"GPTBot"
]
}
}
}Requires a value returned by another endpoint before QA can execute this request.
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": []
}
}Requires a value returned by another endpoint before QA can execute this request.
Disable IP restriction and block 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_bots": [
"GPTBot"
]
}
}
}Requires a value returned by another endpoint before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/web-settings/tableroot reseller userList indexed web settings rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed web settings rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
GET /v1/accounts/{username}/web-settings/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 the 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 the 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 the 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 the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 the query string.
kindOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter in the 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 bounded by the native index reader.
Validation and use: Optional Send this parameter in the 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 the query string. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- Query string
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter in the 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 the 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter in the 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 the 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 the 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 the query string.
type_filterOptional- Send in
- Query string
- Type
string- Accepted values
- Any value matching string
- Example
active
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 the query string.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/web-settings/tableroot reseller userList indexed web settings rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
What this endpoint does
List indexed web settings rows for main, addon, and subdomain web targets. Data is derived from canonical account YAML into an auto-repairing SQLite read-model; canonical YAML remains the source of truth.
Endpoint
POST /v1/accounts/{username}/web-settings/table
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
Parameters (17)
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned email_id value.
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 as a JSON body property.
kindOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
domain
Alias of `type_filter` used by lightweight selectors.
Validation and use: Optional Send this parameter as a JSON body property.
lengthOptional- Send in
- JSON body
- Type
integer- Accepted values
- Any value matching integer
- Example
25
Maximum rows to return. Defaults to 100 and is bounded by the native index reader.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. Use the corresponding list endpoint for this resource and copy the returned mailbox_id value.
order_dirOptional- Send in
- JSON body
- Type
enum- Accepted values
- asc, desc
- Example
asc
Sort direction for indexed title/sort key. Allowed values: `asc`, `desc`. Defaults to `asc`.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property. 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 native SQLite read-model before paging.
Validation and use: Optional Send this parameter as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
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 as a JSON body property.
type_filterOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
active
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 as a JSON body property.
Complete request template
This reference template contains all 17 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"collection": "domains",
"compact": 1,
"domain_type": "example.com",
"draw": 1,
"email_id": 1,
"include_sizes": 1,
"kind": "domain",
"length": 25,
"mailbox_id": 1,
"order_dir": "asc",
"resource_id": 1,
"search": "account",
"search_value": "account",
"servercache_filter": 1,
"start": 0,
"type_filter": "active"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Example request
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
Wordpress
DELETE/v1/accounts/{username}/wordpressroot reseller userRemove WordPress files from path.
What this endpoint does
Remove WordPress files from path.
Operational guidance: Remove WordPress files under a target path (deletes all contents under the directory). Path must be inside account home.
Endpoint
DELETE /v1/accounts/{username}/wordpress
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/cache-clearroot reseller userClear common WordPress cache directories for one site path.
What this endpoint does
Clear common WordPress cache directories for one site path.
Operational guidance: Clear common WordPress cache directories for one site path. Use it for stale content, bad cache state, or right after repair packs.
Endpoint
POST /v1/accounts/{username}/wordpress/cache-clear
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
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.
What this endpoint does
Enable or disable WordPress debug mode for one site path by editing wp-config.php safely inside the account.
Operational guidance: Enable or disable WordPress debug mode by updating WP_DEBUG, WP_DEBUG_LOG, and WP_DEBUG_DISPLAY in wp-config.php.
Endpoint
POST /v1/accounts/{username}/wordpress/debug-toggle
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
stateOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
enabled
State accepted by this endpoint while it performs: Enable or disable WordPress debug mode for one site path by editing wp-config.php safely inside the account. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"action": "enable",
"enabled": 1,
"state": "enabled"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/installroot reseller userInstall WordPress (WP-CLI). Creates a database + user automatically.
What this endpoint does
Install WordPress (WP-CLI). Creates a database + user automatically.
Operational guidance: Install WordPress into the document root of a selected domain owned by the account.
Endpoint
POST /v1/accounts/{username}/wordpress/install
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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"}'Example note: Requires a documented runtime value before QA can execute this request.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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"
}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| Field | Documented type or shape |
|---|---|
domain | string |
site_url | string |
document_root | string |
db_name | string |
db_user | string |
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/maintenance-moderoot reseller userEnable or disable WordPress maintenance mode for one site path.
What this endpoint does
Enable or disable WordPress maintenance mode for one site path.
Operational guidance: Enable or disable the standard WordPress maintenance flag for one site path.
Endpoint
POST /v1/accounts/{username}/wordpress/maintenance-mode
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
stateOptional- Send in
- JSON body
- Type
string- Accepted values
- Any value matching string
- Example
enabled
State accepted by this endpoint while it performs: Enable or disable WordPress maintenance mode for one site path. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"action": "enable",
"enabled": 1,
"state": "enabled"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
PATCH/v1/accounts/{username}/wordpress/passwordroot reseller userReset WordPress password.
What this endpoint does
Reset WordPress password.
Operational guidance: Reset a WordPress user password using WP-CLI. Path must be inside account home and contain wp-config.php.
Endpoint
PATCH /v1/accounts/{username}/wordpress/password
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Required Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/wordpress/pluginsroot reseller userList WordPress plugins for one detected WordPress site path.
What this endpoint does
List WordPress plugins for one detected WordPress site path.
Operational guidance: List WordPress plugins for one site path together with their active/inactive state. Use it before plugin disable or safe plugin-recovery actions.
Endpoint
GET /v1/accounts/{username}/wordpress/plugins
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter in the query string. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/wordpress/plugins/{plugin}root reseller userEnable or disable one WordPress plugin for one site path.
What this endpoint does
Enable or disable one WordPress plugin for one site path.
Operational guidance: Enable or disable one installed WordPress plugin for one site path through the WordPress runtime, including standard activation/deactivation hooks. Use the plugin slug from GET /v1/accounts/{username}/wordpress/plugins. plugin_file is optional when the slug alone is enough.
Endpoint
PATCH /v1/accounts/{username}/wordpress/plugins/{plugin}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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
Enabled accepted by this endpoint while it performs: Enable or disable one WordPress plugin for one site path. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property. 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
enabled
State accepted by this endpoint while it performs: Enable or disable one WordPress plugin for one site path. Use the documented type, location, and constraints below.
Validation and use: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 7 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": "enabled"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/plugins/{plugin}/installroot reseller userInstall one plugin slug from the official WordPress.org plugin directory and optionally activate it.
What this endpoint does
Install one plugin slug from the official WordPress.org plugin directory and optionally activate it.
Operational guidance: Install one lowercase plugin slug exclusively from the official https://wordpress.org/plugins/ directory. SHM resolves the slug through the official WordPress.org API and accepts the package only from downloads.wordpress.org. User-supplied URLs, archives, paths, versions, force, and overwrite are not supported. Set activate=true only when the user explicitly requested activation, then verify the returned plugins inventory. An already-installed plugin is not downloaded or provenance-verified; in that case source=existing_install and official_package_verified=false.
Endpoint
POST /v1/accounts/{username}/wordpress/plugins/{plugin}/install
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. Default: false.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"plugin": "classic-editor",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"activate": false
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/repair-packroot reseller userRun one safe WordPress recovery pack for one site path.
What this endpoint does
Run one safe WordPress recovery pack for one site path.
Operational guidance: Run one safe WordPress repair pack for one site path. These packs are designed for AI-guided recovery and stay inside the account/site scope only.
Endpoint
POST /v1/accounts/{username}/wordpress/repair-pack
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/shmcache/disableroot reseller userDisable SHMCache integration for one WordPress domain target and remove the SHM-managed MU plugin when it is safe to remove.
What this endpoint does
Disable SHMCache integration for one WordPress domain target and remove the SHM-managed MU plugin when it is safe to remove.
Operational guidance: Disable the WordPress SHMCache MU-plugin integration for one domain target by removing the recognized SHMCache mu-plugin file, marking the integration off, and purging this domain cache. Generic Cache Manager settings remain editable separately.
Endpoint
POST /v1/accounts/{username}/wordpress/shmcache/disable
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 3,
"path": "/home/demo/public_html",
"type": "subdomain"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/shmcache/enableroot reseller userEnable SHMCache for a WordPress domain target, install or repair the tenant-local MU plugin, purge stale cache, and let real visitor traffic create cache entries naturally.
What this endpoint does
Enable SHMCache for a WordPress domain target, install or repair the tenant-local MU plugin, purge stale cache, and let real visitor traffic create cache entries naturally.
Operational guidance: Enable or repair the WordPress SHMCache must-use plugin for one exact domain target. The action rejects WordPress paths owned by a more-specific addon or subdomain vhost, writes wp-content/mu-plugins/shmcache.php, applies SHM recommended public-page cache settings for the same selected domain, rebuilds only that domain configuration, and purges stale cache entries. New cache entries are created naturally by real visitor traffic.
Endpoint
POST /v1/accounts/{username}/wordpress/shmcache/enable
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 0,
"path": "/home/demo/cachewp",
"type": "main"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/shmcache/purgeroot reseller userPurge the SHM server cache for one WordPress domain target without changing the integration state. New cache entries are created naturally by real visitor traffic.
What this endpoint does
Purge the SHM server cache for one WordPress domain target without changing the integration state. New cache entries are created naturally by real visitor traffic.
Operational guidance: Purge the SHM server-side cache directories for one WordPress domain. This action is tenant-scoped to /opt/shm/users/{system_user}/{domain}/cache and does not expose a public web purge endpoint. New cache entries are created naturally by real visitor traffic.
Endpoint
POST /v1/accounts/{username}/wordpress/shmcache/purge
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"id": 3,
"path": "/home/demo/public_html",
"type": "subdomain"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/wordpress/shmcache/statusroot reseller userInspect SHMCache WordPress MU plugin status for one account domain target.
What this endpoint does
Inspect SHMCache WordPress MU plugin status for one account domain target.
Operational guidance: Inspect the WordPress SHMCache MU-plugin integration for one exact domain target. SHM assigns nested installations to the most-specific vhost document root, so a main or parent domain cannot claim WordPress from an addon or subdomain vhost, and reports whether the MU plugin matches the selected domain cache root.
Endpoint
GET /v1/accounts/{username}/wordpress/shmcache/status
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string. 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: Optional Send this parameter in the query string. 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 native response applied most-specific-vhost WordPress ownership checks.
Validation and use: Optional Send this parameter in the query string. Contract requirement: 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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 5 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/wordpress/themesroot reseller userList WordPress themes for one detected WordPress site path.
What this endpoint does
List WordPress themes for one detected WordPress site path.
Operational guidance: List WordPress themes for one site path and show which theme is active right now.
Endpoint
GET /v1/accounts/{username}/wordpress/themes
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter in the query string. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/wordpress/themes/{theme}root reseller userActivate one WordPress theme for one site path.
What this endpoint does
Activate one WordPress theme for one site path.
Operational guidance: Activate one installed WordPress theme through the WordPress runtime for one site path. Use it for safe theme rollback or fallback-theme recovery flows.
Endpoint
PATCH /v1/accounts/{username}/wordpress/themes/{theme}
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"theme": "twentytwentysix",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"action": "activate"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/themes/{theme}/installroot reseller userInstall one theme slug from the official WordPress.org theme directory and optionally activate it.
What this endpoint does
Install one theme slug from the official WordPress.org theme directory and optionally activate it.
Operational guidance: Install one lowercase theme slug exclusively from the official https://wordpress.org/themes/ directory. SHM resolves the slug through the official WordPress.org API and accepts the package only from downloads.wordpress.org. User-supplied URLs, archives, paths, versions, force, and overwrite are not supported. Set activate=true only when the user explicitly requested activation, then verify the returned themes inventory. An already-installed theme is not downloaded or provenance-verified; in that case source=existing_install and official_package_verified=false.
Endpoint
POST /v1/accounts/{username}/wordpress/themes/{theme}/install
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property. Default: false.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"theme": "twentytwentyfive",
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html",
"activate": false
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
| 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."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
WordPress
GET/v1/accounts/{username}/wordpress/admin-usersroot reseller userList WordPress administrator users for an SHM account site
What this endpoint does
List WordPress administrator users for an SHM account site
Operational guidance: List WordPress administrator accounts for one site path. Use it before a password reset or when the user forgot which admin login exists.
Endpoint
GET /v1/accounts/{username}/wordpress/admin-users
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter in the query string. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"path": "/home/demo/public_html"
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
PATCH/v1/accounts/{username}/wordpress/auto-settingsroot reseller userUpdate WordPress manager auto-update settings for an SHM account
What this endpoint does
Update WordPress manager auto-update settings for an SHM account
Operational guidance: Save per-site WordPress auto-update preferences in SHM. The target path must be an existing WordPress installation under the account home. Only the literal value "on" enables a toggle; any other value becomes "off".
Endpoint
PATCH /v1/accounts/{username}/wordpress/auto-settings
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 6 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"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": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
GET/v1/accounts/{username}/wordpress/core-offersroot reseller userList available WordPress core versions for an SHM account
What this endpoint does
List available WordPress core versions for an SHM account
Operational guidance: Return the latest WordPress core version and the available core versions cached by SHM. Use this before a core_download or version-pinned core update so the requested version exists.
Endpoint
GET /v1/accounts/{username}/wordpress/core-offers
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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 reference template contains all 1 current parameter key. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
List available WordPress core versions
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
List available WordPress core versions
{
"path_parameters": {},
"query_parameters": {},
"json_body": {}
}Requires a documented runtime value before QA can execute this request.
Successful result
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
GET/v1/accounts/{username}/wordpress/sitesroot reseller userScan and list WordPress sites for an SHM account
What this endpoint does
Scan and list WordPress sites for an SHM account
Operational guidance: Scan the account home for WordPress installations and return each detected site path, domain/url hints, current auto-update flags, and saved status details. Use this before password resets, admin-user lookups, update checks, or update runs so you can target the correct site path.
Endpoint
GET /v1/accounts/{username}/wordpress/sites
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Optional Send this parameter in the query string.
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {
"max_depth": 6
},
"json_body": {},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint reads state. Use its current identifiers and result before calling a related create, update, delete, repair, or restore operation.
POST/v1/accounts/{username}/wordpress/update-checkroot reseller userCheck pending WordPress updates for an SHM account site
What this endpoint does
Check pending WordPress updates for an SHM account site
Operational guidance: Inspect pending WordPress updates for one site path. The response separates core, plugins, and themes and reports whether each WP-CLI check succeeded.
Endpoint
POST /v1/accounts/{username}/wordpress/update-check
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property. GET /v1/accounts/{username}/wordpress/sites
Complete request template
This reference template contains all 2 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"path": "/home/demo/public_html"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
POST/v1/accounts/{username}/wordpress/update-runroot reseller userRun WordPress updates for an SHM account site
What this endpoint does
Run WordPress updates for an SHM account site
Operational guidance: Run one WordPress update action for one site path. Use GET /v1/accounts/{username}/wordpress/core-offers first if you want a specific core version. Allowed kind values: core_download, core, plugins, themes, all.
Endpoint
POST /v1/accounts/{username}/wordpress/update-run
Authentication and permissions
Send X-Api-User and X-Api-Key. Root, the owning reseller, and the account user may call this endpoint inside their authorized account scope.
AI Mode availability
Discoverable by Workspace AI and Account AI when the authenticated role, account ownership, feature policy, and parameters permit it.
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: Required Send this parameter as a JSON body property.
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: Required Send this parameter as a JSON body property. 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: Optional Send this parameter as a JSON body property.
Complete request template
This reference template contains all 4 current parameter keys. Keys under query_or_json_parameters may be sent in either accepted location. Conditional or action-specific keys are alternatives; keep only the branch you are actually calling.
{
"path_parameters": {
"username": "demo"
},
"query_parameters": {},
"json_body": {
"kind": "all",
"path": "/home/demo/public_html",
"version": "6.8.1"
},
"query_or_json_parameters": {}
}
Runnable workflow example
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.
Documented workflow examples
These are valid workflow branches from the current contract. They may use only the keys needed for that branch; the complete template above remains the exhaustive key list.
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.
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
On success, SHM returns a JSON success envelope and the endpoint-specific state or result described below. Verify a mutation with the corresponding read endpoint or owning SHM page.
The success payload is endpoint-specific. Read the returned status, preserve request_id when present, and inspect the resource fields described by the endpoint.
Error response
{
"status": "error",
"code": "validation_error",
"message": "One or more required parameters are missing or invalid."
}
Operational note
This endpoint can change state. Confirm the target and current state, keep a recovery path, and do not retry it blindly after an unknown result.
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