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_quarantine

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

Complete request template

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

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

Error response

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

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.

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

Error response

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

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.

FieldDocumented type or shape
statussuccess
messageRestore 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.

FieldDocumented type or shape
contentrestore job log text

Error response

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

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.

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

Error response

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

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.

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

Error response

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

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.

FieldDocumented type or shape
matches[]["file","line","preview","preview_redacted"]
match_countnumber of returned matches after the result cap
backendparallel_grep
elapsed_msserver-side search duration
timed_out1 when the hard timeout returned partial results
truncated1 when timeout, capture, or result limits may have omitted matches
redacted_preview_countnumber of returned previews whose secret-like value was replaced
securityread-only, account-scope, account-UID, symlink, and preview-redaction guarantees

Error response

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

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.

FieldDocumented type or shape
filenormalized account-relative path
before_sha1validated prior SHA-1 or absent
after_sha1read-back SHA-1 of the committed content
verificationread-back, content-match, SHA-1, and storage checks
rollback.tokenaccount-bound rollback token guarded against later file edits

Error response

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

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.

FieldDocumented type or shape
domainstring
pathstring
schemehttp|https
methodGET|HEAD
sample_countint
follow_redirectsint
follow_redirects_requestedint
redirect_policystring
probe_ipvalidated public IP pinned for every sample
topologyobject
averagesobject
samples[]bounded HTTP timing/status rows

Error response

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

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.

FieldDocumented type or shape
focusdomain and detected web topology
nodejssanitized app/runtime status, bounded log summaries, and exact lifecycle endpoints
podmancontainer state, Compose project metadata, and exact diagnostic/lifecycle endpoints
gitbounded repository scan/status and exact repository action endpoints
postgresqlowned databases, account-scoped processes, and exact inspection/process endpoints
recommendations[]["severity","code","message","endpoint"]
securityaccount scope and interactive-shell exposure statement

Error response

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

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.

FieldDocumented type or shape
addon_idint
domainstring
document_rootstring
ipstring

Error response

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

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.

FieldDocumented type or shape
parked_idint
domainstring
document_rootstring
ipstring

Error response

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

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.

FieldDocumented type or shape
subdomain_idint
domainstring
document_rootstring
ipstring

Error response

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

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.

Email

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.

FieldDocumented type or shape
emailstring

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.

FieldDocumented type or shape
catalog_versioninteger catalog contract version.
preferred_syntaxstring naming the preferred double-brace variable syntax.
variablesarray of token, legacy_alias, label, description, value_source, automatic, dynamic, and allowed_in metadata.
custom_variablesobject describing token format, name validation, count limit, and per-value/total size limits.
templatesarray of id, name, description, subject, body, is_html, charset, and recommended_interval_hours presets.

Error response

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

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.

FieldDocumented type or shape
data[]["name","path","size","perms","modTime","is_dir","fileType","canOpen"]
breadcrumbs[]["name","path"]

Error response

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

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.

FieldDocumented type or shape
contentstring
size_bytesint
permsstring
mtimeint
mimestring
sha1string

Error response

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

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.

FieldDocumented type or shape
destinationstring
countint

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.

FieldDocumented type or shape
pathstring
namestring
permsstring

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.

FieldDocumented type or shape
pathstring
namestring
permsstring

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.

FieldDocumented type or shape
pathstring
permsstring
renamedbool
permissions_changedbool

Error response

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

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.

FieldDocumented type or shape
destinationstring
countint

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.

FieldDocumented type or shape
trashstring

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.

FieldDocumented type or shape
destinationstring
countint

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.

FieldDocumented type or shape
destinationstring
archives[]{"type":"array","description":"Archives extracted successfully."}
countint
warnings[]{"type":"array","description":"Non-fatal warnings for rejected archives, when present."}

Error response

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

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.

FieldDocumented type or shape
pathstring
countint
total_bytesint
files[]{"type":"array","description":"Uploaded files with `name`, `size`, and `path`."}

