# Client — Node.js Apps

<a id="get-api-v1-client-node-apps"></a>
#### `GET /api/v1/client/node-apps`

*List Node apps*

List Node.js apps owned by the authenticated client account.

**Responses:**

| Status | Schema | Description |
|--------|--------|-------------|
| `200` | `ApiSuccess_list_dict_str__Any___` | Successful Response |

**Response example (200):**

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

**cURL example:**

```bash
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/client/node-apps
```

---

<a id="post-api-v1-client-node-apps"></a>
#### `POST /api/v1/client/node-apps`

*Create Node app*

Create a new Node.js application for the authenticated client account.

**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:**

```bash
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/client/node-apps
```

---

<a id="post-api-v1-client-node-apps-analyze"></a>
#### `POST /api/v1/client/node-apps/analyze`

*Analyze Node project*

Analyze an uploaded archive or server-side path for the authenticated client account.

**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:**

```bash
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/client/node-apps/analyze
```

---

<a id="post-api-v1-client-node-apps-deploy"></a>
#### `POST /api/v1/client/node-apps/deploy`

*Deploy Node project*

Kick off the deploy pipeline for the authenticated client account.

**Responses:**

| Status | Schema | Description |
|--------|--------|-------------|
| `200` | `ApiSuccess_dict_str__Any__` | Successful Response |

**Response example (200):**

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

**cURL example:**

```bash
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/client/node-apps/deploy
```

---

<a id="get-api-v1-client-node-apps-deploy-task-id"></a>
#### `GET /api/v1/client/node-apps/deploy/{task_id}`

*Deploy task status*

Snapshot of a deploy task for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/deploy/{task_id}
```

---

<a id="get-api-v1-client-node-apps-deploy-task-id-events"></a>
#### `GET /api/v1/client/node-apps/deploy/{task_id}/events`

*Client Deploy Events*

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `task_id` | string | yes | — |

**Responses:**

| Status | Schema | Description |
|--------|--------|-------------|
| `200` | — | Successful Response |
| `422` | `HTTPValidationError` | Validation Error |

**cURL example:**

```bash
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/client/node-apps/deploy/{task_id}/events
```

---

<a id="delete-api-v1-client-node-apps-app-name"></a>
#### `DELETE /api/v1/client/node-apps/{app_name}`

*Delete Node app*

Delete a Node.js app for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}
```

---

<a id="get-api-v1-client-node-apps-app-name"></a>
#### `GET /api/v1/client/node-apps/{app_name}`

*Get Node app*

Get details for a Node.js app owned by the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}
```

---

<a id="put-api-v1-client-node-apps-app-name"></a>
#### `PUT /api/v1/client/node-apps/{app_name}`

*Update Node app*

Update a Node.js app's configuration for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}
```

---

<a id="get-api-v1-client-node-apps-app-name-env"></a>
#### `GET /api/v1/client/node-apps/{app_name}/env`

*Get env vars*

Get environment variables for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/env
```

---

<a id="put-api-v1-client-node-apps-app-name-env"></a>
#### `PUT /api/v1/client/node-apps/{app_name}/env`

*Set env vars*

Set environment variables for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/env
```

---

<a id="get-api-v1-client-node-apps-app-name-logs"></a>
#### `GET /api/v1/client/node-apps/{app_name}/logs`

*Get app logs*

Tail stdout/stderr/access/error logs for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/logs
```

---

<a id="get-api-v1-client-node-apps-app-name-npm"></a>
#### `GET /api/v1/client/node-apps/{app_name}/npm`

*List npm packages*

List installed npm packages for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/npm
```

---

<a id="post-api-v1-client-node-apps-app-name-npm-ci"></a>
#### `POST /api/v1/client/node-apps/{app_name}/npm/ci`

*npm install (lock-file)*

Install dependencies from the project's lock/manifest for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/npm/ci
```

---

<a id="post-api-v1-client-node-apps-app-name-npm-install"></a>
#### `POST /api/v1/client/node-apps/{app_name}/npm/install`

*Install npm packages*

Install npm packages for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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<string> | 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:**

```bash
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/client/node-apps/{app_name}/npm/install
```

---

<a id="post-api-v1-client-node-apps-app-name-npm-uninstall"></a>
#### `POST /api/v1/client/node-apps/{app_name}/npm/uninstall`

*Uninstall npm packages*

Uninstall npm packages for the authenticated client's app.

**Path parameters:**

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

**Body fields:**

| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `packages` | array<string> | 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:**

```bash
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/client/node-apps/{app_name}/npm/uninstall
```

---

<a id="post-api-v1-client-node-apps-app-name-restart"></a>
#### `POST /api/v1/client/node-apps/{app_name}/restart`

*Restart Node app*

Restart a Node.js app for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/restart
```

---

<a id="post-api-v1-client-node-apps-app-name-script"></a>
#### `POST /api/v1/client/node-apps/{app_name}/script`

*Run npm script*

Run a declared npm script for the authenticated client's app.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/script
```

---

<a id="post-api-v1-client-node-apps-app-name-start"></a>
#### `POST /api/v1/client/node-apps/{app_name}/start`

*Start Node app*

Start a Node.js app for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/start
```

---

<a id="get-api-v1-client-node-apps-app-name-status"></a>
#### `GET /api/v1/client/node-apps/{app_name}/status`

*Node app status*

Get runtime status of a Node.js app for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/status
```

---

<a id="post-api-v1-client-node-apps-app-name-stop"></a>
#### `POST /api/v1/client/node-apps/{app_name}/stop`

*Stop Node app*

Stop a Node.js app for the authenticated client account.

**Path parameters:**

| Name | Type | Required | Notes |
|------|------|----------|-------|
| `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:**

```bash
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/client/node-apps/{app_name}/stop
```

---

<a id="get-api-v1-client-node-versions"></a>
#### `GET /api/v1/client/node/versions`

*List Node versions*

List Node.js versions visible to the authenticated client account.

**Responses:**

| Status | Schema | Description |
|--------|--------|-------------|
| `200` | `ApiSuccess_dict_str__Any__` | Successful Response |

**Response example (200):**

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

**cURL example:**

```bash
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/client/node/versions
```

---
