Node.js Applications

Updated Oct 4, 2026 Markdown

GET /api/v1/accounts/{username}/node-apps

List Node apps

List Node.js applications for an account.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$

Responses:

Status Schema Description
200 ApiSuccess_list_dict_str__Any___ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": [
    {}
  ],
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps

POST /api/v1/accounts/{username}/node-apps

Create Node app

Create a new Node.js application for an account.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$

Body fields:

Field Type Required Notes
app_name string yes Application identifier (slug); pattern=^[a-z][a-z0-9_-]{1,30}$
app_type string no Framework type; default express; pattern=^(express|fastify|nestjs|nextjs|custom)$
auto_restart boolean no Restart on failure (systemd Restart=on-failure); default True
display_name string yes Human-readable name; minLength=1; maxLength=100
domain string yes Associated domain; minLength=3; maxLength=253
entry_point string yes Relative path to startup file (e.g. server.js); minLength=1; maxLength=200
env string no NODE_ENV value; default production; pattern=^(production|development)$
env_vars object no Environment variables
instances integer no Cluster worker count; 0 = auto (cpu count), 1 = single proc; default 1; minimum=0.0; maximum=16.0
max_memory_mb integer no Per-app memory cap (NODE_OPTIONS + cgroup); 0 = unlimited; default 0; minimum=0.0; maximum=8192.0
node_version string yes Node.js major version; pattern=^(18|20|22)$
package_manager string no Package manager; default npm; pattern=^(npm|pnpm|yarn)$
websocket boolean no Enable WebSocket support in nginx upstream; default True

Request body example:

JSON
{
  "app_name": "string",
  "app_type": "express",
  "auto_restart": true,
  "display_name": "string",
  "domain": "example.com",
  "entry_point": "string",
  "env": "production",
  "env_vars": {},
  "instances": 1,
  "max_memory_mb": 0,
  "node_version": "string",
  "package_manager": "npm",
  "websocket": true
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps

POST /api/v1/accounts/{username}/node-apps/analyze

Analyze Node project

Analyze an uploaded archive or server-side path; returns framework + entry point + warnings.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$

Body fields:

Field Type Required Notes
archive string no —
server_path string no —

Request body example:

JSON
{
  "archive": "string",
  "server_path": "string"
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/analyze

POST /api/v1/accounts/{username}/node-apps/deploy

Deploy Node project

Kick off the deploy pipeline. Returns a task_id for SSE subscription.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/deploy

GET /api/v1/accounts/{username}/node-apps/deploy/{task_id}

Deploy task status

Snapshot of a deploy task (for polling fallback when SSE is unavailable).

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
task_id string yes —

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/deploy/{task_id}

GET /api/v1/accounts/{username}/node-apps/deploy/{task_id}/events

Deploy Events

SSE stream of a running deploy task.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
task_id string yes —

Responses:

Status Schema Description
200 — Successful Response
422 HTTPValidationError Validation Error

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/deploy/{task_id}/events

DELETE /api/v1/accounts/{username}/node-apps/{app_name}

Delete Node app

Delete a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 MessageResponse Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "message": "string",
  "status": "success"
}

cURL example:

shell
curl -X DELETE \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}

GET /api/v1/accounts/{username}/node-apps/{app_name}

Get Node app

Get details of a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}

PUT /api/v1/accounts/{username}/node-apps/{app_name}

Update Node app

Update a Node.js application's configuration.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Body fields:

Field Type Required Notes
app_type string no —
auto_restart boolean no —
display_name string no —
domain string no —
entry_point string no —
env string no —
instances integer no —
max_memory_mb integer no —
node_version string no —
package_manager string no —
websocket boolean no —

Request body example:

JSON
{
  "app_type": "string",
  "auto_restart": false,
  "display_name": "string",
  "domain": "string",
  "entry_point": "string",
  "env": "string",
  "instances": 0,
  "max_memory_mb": 0,
  "node_version": "string",
  "package_manager": "string",
  "websocket": false
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X PUT \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}