Error response

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

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.

FieldDocumented type or shape
archivestring
countint
warnings[]{"type":"array","description":"Non-fatal warnings, for example when a preserved symlink target is inside the account but outside the selected archive scope."}

Error response

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

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_reject
Action-specific request bodies
{
  "scan": {
    "max_depth": 6,
    "limit": 120
  },
  "validate": {
    "repo_path": "public_html/myapp"
  },
  "status": {
    "repo_path": "public_html/myapp"
  },
  "branches": {
    "repo_path": "public_html/myapp"
  },
  "remotes": {
    "repo_path": "public_html/myapp"
  },
  "log": {
    "repo_path": "public_html/myapp",
    "limit": 50
  },
  "fetch": {
    "repo_path": "public_html/myapp"
  },
  "pull": {
    "repo_path": "public_html/myapp",
    "remote": "origin",
    "branch": "main"
  },
  "push": {
    "repo_path": "public_html/myapp",
    "remote": "origin",
    "branch": "main"
  },
  "checkout": {
    "repo_path": "public_html/myapp",
    "checkout_branch": "main"
  },
  "addall": {
    "repo_path": "public_html/myapp"
  },
  "commit": {
    "repo_path": "public_html/myapp",
    "commit_message": "Update",
    "add_all": 1
  },
  "set_identity": {
    "repo_path": "public_html/myapp",
    "git_name": "Your Name",
    "git_email": "you@example.com",
    "identity_scope": "local"
  },
  "init": {
    "init_path": "public_html/myapp"
  },
  "init_bare": {
    "init_path": "git/myapp.git"
  },
  "clone": {
    "clone_url": "https://github.com/example/repo.git",
    "clone_path": "public_html/repo",
    "clone_depth": 0,
    "clone_branch": ""
  },
  "cred_store": {
    "cred_host": "github.com",
    "cred_user": "username",
    "cred_pass": "TOKEN_OR_PASSWORD"
  },
  "cred_reject": {
    "cred_host": "github.com",
    "cred_user": "username"
  }
}

Complete request template

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

FieldDocumented type or shape
contentstring

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.

FieldDocumented type or shape
files[]["label","b64","size","mtime"]

Error response

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

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.

FieldDocumented type or shape
records[]["ts","time","id","direction","from","to","subject","status","auth","localUser","protocol","rcpts[]","raw[]"]
records[].status.key["accepted","delivered","deferred","failed","partial"]

Error response

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

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.

FieldDocumented type or shape
domainstring
account_userstring
mailbox_countint
dnsManaged-zone MX/SPF/DKIM/DMARC evidence and comparison checks.
public_dnsPublic MX targets and public-routability checks, SPF, DMARC, bounded DKIM selectors, sending IP, and PTR records.
deliverabilityFive-signal public deliverability score plus MX, mail-host, SPF, DMARC, DKIM, and PTR check details.
traceBounded 24-hour Exim status counts and up to 20 recent account-scoped records.
recommendationsStructured safe next actions derived from the observed evidence.

Error response

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

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.

FieldDocumented type or shape
drawinteger
recordsTotalinteger
recordsFilteredinteger
startinteger
lengthinteger
mailboxes[]["id","email","protected_mail","app_password_count","app_passwords[]"]
recent_events[]["event_at","email","remote_ip","source","credential_type","result","reason","app_password_id"]
alerts[]["id","created_at","email","severity","title","message","status"]

Error response

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

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.

FieldDocumented type or shape
login_suspended1 only after account YAML read-back verification
outgoing_suspended1 only after exact Exim map verification
incoming_state_preserved1 only when the previous incoming state remains exact
app_passwordsknown, removed, remaining, and verification counts
queued_messagesexact authenticated-mailbox queue matches, newly frozen count, remaining count, and scan verification
roundcube_sessionsremoved, remaining/unverified, and verification fields
dovecot_sessionsbefore/after observations, kicks, and zero-session verification
verification.complete1 only when YAML, ledger, maps, queue, Roundcube, and Dovecot checks all pass