GET /api/v1/accounts/{username}/node-apps/{app_name}/env

Get env vars

Get environment variables for a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/env

PUT /api/v1/accounts/{username}/node-apps/{app_name}/env

Set env vars

Replace environment variables for a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Body fields:

Field Type Required Notes
env_vars object yes —

Request body example:

JSON
{
  "env_vars": {}
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X PUT \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/env

GET /api/v1/accounts/{username}/node-apps/{app_name}/logs

Get app logs

Tail stdout/stderr/access/error logs for a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Query parameters:

Name Type Required Notes
lines integer no minimum=1; maximum=5000
log_type string no pattern=^(stdout|stderr|access|error)$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/logs

GET /api/v1/accounts/{username}/node-apps/{app_name}/npm

List npm packages

List installed npm packages for a Node app.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_list_dict_str__Any___ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": [
    {}
  ],
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/npm

POST /api/v1/accounts/{username}/node-apps/{app_name}/npm/ci

npm install (lock-file)

Install dependencies from the project's lock/manifest file (npm ci equivalent).

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/npm/ci

POST /api/v1/accounts/{username}/node-apps/{app_name}/npm/install

Install npm packages

Install one or more npm packages (production or dev).

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Body fields:

Field Type Required Notes
dev boolean no Install as devDependency; default False
packages array yes —

Request body example:

JSON
{
  "dev": false,
  "packages": [
    "string"
  ]
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/npm/install

POST /api/v1/accounts/{username}/node-apps/{app_name}/npm/uninstall

Uninstall npm packages

Uninstall one or more npm packages.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Body fields:

Field Type Required Notes
packages array yes —

Request body example:

JSON
{
  "packages": [
    "string"
  ]
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/npm/uninstall

POST /api/v1/accounts/{username}/node-apps/{app_name}/restart

Restart Node app

Restart a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/restart

POST /api/v1/accounts/{username}/node-apps/{app_name}/script

Run npm script

Run a declared npm script (e.g. build, test).

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Body fields:

Field Type Required Notes
script string yes minLength=1; maxLength=40

Request body example:

JSON
{
  "script": "string"
}

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  -H "Content-Type: application/json" \
  -d @body.json \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/script

POST /api/v1/accounts/{username}/node-apps/{app_name}/start

Start Node app

Start a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/start

GET /api/v1/accounts/{username}/node-apps/{app_name}/status

Node app status

Get runtime status of a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/status

POST /api/v1/accounts/{username}/node-apps/{app_name}/stop

Stop Node app

Stop a Node.js application.

Path parameters:

Name Type Required Notes
username string yes pattern=^[a-z][a-z0-9]{2,15}$
app_name string yes pattern=^[a-z][a-z0-9_-]{1,30}$

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response
422 HTTPValidationError Validation Error

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X POST \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/accounts/{username}/node-apps/{app_name}/stop

GET /api/v1/system/node/apps

List all Node apps

Admin overview — list Node.js apps across all accounts.

Responses:

Status Schema Description
200 ApiSuccess_list_dict_str__Any___ Successful Response

Response example (200):

JSON
{
  "data": [
    {}
  ],
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/system/node/apps

GET /api/v1/system/node/versions

List Node versions

List Node.js versions actually installed on the server.

Responses:

Status Schema Description
200 ApiSuccess_dict_str__Any__ Successful Response

Response example (200):

JSON
{
  "data": {},
  "message": "",
  "status": "success",
  "warnings": [
    "string"
  ]
}

cURL example:

shell
curl -X GET \
  -H "X-WHost-Key: $WHOST_API_KEY" \
  -H "X-WHost-Timestamp: $(date +%s)" \
  -H "X-WHost-Nonce: $(openssl rand -hex 16)" \
  -H "X-WHost-Signature: $(compute_hmac)" \
  https://your-server:2000/api/v1/system/node/versions
Still Need Help?

Our support team is here around the clock for anything you can't find above.