Error response

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

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.

FieldDocumented type or shape
data[]["pid","user","host","db","command","time","state","info","killable"]

Error response

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

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)
startstoprestartrepair
Action-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_container
Action-specific request bodies
{
  "dashboard_info": [],
  "containers_list": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "container_config": {
    "name": "my-container"
  },
  "container_logs": {
    "name": "my-container",
    "lines": 200
  },
  "container_start": {
    "name": "my-container"
  },
  "container_stop": {
    "name": "my-container"
  },
  "container_restart": {
    "name": "my-container"
  },
  "container_force_restart": {
    "name": "my-container"
  },
  "container_remove": {
    "name": "my-container"
  },
  "container_update": {
    "domain": "main:{account_uid}",
    "name": "my-container",
    "image": "docker.io/library/nginx:latest",
    "container_port": 80,
    "env": "FOO=bar\nBAZ=qux"
  },
  "container_exec_session": {
    "name": "my-container"
  },
  "images_list": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "images_simple": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "image_tags": {
    "image": "docker.io/library/nginx"
  },
  "image_ports": {
    "image": "docker.io/library/nginx:latest"
  },
  "pull_image": {
    "image": "docker.io/library/nginx:latest"
  },
  "image_remove": {
    "ref": "docker.io/library/nginx:latest"
  },
  "volumes_list": {
    "draw": 1,
    "start": 0,
    "length": 25,
    "search": {
      "value": ""
    }
  },
  "volume_inspect": {
    "name": "my-volume"
  },
  "volume_size": {
    "name": "my-volume"
  },
  "volume_remove": {
    "name": "my-volume"
  },
  "volume_prune": [],
  "registry_list": [],
  "registry_login": {
    "registry": "docker.io",
    "username": "myuser",
    "password": "STRONG_PASSWORD",
    "save": 1
  },
  "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.

FieldDocumented type or shape
actionstring
databasestring
schemastring
tablestring
databases[]["id","database","users[]","size_mb"]
tables[]["schema","table","kind","size_bytes","estimated_rows"]
columns[]["name","type","nullable","default","sensitive","identity","generated"]
indexes[]["name","definition"]
rows[]object with secret-like fields redacted
affected_rowsint
max_affected_rowsint
sensitive_fields_redactedbool

Error response

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

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.

FieldDocumented type or shape
data[]["x","y"]
data[] compact["timestamp","value"]

Error response

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

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.

FieldDocumented type or shape
tasks_currentint
tasks_maxstring|int
process_countint
cpu_totalfloat
memory_total_mbfloat
threads_totalint
processes_top[]["pid","user","pcpu","pmem","rss_kb","rss_mb","threads","cmd"]

Error response

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

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.

FieldDocumented type or shape
columns[]array
rows[]array
exactbool

Error response

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

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.

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.

FieldDocumented type or shape
domainstring
site_urlstring
document_rootstring
db_namestring
db_userstring

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.

FieldDocumented type or shape
statusstring
messagestring
sourcestring
source_catalogstring
directory_urlstring
download_hoststring
package_typestring
slugstring
namestring
versionstring
pathstring
installedboolean
already_installedboolean
package_downloadedboolean
official_package_verifiedboolean
activation_requestedboolean
activeboolean
activation_errorstring
verificationobject
pluginsarray

Error response

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

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.

FieldDocumented type or shape
statusstring
messagestring
sourcestring
source_catalogstring
directory_urlstring
download_hoststring
package_typestring
slugstring
namestring
versionstring
pathstring
installedboolean
already_installedboolean
package_downloadedboolean
official_package_verifiedboolean
activation_requestedboolean
activeboolean
activation_errorstring
verificationobject
themesarray

Error response

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

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