Table of Contents
< All Topics

REST API Create, Endpoints & Examples

Print

NGXStorage REST API v2.4.1

Unified REST API documentation for NGXStorage software 2.4.1. This edition reconciles the older 2.4.0 knowledge-base material with the 2.4.1 OpenAPI export and keeps the content in a WordPress-friendly HTML format.

This edition documents 63 operations across Auth Group, ISCSI Target, Log, LUN, Pool, Share, Portal Group, Snapshot, Status, and Network resources.

Overview

NGXStorage exposes a bearer-token protected REST API for storage administration and monitoring. The unified reference below combines setup guidance, request examples, and normalized endpoint entries for all operations found in the 2.4.1 OpenAPI export.

Base URL and Authentication

Base URL pattern: https://<storage-host>

  • Authentication uses HTTP bearer tokens.
  • Send the token in the Authorization header as Bearer <API_KEY>.
  • Replace <storage-host> with the management IP or DNS name of your NGXStorage system.
Authorization: Bearer <API_KEY>

API Key Creation and Permissions

Step 1

Open Configuration > API Management to reach the API administration screen.

API workflow step 1

Step 2

Select New API to create a fresh bearer token.

API workflow step 2

Step 3

Set enable state, name, expiration time, and authorized pools. If no pools are selected, the key is valid for all pools.

API workflow step 3

Step 4

Open the Permissions tab and grant endpoint-level access before saving.

API workflow step 4

Step 5

Review the generated key in the API Management table.

API workflow step 5

Step 6

Use Show to display and copy the bearer token value.

API workflow step 6

Quick Request Examples

  1. Curl

    curl \
      --location 'https://<storage-host>/api/v2/pool/<POOL_ID>' \
      --header 'Authorization: Bearer <API_KEY>'
  2. Python – requests

    import requests
    
    headers = {
    'Authorization': 'Bearer <API_KEY>',
    }
    
    response = requests.get('https://<storage-host>/api/v2/pool/<POOL_ID>', headers=headers)
    print(response.json())
  3. Go

    package main
    
    import (
    "fmt"
    "io"
    "log"
    "net/http"
    )
    
    func main() {
    client := &http.Client{}
    req, err := http.NewRequest("GET", "https://<storage-host>/api/v2/pool/<POOL_ID>", nil)
    if err != nil {
    log.Fatal(err)
    }
    req.Header.Set("Authorization", "Bearer <API_KEY>")
    resp, err := client.Do(req)
    if err != nil {
    log.Fatal(err)
    }
    defer resp.Body.Close()
    body, err := io.ReadAll(resp.Body)
    if err != nil {
    log.Fatal(err)
    }
    fmt.Println(string(body))
    }
  4. PHP

    <?php
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, 'https://<storage-host>/api/v2/pool/<POOL_ID>');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer <API_KEY>',
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    echo $response;
  5. JavaScript – Fetch

    fetch('https://<storage-host>/api/v2/pool/<POOL_ID>', {
      headers: {
    Authorization: 'Bearer <API_KEY>'
      }
    })
      .then((response) => response.json())
      .then((data) => console.log(data));
  6. Node.js – Axios

    import axios from 'axios';
    
    const response = await axios.get('https://<storage-host>/api/v2/pool/<POOL_ID>', {
      headers: {
    Authorization: 'Bearer <API_KEY>'
      }
    });
    
    console.log(response.data);

Endpoint Reference

Auth Group

Create

Method: POST

URL: https://<storage-host>/api/v2/auth_group/

Creates a new authentication group by accepting a JSON body with two required properties: `name` (string) and `owner` (string). On success, it returns the unique identifier of the newly created group under `id` along with a string `success` flag.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
name string yes none 1-30 letters or numbers
owner string yes none 1-20 letters, numbers, underscores, or hyphens

Example Request Body

{
  "name": "new_auth_group",
  "owner": "RSA3Q866_B"
}

Example Success Response

{
  "id": "553bf10cef175f3c3a6d607cfe3987d9d2cce412",
  "success": true
}

Delete

Method: DELETE

URL: https://<storage-host>/api/v2/auth_group/{id}

Deletes the authentication group specified by the path parameter `id` (string). Returns a boolean `success` indicating whether the deletion was successful.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true
}

Change Name

Method: PATCH

URL: https://<storage-host>/api/v2/auth_group/{id}

Updates the name and owner of an existing authentication group identified by `id`. The JSON body must include both `name` (string) and `owner` (string). Returns a boolean `success` on completion.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
name string yes none none
owner string yes none none

Example Request Body

{
  "name": "asdsadasasdasd!d",
  "owner": "RSA3Q866_A"
}

Example Success Response

{
  "success": true
}

Add CHAP

Method: PATCH

URL: https://<storage-host>/api/v2/auth_group/chap/{id}

Adds or updates CHAP credentials for the authentication group identified by the path parameter `id`. The body requires `username` (string), `password` (string), and `owner` (string). Returns `success: true` if applied.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
username string yes none none
password string yes none none
owner string yes none none

Example Request Body

{
  "username": "<string>",
  "password": "<string>",
  "owner": "<string>"
}

Example Success Response

{
  "success": true
}

Delete CHAP

Method: DELETE

URL: https://<storage-host>/api/v2/auth_group/chap/{id}

Removes CHAP credentials from the authentication group identified by `id`. Returns a boolean `success` indicating the result.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true
}

Add IQN

Method: PATCH

URL: https://<storage-host>/api/v2/auth_group/iqn/{id}

Registers an iSCSI initiator IQN to the authentication group `id`. The request body must include `iqn` (string), `iqn_alias` (string), and `owner` (string). On success, returns the newly added IQN’s `id` and `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
owner string yes none none
iqn string yes none none
iqn_alias string yes none none

Example Request Body

{
  "iqn": "iqn.1993-08.org.debian.iscsi:01:107dc7e4254a",
  "iqn_alias": "TEST",
  "owner": "SGZ1RVC2_A"
}

Example Success Response

{
  "id": "4c26db3b6d4a9dd66e8f1ffcd8dd6c8278f8e6d1",
  "success": true
}

Delete IQN

Method: DELETE

URL: https://<storage-host>/api/v2/auth_group/iqn/{iqn_id}/

Deletes the iSCSI initiator IQN specified by `iqn_id` (string) from its authentication group. Returns an empty object on success.

Success status: 200

Path Parameters

Parameter Type Required Description Details
iqn_id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Detail

Method: GET

URL: https://<storage-host>/api/v2/auth_group/{id}

Fetches detailed information for the authentication group specified by `id`. The response includes CHAP settings (`chap` object with `username` and `password`), `chap_status` (integer), the group’s `initiator` list, as well as `group_id`, `group_name`, and `owner`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none up to 40 characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "chap": {
    "password": "chfsgsdf435345",
    "username": "dddggg"
  },
  "chap_status": 1,
  "group_id": "59f5004ecb2944f1b456c904f2e9ee9e541c31bb",
  "group_name": "sisitv",
  "initiator": [
    {
      "id": "aa5fce737911a2686ca219a71c8e784e8116623b",
      "iqn": "iqn.2016-04.com.open-iscsi:751a7fe0b28",
      "iqn_alias": "asdas"
    }
  ],
  "owner": "RSA3Q866_A"
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/auth_group/list

Provides detailed listings for all authentication groups, including CHAP status, initiators, and ownership for each group. No parameters are needed.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "group_id": "1",
    "group_name": "DefaultAuthGroup"
  },
  {
    "chap": {
      "password": "qaxwscedrfv4",
      "username": "muslum"
    },
    "chap_status": 1,
    "group_id": "8e60d81b35c914076015c62845fe5112baf60985",
    "group_name": "test",
    "initiator": [],
    "owner": "RSA3Q866_A"
  },
  {
    "chap": {
      "password": "chfsgsdf435345",
      "username": "dddggg"
    },
    "chap_status": 1,
    "group_id": "59f5004ecb2944f1b456c904f2e9ee9e541c31bb",
    "group_name": "sisitv",
    "initiator": [],
    "owner": "RSA3Q866_A"
  },
  {
    "chap_status": 0,
    "group_id": "2d27f92411a99fbb9b93958b63a045162701b603",
    "group_name": "bvfff",
    "initiator": [],
    "owner": "RSA3Q866_A"
  },
  {
    "chap_status": 0,
    "group_id": "f588b53f54169a5b597d1deb380613709abeed39",
    "group_name": "cndrimg49e4e10eadb94762b224e41",
    "initiator": [],
    "owner": "RSA3Q866_A"
  },
  {
    "chap_status": 0,
    "group_id": "d70676a6fed69c7b2c33f429bf283465d566adb1",
    "group_name": "cindere2c2ac2729a84957ba47541f",
    "initiator": [],
    "owner": "RSA3Q866_A"
  },
  {
    "chap_status": 0,
    "group_id": "9ebc3933dcc7824acbf24becf29d0b80cce821e4",
    "group_name": "cinderbac994a4fb66463193f73479",
    "initiator": [
      {
        "id": "fee8c2740b99f4da1671f5a13595a08fde77ad0c",
        "iqn": "iqn.2016-04.com.open-iscsi:751a7fe0b28",
        "iqn_alias": "cinderdevstack01"
      }
    ],
    "owner": "RSA3Q866_A"
  }
]

List

Method: GET

URL: https://<storage-host>/api/v2/auth_group/

Retrieves a list of all authentication groups. No parameters are required. Each entry in the returned array includes `group_id` (string), `group_name` (string) and an `owner` (string).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "group_id": "1",
    "group_name": "DefaultAuthGroup"
  },
  {
    "chap": {
      "password": "qaxwscedrfv4",
      "username": "muslum"
    },
    "group_id": "8e60d81b35c914076015c62845fe5112baf60985",
    "group_name": "test",
    "owner": "RSA3Q866_A"
  },
  {
    "chap": {
      "password": "chfsgsdf435345",
      "username": "dddggg"
    },
    "group_id": "59f5004ecb2944f1b456c904f2e9ee9e541c31bb",
    "group_name": "sisitv",
    "owner": "RSA3Q866_A"
  },
  {
    "group_id": "2d27f92411a99fbb9b93958b63a045162701b603",
    "group_name": "bvfff",
    "owner": "RSA3Q866_A"
  },
  {
    "group_id": "f588b53f54169a5b597d1deb380613709abeed39",
    "group_name": "cndrimg49e4e10eadb94762b224e41",
    "owner": "RSA3Q866_A"
  },
  {
    "group_id": "d70676a6fed69c7b2c33f429bf283465d566adb1",
    "group_name": "cindere2c2ac2729a84957ba47541f",
    "owner": "RSA3Q866_A"
  },
  {
    "group_id": "9ebc3933dcc7824acbf24becf29d0b80cce821e4",
    "group_name": "cinderbac994a4fb66463193f73479",
    "owner": "RSA3Q866_A"
  }
]

ISCSI Target

Create

Method: POST

URL: https://<storage-host>/api/v2/target/iscsi/

Creates a new iSCSI target. No request body is required. On success, returns an empty object.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
name string yes none 1-30 letters, numbers, underscores, or hyphens
auth_group_id string yes none 1-40 hexadecimal characters
portal_group_id string yes none 1-40 hexadecimal characters
owner string yes none 1-20 letters, numbers, underscores, or hyphens
lun_ids array<string> no none none

Example Request Body

"{
    \"name\": \"asdasdas2das12\",
    \"auth_group_id\": \"1\",
    \"portal_group_id\": \"f5cbaacabc4410a4a0a71ce7b08f5a21d8d2715c\",
    \"owner\": \"RSA3Q866_A\",
}"

Example Success Response

{
  "id": "25b80791bdaabec51b01c255dbab10247970b80c",
  "luns": [
    {
      "lun_id": "589c00525341335138363668c49340f386985d",
      "lun_name": "testfc",
      "lun_number": "7",
      "pool_name": "datapool1",
      "vol_id": "f98d89b9fd828e0cbe86af842e6ea55f87860178"
    },
    {
      "lun_id": "589c005253413351383636db0f47f0e21ae524",
      "lun_name": "testfc2",
      "lun_number": "8",
      "pool_name": "datapool1",
      "vol_id": "bdb27f44018f8162773956a1fe2a935b5323a73e"
    }
  ],
  "success": true
}

Delete

Method: DELETE

URL: https://<storage-host>/api/v2/iscsi_target/{id}

Deletes the iSCSI target identified by `id` (string). Returns `success: true` on successful deletion.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true
}

Change Name

Method: PATCH

URL: https://<storage-host>/api/v2/iscsi_target/{id}

Updates the name `name`, (string) and `owner` (string) of the iSCSI target specified by `id`. Returns a boolean `success`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 5-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
name string yes none 1-30 letters, numbers, underscores, or hyphens
owner string yes none 1-20 letters, numbers, underscores, or hyphens

Example Request Body

{
  "name": "<string>",
  "owner": "<string>"
}

Example Success Response

{
  "success": true
}

Change Portal Group

Method: PATCH

URL: https://<storage-host>/api/v2/iscsi_target/portal_group/{target_id}

Changes the portal group for a given target. The body must include `portal_group_id` (string) and `owner` (string). Returns `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
target_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
portal_group_id string yes none 1-40 hexadecimal characters
owner string yes none 1-20 letters, numbers, underscores, or hyphens

Example Request Body

{
  "success": true
}

Example Success Response

{
  "success": true
}

Change Auth Group

Method: PATCH

URL: https://<storage-host>/api/v2/iscsi_target/auth_group/{target_id}

Associates an authentication group `auth_group_id`, (string) with the specified target `target_id`. Body also requires `owner` (string). Returns a string `success`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
target_id string yes none none

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
auth_group_id string yes none 1-40 hexadecimal characters
owner string yes none 1-20 letters, numbers, underscores, or hyphens

Example Request Body

"{
    \"auth_group_id\": \"25234a248eb0b7a92afd83b7de9467ab671e1e23\",
    \"owner\": \"1\",
}"

Example Success Response

{
  "success": true
}

Add LUN

Method: PUT

URL: https://<storage-host>/api/v2/iscsi_target/lun/{id}/

Attaches one or more LUNs to the target identified by `id`. The JSON body requires `lun_ids` (array of strings) and `owner` (string). Returns the list of newly bound LUN objects and `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none none

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
lun_ids array<string> yes none none
owner string yes none 1-20 letters, numbers, underscores, or hyphens

Example Request Body

{
  "lun_ids": [
    "<string>"
  ],
  "owner": "<string>"
}

Example Success Response

{
  "luns": [
    {
      "lun_id": "589c0053475a31525643328a677dc13171160e",
      "lun_name": "clonename",
      "lun_number": "0",
      "pool_name": "sadasd",
      "vol_id": "635085887d0955f883fce8ecac310d7e4129f6f1"
    }
  ],
  "success": true
}

Delete LUN

Method: PATCH

URL: https://<storage-host>/api/v2/iscsi_target/lun/{id}

Detaches specified LUNs from the target `id`. The body must list `lun_ids` (array of strings) and include `owner` (string). Returns remaining LUNs and `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
lun_ids array<string> yes none none
owner string yes none 1-20 letters, numbers, underscores, or hyphens

Example Request Body

"{
    \"lun_ids\": [
        \"635085887d0955f883fce8ecac310d7e4129f6f1\"
    ],
    \"owner\": \"1\",
}"

Example Success Response

{
  "luns": [
    {
      "lun_id": "589c0053475a31525643322ae170d3dca0087d",
      "lun_name": "sada21sd212",
      "lun_number": "1",
      "pool_name": "sadasd",
      "vol_id": "3ba3d42df37c4d0fc74335f59f316e87e795f6e0"
    }
  ],
  "success": true
}

Detail

Method: GET

URL: https://<storage-host>/api/v2/iscsi_target/{id}

Retrieves detailed configuration for the target `id`, including `target_iqn`, portal and group associations, attached LUNs array (with `vol_id`, `lun_number`, etc.), as well as `group_name` and ownership.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "target_iqn": "iqn.2015-03.com.ngxio.rsa3q866:t1",
  "scsi_target_name": "t1",
  "portal_id": "84904f58234656a66ede2075a38596003bb0013c",
  "iqn_name": "iqn.2015-03.com.ngxio.rsa3q866",
  "portal_name": "asgasdg",
  "scsi_id": "fc9a57b1fd478fa0aa72fb1bb81cd5129eb1de3f",
  "luns": [
    {
      "profile": "-",
      "vol_id": "fe8a213fd118cef3010239b167fa86fe88c8d101",
      "lun_id": "589c0001c1d60fe4ac1f312febffe4ae",
      "lun_number": "0",
      "lun_name": "x",
      "pool_name": "nvme1"
    }
  ],
  "group_id": "1",
  "owner": "1",
  "group_name": "DefaultAuthGroup"
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/iscsi_target/list

Fetches detailed information on all iSCSI targets, including portal, group, and attached LUN details. No parameters needed.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "iqn_name": "iqn.2015-03.com.ngxio.rsa3q866",
    "scsi_id": "fc9a57b1fd478fa0aa72fb1bb81cd5129eb1de3f",
    "luns": [
      {
        "lun_name": "x",
        "lun_number": "0",
        "pool_name": "nvme1",
        "vol_id": "fe8a213fd118cef3010239b167fa86fe88c8d101",
        "lun_id": "589c0001c1d60fe4ac1f312febffe4ae",
        "profile": "-"
      }
    ],
    "owner": "1",
    "scsi_target_name": "t1",
    "portal_name": "asgasdg",
    "portal_id": "84904f58234656a66ede2075a38596003bb0013c",
    "target_iqn": "iqn.2015-03.com.ngxio.rsa3q866:t1",
    "group_name": "DefaultAuthGroup",
    "group_id": "1"
  }
]

List

Method: GET

URL: https://<storage-host>/api/v2/iscsi_target/

Lists all iSCSI targets, each entry containing `scsi_target_name` (string), `scsi_id` (string), and `owner` (string).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "scsi_target_name": "t1",
    "scsi_id": "fc9a57b1fd478fa0aa72fb1bb81cd5129eb1de3f",
    "owner": "1"
  }
]

Log

Alert

Method: GET

URL: https://<storage-host>/api/v2/log/alert

Retrieves system alert logs with optional query filters such as `filter[type][]`, `filter[time][]`, `sort[]`, `order`, `limit`, and `page`. Returns an array of alert entries (`id`, `type`, `time`, `description`, etc.).

Success status: 200

Path Parameters

None.

Query Parameters

Parameter Type Required Description Details
filter[type][] array<string> no info, warning, error, fatal none
filter[time][] array<string> no first index startdate second index last date none
sort[] array<string> no id, time, event_id, type, description none
order string no desc, asc asc or desc
limit integer no none 0 to 1000
page integer no none none

Body Parameters

None.

Example Success Response

[
  {
    "description": "Level 2: Watchdog Timeout Event - 03/21/2025 15:57:28",
    "event_id": "d925529b-0879-11f0-af9f-ac1f6ba10744",
    "id": 8911,
    "notify": null,
    "time": "2025-03-24 09:33:08",
    "type": "WARNING"
  },
  {
    "description": "Level 2: Watchdog Timeout Event - 03/21/2025 15:58:38",
    "event_id": "d925529b-0879-11f0-af9f-ac1f6ba10744",
    "id": 8912,
    "notify": null,
    "time": "2025-03-24 09:33:08",
    "type": "WARNING"
  },
  {
    "description": "All Cluster Interconnects Failed",
    "event_id": "47444f1b-0879-11f0-af9f-ac1f6ba10744",
    "id": 8910,
    "notify": null,
    "time": "2025-03-24 09:29:02",
    "type": "WARNING"
  }
]

Audit

Method: GET

URL: https://<storage-host>/api/v2/log/audit

Fetches audit trail logs. Supports filtering by `filter[time][]`, `filter[user]`, `filter[host]`, and text search on `filter[agent]` or `filter[description]`, plus `sort`, `order`, `limit`, and `page`. Returns entries (`id`, `user`, `host`, `time`, `agent`, `description`).

Success status: 200

Path Parameters

None.

Query Parameters

Parameter Type Required Description Details
filter[time][] array<string> no first index start date second index last date none
sort[] array<string> no time, id, user, host, agent, description none
order string no desc, asc none
limit integer no none none
page integer no none none
filter[user] string no admin none
filter[host] string no 192.168.1.29 none
filter[agent] string no none none
filter[description] string no none none

Body Parameters

None.

Example Success Response

[
  {
    "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
    "description": "User logged in",
    "id": 10210,
    "rhost": "192.168.1.29",
    "time": "2025-01-29 11:50:51",
    "user": "admin"
  },
  {
    "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
    "description": "User logged in",
    "id": 10271,
    "rhost": "192.168.1.29",
    "time": "2025-01-30 20:45:11",
    "user": "admin"
  },
  {
    "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
    "description": "User logged in",
    "id": 10313,
    "rhost": "192.168.1.29",
    "time": "2025-02-03 16:13:31",
    "user": "admin"
  },
  {
    "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
    "description": "User logged in",
    "id": 10396,
    "rhost": "192.168.1.29",
    "time": "2025-02-04 10:14:46",
    "user": "admin"
  },
  {
    "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
    "description": "User logged in",
    "id": 10488,
    "rhost": "192.168.1.29",
    "time": "2025-02-05 10:31:55",
    "user": "admin"
  }
]

System Event

Method: GET

URL: https://<storage-host>/api/v2/log/system_event

Returns hardware/system events, filterable by `filter[time][]`, `filter[function]`, `filter[action]`, and `filter[sensor]` with pagination and sorting. Each event includes `id`, `sensor`, `function`, `action`, and `time`.

Success status: 200

Path Parameters

None.

Query Parameters

Parameter Type Required Description Details
filter[time][] array<string> no first index startdate second index last date none
sort[] array<string> no time, id, function, action, sensor none
order string no desc, asc none
limit integer no none none
page integer no none none
filter[function] string no none none
filter[action] string no none none
filter[sensor] string no none none

Body Parameters

None.

Example Success Response

[
  {
    "action": "Asserted",
    "function": "Power cycle ()",
    "id": 342,
    "sensor": "Watchdog2 #0xca",
    "time": "03/04/2025 15:33:40"
  },
  {
    "action": "Asserted",
    "function": "Power cycle ()",
    "id": 340,
    "sensor": "Watchdog2 #0xca",
    "time": "03/03/2025 15:08:20"
  },
  {
    "action": "Asserted",
    "function": "Power cycle ()",
    "id": 293,
    "sensor": "Watchdog2 #0xca",
    "time": "12/13/2024 15:18:39"
  }
]

LUN

Create

Method: POST

URL: https://<storage-host>/api/v2/lun/

Creates one or more LUNs. Required body fields: `pool_name` (string), `name` (string), `size` (number). Optional fields include `deduplication`, `compression`, `thin_provision`, `blocksize`, `flash_cache`, `size_letter`, `dram_cache`, `io_type`, `qos_priority`, `force`, and `quantity`. Returns an array of created LUNs (`vol_id`, `scsi_lunid`, `vol_used`) and `success: true`.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
pool_name string yes Needed 1-20 letters or numbers
name string yes Needed 1-30 letters, numbers, underscores, or hyphens
size integer yes Needed 1 or greater
sing string no Optional – Default: 'G' – [M|G|T] single character: M, G, or T
blocksize string no Optional – Default: auto – ['4k', '8k', '16k', '32k', '64k', '128k'] one of 4k, 8k, 16k, 32k, 64k, or 128k
deduplication string no Optional – Default: off – ['on', 'off'] on or off
compression string no Optional – Default: off – ['on', 'off'] on or off
thin_provision string no Optional – Default: off – ['on', 'off'] on or off
io_type string no Optional – Default: 'transactional' – ['transactional', 'sequential'] transactional or sequential
qos_priority integer no Optional – Default: 16 – [4, 8, 16, 32, 64, 128] 4, 8, 16, 32, 64, or 128
quantity integer no Optional – Default: 1 1 or greater

Example Request Body

{
  "pool_name": "test",
  "name": "sada21sd212",
  "size": 2,
  "deduplication": "on",
  "compression": "off",
  "thin_provision": "on",
  "blocksize": "32k",
  "flash_cache": "on",
  "size_letter": "G",
  "dram_cache": "on",
  "io_type": "sequential",
  "qos_priority": 32,
  "force": "false",
  "quantity": 10
}

Example Success Response

{
  "luns": [
    {
      "scsi_lunid": "589c0052534133513836363f52dd30b2080d02",
      "success": "true",
      "vol_id": "4634e3ce77ea33204561cc96b764745350e7c601",
      "vol_used": "4096"
    }
  ],
  "success": true
}

Delete

Method: DELETE

URL: https://<storage-host>/api/v2/lun/{vol_id}

Deletes the LUN identified by the path parameter `vol_id`. Returns `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true
}

Modify

Method: PATCH

URL: https://<storage-host>/api/v2/lun/{vol_id}

Modifies properties of an existing LUN (`vol_id`): accepts optional body parameters (`size`, `deduplication`, `compression`, `thin_provision`, `flash_cache`, `dram_cache`, `io_type`, `qos_priority`, `force`). Returns `success` and the updated `vol_size`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
size integer no Optional 1 or greater
sing string no Optional – Default: 'G' – [M|G|T] single character: M, G, or T
deduplication string no Optional – Default: off – ['on', 'off'] on or off
compression string no Optional – Default: off – ['on', 'off'] on or off
thin_provision string no Optional – Default: off – ['on', 'off'] on or off
io_type string no Optional – Default: 'transactional' – ['transactional', 'sequential'] transactional or sequential
qos_priority integer no Optional – Default: 16 – [4, 8, 16, 32, 64, 128] 4, 8, 16, 32, 64, or 128
flash_cache string no Optional – Default: on – ['on', 'off'] on or off
dram_cache string no Optional – Default: on – ['on', 'off'] on or off

Example Request Body

{
  "size": 0,
  "sing": "M",
  "deduplication": "on",
  "compression": "on",
  "thin_provision": "on",
  "io_type": "transactional",
  "qos_priority": 4,
  "flash_cache": "on",
  "dram_cache": "on"
}

Example Success Response

{
  "success": true,
  "vol_size": "2147483648"
}

Detail

Method: GET

URL: https://<storage-host>/api/v2/lun/{vol_id}

Retrieves detailed LUN information for `vol_id`, including block size (`blocksize`), provision type, cache settings, current `vol_used`, and protocol status.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none none

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "blocksize": "16384",
  "clone": "",
  "dedup": "off",
  "vol_size": "1073741824",
  "pool_name": "nvme1",
  "compress_ratio": "-",
  "owner": "1",
  "vol_name": "lun2",
  "qos_priority": 128,
  "vol_id": "f5d09c2614f903f1c1700e14a36a329f763c56bd",
  "scsi_lunid": "589c004ef5ddf2db32dd4437960711b2",
  "vol_used": "1042223104",
  "flash_cache": "on",
  "protocols": {
    "fc": null,
    "iscsi": null
  },
  "dram_cache": "on",
  "compress": "off",
  "io_type": "transactional",
  "sizebysnapshots": "0",
  "provision_type": "full"
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/lun/list

Provides a detailed list of all LUNs, including usage, dedup/compression status, provision type, QoS priority, and full protocol information.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "vol_size": "1073741824",
    "dedup": "off",
    "pool_name": "nvme1",
    "scsi_lunid": "589c004ef5ddf2db32dd4437960711b2",
    "clone": "",
    "sizebysnapshots": "0",
    "vol_name": "lun2",
    "compress_ratio": "-",
    "dram_cache": "on",
    "owner": "1",
    "qos_priority": 128,
    "vol_used": "1042223104",
    "blocksize": "16384",
    "protocols": {
      "iscsi": null,
      "fc": null
    },
    "provision_type": "full",
    "io_type": "transactional",
    "flash_cache": "on",
    "compress": "off",
    "vol_id": "f5d09c2614f903f1c1700e14a36a329f763c56bd"
  },
  {
    "vol_name": "x",
    "sizebysnapshots": "57344",
    "compress_ratio": "-",
    "vol_size": "1100585369600",
    "clone": "",
    "scsi_lunid": "589c0001c1d60fe4ac1f312febffe4ae",
    "pool_name": "nvme1",
    "dedup": "off",
    "protocols": {
      "iscsi": "t1",
      "fc": null
    },
    "blocksize": "16384",
    "flash_cache": "on",
    "io_type": "transactional",
    "vol_id": "fe8a213fd118cef3010239b167fa86fe88c8d101",
    "compress": "off",
    "provision_type": "thin",
    "dram_cache": "on",
    "vol_used": "1106423808",
    "owner": "1",
    "qos_priority": 16
  }
]

List

Method: GET

URL: https://<storage-host>/api/v2/lun/

Lists all LUNs with minimal info: `name`, `pool`, `owner`, and `vol_id`.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "name": "lun2",
    "pool": "nvme1",
    "owner": "1",
    "vol_id": "f5d09c2614f903f1c1700e14a36a329f763c56bd"
  },
  {
    "name": "x",
    "pool": "nvme1",
    "owner": "1",
    "vol_id": "fe8a213fd118cef3010239b167fa86fe88c8d101"
  }
]

Pool

Detail

Method: GET

URL: https://<storage-host>/api/v2/pool/{id}/

Retrieves status and configuration for the storage pool identified by `id`, including RAID type, encryption status, disk layout (`data` array), and integrity checks.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 1-40 characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "encryption": 0,
  "owner": "1",
  "stripe_len": 2,
  "status": "ONLINE",
  "is_nvme": 1,
  "raidtype": "raid1",
  "data": [
    {
      "state": "ONLINE",
      "info": "",
      "lunid": "",
      "stripe_info": "c-1",
      "enclosure": "E1:S18",
      "disk": "HDD18"
    },
    {
      "info": "",
      "state": "ONLINE",
      "enclosure": "E1:S15",
      "disk": "HDD15",
      "lunid": "",
      "stripe_info": "c-1"
    }
  ],
  "pool_name": "nvme1",
  "integrity": {
    "can_stop": 0,
    "can_start": 1,
    "info": "No info"
  },
  "pool_id": "b42ecdf4c9a0e6677546fb4da04b0ebede0476e5"
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/pool/list

Returns detailed information for all pools—mirroring the detail endpoint—and includes per-pool disk configuration and integrity fields.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "status": "ONLINE",
    "encryption": 0,
    "is_nvme": 1,
    "raidtype": "raid1",
    "owner": "1",
    "data": [
      {
        "lunid": "",
        "info": "",
        "disk": "HDD18",
        "enclosure": "E1:S18",
        "stripe_info": "c-1",
        "state": "ONLINE"
      },
      {
        "info": "",
        "state": "ONLINE",
        "stripe_info": "c-1",
        "disk": "HDD15",
        "enclosure": "E1:S15",
        "lunid": ""
      }
    ],
    "stripe_len": 2,
    "integrity": {
      "info": "No info",
      "can_start": 1,
      "can_stop": 0
    },
    "pool_name": "nvme1",
    "pool_id": "b42ecdf4c9a0e6677546fb4da04b0ebede0476e5"
  },
  {
    "is_nvme": 1,
    "encryption": 0,
    "owner": "1",
    "raidtype": "raid5",
    "status": "ONLINE",
    "pool_name": "ryo2",
    "integrity": {
      "can_stop": 0,
      "info": "No info",
      "can_start": 1
    },
    "pool_id": "158958043cc29b0eaf226fee5060ede83e92eceb",
    "stripe_len": 3,
    "data": [
      {
        "info": "",
        "disk": "HDD4",
        "enclosure": "E1:S4",
        "stripe_info": "c-1",
        "state": "ONLINE",
        "lunid": ""
      },
      {
        "state": "ONLINE",
        "stripe_info": "c-1",
        "disk": "HDD6",
        "enclosure": "E1:S6",
        "info": "",
        "lunid": ""
      },
      {
        "info": "",
        "stripe_info": "c-1",
        "state": "ONLINE",
        "enclosure": "E1:S5",
        "disk": "HDD5",
        "lunid": ""
      }
    ]
  }
]

List

Method: GET

URL: https://<storage-host>/api/v2/pool

Lists basic pool metadata: `pool_name`, `owner`, and `pool_id` for each pool.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "pool_name": "nvme1",
    "owner": "1",
    "pool_id": "b42ecdf4c9a0e6677546fb4da04b0ebede0476e5"
  },
  {
    "pool_name": "ryo2",
    "owner": "1",
    "pool_id": "158958043cc29b0eaf226fee5060ede83e92eceb"
  }
]

Overview

Method: GET

URL: https://<storage-host>/api/v2/pool/overview

Provides high-level statistics for all pools, including capacity breakdown (`capacity` object), optimization metrics, and protocol usage.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "blocksize": "<string>",
    "capacity": {
      "allocated_size": "<string>",
      "compress_ratio": "<string>",
      "dedup_ratio": "<string>",
      "flashtier_total": 0,
      "flashtier_used": 0,
      "free_size": "<string>",
      "logical_avail": "<string>",
      "logical_reserved": "<string>",
      "total_size": "<string>"
    },
    "endurance": 0,
    "is_flash": 0,
    "optimization": 0,
    "owner": "<string>",
    "pool_name": "<string>",
    "protocol_usage": {
      "iscsi": "<string>",
      "replica": "<string>",
      "shares": "<string>"
    },
    "raidtype": "<string>"
  }
]

Share

Detail

Method: GET

URL: https://<storage-host>/api/v2/share/{id}

Fetches full details for the file share identified by `id`, including quota settings, NFS/CIFS export options, cache and flash tier settings, snapshot usage, permissions, and path.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "sizebysnapshots": "0",
  "compress_ratio": "-",
  "recursive_share": "off",
  "blocksize": "131072",
  "io_type": "sequential",
  "cifs_abse": "",
  "smb_export": 0,
  "quota_hard": "1073741824",
  "pool_name": "nvme1",
  "export_only_share_name": 0,
  "cifs_veto_files": "",
  "smb_user_quota_size": null,
  "smb_access_ips": null,
  "vol_name": "test",
  "log_operations": null,
  "provision_type": "full",
  "dram_cache": "on",
  "owner": "1",
  "compress": "off",
  "reserved": "1073741824",
  "smb_worm": "off",
  "path": "/exports/nvme1/test",
  "sizebydata": "98304",
  "smb_home_dir": null,
  "clone": "",
  "flashtier_blocksize_limit": "0",
  "vol_used": "98304",
  "cifs_read_only": null,
  "nfs_read_only": "off",
  "flash_cache": "on",
  "access_net": "all",
  "s3_export": 0,
  "nfs_export": 1,
  "smb_worm_write_timeout": 0,
  "quota_soft": "1073741824",
  "permissions": "111101101",
  "worm_property_change_timeout": null,
  "vol_id": "4a44a76faa7f74dafd6f751eb6bb3d728e12722b",
  "dedup": "off",
  "cifs_users": null
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/share/list

Retrieves detailed information for every share on the system—mirroring the single‐share detail but for all shares.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "provision_type": "full",
    "smb_worm": "off",
    "nfs_export": 1,
    "vol_id": "4a44a76faa7f74dafd6f751eb6bb3d728e12722b",
    "smb_export": 0,
    "io_type": "sequential",
    "smb_user_quota_size": null,
    "cifs_abse": "",
    "cifs_veto_files": "",
    "clone": "",
    "nfs_read_only": "off",
    "compress": "off",
    "pool_name": "nvme1",
    "flash_cache": "on",
    "quota_soft": "1073741824",
    "quota_hard": "1073741824",
    "recursive_share": "off",
    "dram_cache": "on",
    "owner": "1",
    "blocksize": "131072",
    "smb_worm_write_timeout": 0,
    "smb_access_ips": null,
    "smb_home_dir": null,
    "vol_used": "98304",
    "sizebydata": "98304",
    "flashtier_blocksize_limit": "0",
    "worm_property_change_timeout": null,
    "vol_name": "test",
    "cifs_read_only": null,
    "log_operations": null,
    "cifs_users": null,
    "permissions": "111101101",
    "sizebysnapshots": "0",
    "export_only_share_name": 0,
    "access_net": "all",
    "s3_export": 0,
    "compress_ratio": "-",
    "dedup": "off",
    "reserved": "1073741824"
  }
]

List

Method: GET

URL: https://<storage-host>/api/v2/share/

Lists all file shares with minimal metadata: `vol_id`, `vol_name`, `pool_name`, and `owner`.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "owner": "1",
    "vol_id": "4a44a76faa7f74dafd6f751eb6bb3d728e12722b",
    "vol_name": "test",
    "pool_name": "nvme1"
  }
]

Portal Group

Detail

Method: GET

URL: https://<storage-host>/api/v2/portal_group/{id}

Retrieves detailed settings for portal group `id`, including network interfaces `listen_ips` (array) and membership.

Success status: 200

Path Parameters

Parameter Type Required Description Details
id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "sizebysnapshots": "0",
  "compress_ratio": "-",
  "recursive_share": "off",
  "blocksize": "131072",
  "io_type": "sequential",
  "cifs_abse": "",
  "smb_export": 0,
  "quota_hard": "1073741824",
  "pool_name": "nvme1",
  "export_only_share_name": 0,
  "cifs_veto_files": "",
  "smb_user_quota_size": null,
  "smb_access_ips": null,
  "vol_name": "test",
  "log_operations": null,
  "provision_type": "full",
  "dram_cache": "on",
  "owner": "1",
  "compress": "off",
  "reserved": "1073741824",
  "smb_worm": "off",
  "path": "/exports/nvme1/test",
  "sizebydata": "98304",
  "smb_home_dir": null,
  "clone": "",
  "flashtier_blocksize_limit": "0",
  "vol_used": "98304",
  "cifs_read_only": null,
  "nfs_read_only": "off",
  "flash_cache": "on",
  "access_net": "all",
  "s3_export": 0,
  "nfs_export": 1,
  "smb_worm_write_timeout": 0,
  "quota_soft": "1073741824",
  "permissions": "111101101",
  "worm_property_change_timeout": null,
  "vol_id": "4a44a76faa7f74dafd6f751eb6bb3d728e12722b",
  "dedup": "off",
  "cifs_users": null
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/portal_group/list

Provides detailed listings of all portal groups with full configuration details.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "provision_type": "full",
    "smb_worm": "off",
    "nfs_export": 1,
    "vol_id": "4a44a76faa7f74dafd6f751eb6bb3d728e12722b",
    "smb_export": 0,
    "io_type": "sequential",
    "smb_user_quota_size": null,
    "cifs_abse": "",
    "cifs_veto_files": "",
    "clone": "",
    "nfs_read_only": "off",
    "compress": "off",
    "pool_name": "nvme1",
    "flash_cache": "on",
    "quota_soft": "1073741824",
    "quota_hard": "1073741824",
    "recursive_share": "off",
    "dram_cache": "on",
    "owner": "1",
    "blocksize": "131072",
    "smb_worm_write_timeout": 0,
    "smb_access_ips": null,
    "smb_home_dir": null,
    "vol_used": "98304",
    "sizebydata": "98304",
    "flashtier_blocksize_limit": "0",
    "worm_property_change_timeout": null,
    "vol_name": "test",
    "cifs_read_only": null,
    "log_operations": null,
    "cifs_users": null,
    "permissions": "111101101",
    "sizebysnapshots": "0",
    "export_only_share_name": 0,
    "access_net": "all",
    "s3_export": 0,
    "compress_ratio": "-",
    "dedup": "off",
    "reserved": "1073741824"
  }
]

List

Method: GET

URL: https://<storage-host>/api/v2/portal_group

Lists all portal groups, each with `id`, `portal_name`, and `owner`.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "owner": "1",
    "vol_id": "4a44a76faa7f74dafd6f751eb6bb3d728e12722b",
    "vol_name": "test",
    "pool_name": "nvme1"
  }
]

Snapshot

Create

Method: POST

URL: https://<storage-host>/api/v2/snapshot/

Creates a snapshot of a specified volume. Body must include `name` (string) and `volume_id` (string). Returns snapshot metadata (`snap_id`, `created`, `reserved`, etc.).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
name string yes none 1-999 letters, numbers, underscores, or hyphens
volume_id string yes none 1-40 hexadecimal characters

Example Request Body

{
  "name": "<string>",
  "volume_id": "<string>"
}

Example Success Response

{
  "binded": 0,
  "created": "1742901074",
  "pool_name": "sadasd",
  "reserved": "57344",
  "restore": 1,
  "snap_id": "29888b321cc465bb59a3cb1e2aca93a5e1ebbdc2",
  "snap_vol": "sada21sd212@snapname",
  "vol_name": "sada21sd212"
}

Delete

Method: DELETE

URL: https://<storage-host>/api/v2/snapshot/{snap_id}

Deletes the snapshot identified by `snap_id`. Returns `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
snap_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true
}

Delete All

Method: DELETE

URL: https://<storage-host>/api/v2/snapshot/all/{vol_id}

Deletes all snapshots for the volume `vol_id`. Returns `success: true` and an optional `warning` message.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true,
  "warning": "<string>"
}

Clone

Method: POST

URL: https://<storage-host>/api/v2/snapshot/clone/{snap_id}

Clones an existing snapshot into a new volume. The path parameter `snap_id` (string) and a `name` (string) in the body are required. Returns `success` and the new `vol_id`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
snap_id string yes none none

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
name string yes none 1-999 letters, numbers, underscores, or hyphens

Example Request Body

{
  "name": "<string>"
}

Example Success Response

"{\"success\":true,\"vol_id\":\"635085887d0955f883fce8ecac310d7e4129f6f1\"}%"

Restore

Method: POST

URL: https://<storage-host>/api/v2/snapshot/restore/{snap_id}

Restores the volume to the state captured in snapshot `snap_id`. No body parameters needed. Returns snapshot binding info (`binded`, `restore`, etc.).

Success status: 200

Path Parameters

Parameter Type Required Description Details
snap_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "success": true
}

Schedule Detail

Method: GET

URL: https://<storage-host>/api/v2/snapshot/schedule/{vol_id}

Retrieves details of the snapshot schedule for `vol_id`, including `cron_time` (`c_time`), `h_read`, `keep_max`, `id`, and ownership.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "c_time": "<string>",
  "h_read": "<string>",
  "id": "<string>",
  "keep_max": 0,
  "owner": "<string>",
  "vol_id": "<string>",
  "vol_type": "<string>"
}

Schedule Create

Method: POST

URL: https://<storage-host>/api/v2/snapshot/schedule/{vol_id}

Creates a recurring snapshot schedule on volume `vol_id`. Body requires `cron_time` (string, cron format) and `keep_max` (number of snapshots to retain). Returns a human-readable schedule `h_read` and `success: true`.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

Parameter Type Required Description Details
cron_time string yes minute hour 'day of the month' month 'day of the week' cron expression using numbers, asterisks, commas, and hyphens
keep_max number yes 1-512 1 to 512

Example Request Body

{
  "cron_time": "45 23 * * 6",
  "keep_max": 30
}

Example Success Response

{
  "h_read": " 5 minutes past every hour of every day",
  "success": true
}

Schedule Delete

Method: DELETE

URL: https://<storage-host>/api/v2/snapshot/schedule/{vol_id}

Removes the scheduled snapshot task for volume `vol_id`. Returns an empty object.

Success status: 200

Path Parameters

Parameter Type Required Description Details
vol_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Detail

Method: GET

URL: https://<storage-host>/api/v2/snapshot/{snap_id}

Fetches details for the snapshot `snap_id`, including creation time, binding status, and reserved space.

Success status: 200

Path Parameters

Parameter Type Required Description Details
snap_id string yes none 1-40 hexadecimal characters

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "reserved": "57344",
  "pool_name": "nvme1",
  "binded": 0,
  "restore": 1,
  "snap_name": "x",
  "snap_id": "816479d3d58565ea7670d7c3dc9a25fb143e96e6",
  "vol_name": "x",
  "created": "1713251666"
}

Detail List

Method: GET

URL: https://<storage-host>/api/v2/snapshot/list

Provides a combined detailed listing of all snapshots associated with a specified volume (`vol_id`).

Success status: 200

Path Parameters

None.

Query Parameters

Parameter Type Required Description Details
vol_id string no none 1-40 hexadecimal characters

Body Parameters

None.

Example Success Response

{
  "shares": [
    {
      "binded": 0,
      "restore": 1,
      "snap_id": "f9afd48e46ecf68ff26b58e42396870b3df896ae",
      "created": "1715091440",
      "reserved": "98304",
      "vol_name": "test",
      "pool_name": "nvme1",
      "snap_name": "dasd"
    }
  ],
  "luns": [
    {
      "reserved": "57344",
      "vol_name": "x",
      "binded": 0,
      "restore": 1,
      "snap_id": "816479d3d58565ea7670d7c3dc9a25fb143e96e6",
      "created": "1713251666",
      "pool_name": "nvme1",
      "snap_name": "x"
    }
  ]
}

List

Method: GET

URL: https://<storage-host>/api/v2/snapshot

Lists snapshots and shares for a given volume via query parameter `vol_id`. Returns separate `luns` and `shares` arrays.

Success status: 200

Path Parameters

None.

Query Parameters

Parameter Type Required Description Details
vol_id string no none 1-40 hexadecimal characters

Body Parameters

None.

Example Success Response

{
  "luns": [
    {
      "snap_id": "816479d3d58565ea7670d7c3dc9a25fb143e96e6",
      "lun_name": "x",
      "pool_name": "nvme1",
      "snap_name": "x"
    }
  ],
  "shares": [
    {
      "snap_id": "f9afd48e46ecf68ff26b58e42396870b3df896ae",
      "pool_name": "nvme1",
      "snap_name": "dasd",
      "share_name": "test"
    }
  ]
}

Status

Bandwidth

Method: GET

URL: https://<storage-host>/api/v2/status/bandwidth

Returns current bandwidth usage figures. No parameters are required. The 200 response JSON includes three required integer fields: `read` (bytes/sec read), `write` (bytes/sec written), and `total` (combined read and write throughput).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "read": 0,
  "total": 0,
  "write": 0
}

Cache

Method: GET

URL: https://<storage-host>/api/v2/status/cache

Delivers cache subsystem statistics. This endpoint accepts no parameters and currently returns an empty JSON object (`{}`) on a 200 response, indicating no cached data is being reported at this time.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Capacity

Method: GET

URL: https://<storage-host>/api/v2/status/capacity

This endpoint provides a detailed breakdown of capacity usage across all storage pools. For each pool, it returns an `info` object with required fields such as `allocated_size`, `free_size`, `logical_avail`, `logical_reserved`, and `total_size`, which are all string representations of byte sizes. Additionally, it reports data efficiency metrics like `compress_ratio` and `dedup_ratio`. Another section, `protocol_usage`, presents how storage is consumed by various services including `iscsi`, `replica`, and `shares`. The response helps administrators assess capacity utilization and optimization across the system’s storage landscape.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "test": {
    "info": {
      "allocated_size": "265214230528",
      "compress_ratio": "1.00",
      "dedup_ratio": "1.00x",
      "free_size": "11215018603315",
      "logical_avail": "7303574094336",
      "logical_reserved": "225168031232",
      "total_size": "11544872091648"
    },
    "protocol_usage": {
      "iscsi": "48341619184",
      "replica": "130944",
      "shares": "176791400896"
    }
  },
  "test2": {
    "info": {
      "allocated_size": "131072000",
      "compress_ratio": "1.19",
      "dedup_ratio": "1.00x",
      "free_size": "7663596045598",
      "logical_avail": "7524651683840",
      "logical_reserved": "131018752",
      "total_size": "7663596045598"
    },
    "protocol_usage": {
      "iscsi": "98304",
      "replica": "63967232",
      "shares": "63770624"
    }
  }
}

Cluster

Method: GET

URL: https://<storage-host>/api/v2/status/cluster

Shows cluster status including peer nodes, interconnect types, and connection status.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "connected": 1,
  "interconnects": {
    "ethernet": 1,
    "hbactive": 0,
    "hbdrive": 0,
    "serial": 1
  },
  "peers": [
    {
      "id": "RSA3Q866_A"
    },
    {
      "id": "RSA3Q866_B"
    }
  ],
  "status": "Master"
}

CPU

Method: GET

URL: https://<storage-host>/api/v2/status/cpu

Retrieves real-time CPU utilization metrics. No parameters are required. A successful (200) response returns a JSON object with six required fields: `average_utilization` (integer) indicating the average CPU load, `current_utilization` (integer) for the instant load, `cpu_idle` (string) denoting percent idle, and the one-, five-, and fifteen-minute load averages under `load_1_min`, `load_5_min`, and `load_15_min` respectively.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "average_utilization": 1,
  "cpu_idle": "100",
  "current_utilization": 0,
  "load_15_min": "0.41",
  "load_1_min": "0.38",
  "load_5_min": "0.45"
}

Enclosures

Method: GET

URL: https://<storage-host>/api/v2/status/enclosures

Lists storage enclosures attached to the system, each with `serial`, `model`, `no`, and `owner`.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "model": "NVMEX11",
    "no": 1,
    "owner": "0",
    "serial": "NVMEX11"
  },
  {
    "model": "D2U24",
    "no": 2,
    "owner": "0",
    "serial": "50015b214087fbbf"
  }
]

IOPS

Method: GET

URL: https://<storage-host>/api/v2/status/iops

Provides disk I/O operations per second. No path or query parameters are needed. On success, it returns a JSON object containing three required integer fields: `read` (read IOPS), `write` (write IOPS), and `total` (sum of read and write ops).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "read": 0,
  "total": 0,
  "write": 0
}

License

Method: GET

URL: https://<storage-host>/api/v2/status/license

Displays licensing information, including feature flags (snapshot, replication, encryption, etc.) and license validity period (`start_time`, `expire_time`).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "autosnapshot": 1,
  "clone": 1,
  "datareduce": 1,
  "encryption": 1,
  "expire_time": 1786924800,
  "flashcache": 1,
  "flashtier": 1,
  "hdd_capacity": "3000000",
  "metroscale": 1,
  "none_vendor_drive": 1,
  "replication": 1,
  "s3": "3000000",
  "snapshot": 1,
  "software_update": 1,
  "ssd_capacity": "3000000",
  "start_time": 1692230400
}

Overloaded Volumes

Method: GET

URL: https://<storage-host>/api/v2/status/overloaded_volumes

Reports volumes that exceed their performance thresholds, with `vol_id`, `vol_name`, `vol_size`, `vol_used`, and `vol_type` along with a `last_check_time` timestamp.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "last_check_time": 1742308705.31897,
  "overloaded_volumes": [
    {
      "pool_name": "test",
      "vol_id": "47ab4587c7660d8f3c37c1a821bae549666529d6",
      "vol_name": "findos",
      "vol_size": 95563022336,
      "vol_type": "share",
      "vol_used": 92823133696
    }
  ]
}

Pools

Method: GET

URL: https://<storage-host>/api/v2/status/pools

Provides a summary view of all storage pools, showing integrity status and pool health.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

[
  {
    "integrity": {
      "can_start": 1,
      "can_stop": 0,
      "info": "No info"
    },
    "owner": "RSA3Q866_A",
    "pool_id": "1a887ad691f787d7a9d1657dbd411e3b019d44d7",
    "pool_name": "test",
    "status": "ONLINE"
  },
  {
    "integrity": {
      "can_start": 1,
      "can_stop": 0,
      "info": "Data rebuilded on Mon Feb 24 09:30:24 2025 and 66.9M data repaired(0 errors) and operation took 00:00:01."
    },
    "owner": "RSA3Q866_A",
    "pool_id": "2d9e8128fcb90fc5beadf8b63eec149d4a5da6b3",
    "pool_name": "test2",
    "status": "ONLINE"
  }
]

Services

Method: GET

URL: https://<storage-host>/api/v2/status/services

Returns the enabled/disabled status of system services (e.g., NFS, CIFS, SNMP, replication).

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "callhome": 1,
  "cifs": 1,
  "mail_alert": 1,
  "nfs": 1,
  "ntp": 1,
  "remote_help": 0,
  "replication": 1,
  "s3": 1,
  "san": 1,
  "snmp": 1,
  "snmp_trap": 0,
  "syslog": 1
}

System Info

Method: GET

URL: https://<storage-host>/api/v2/status/system_info

Obtains overall system information such as product model, firmware version (`app_version`), uptime, service tag, and counts of volumes, shares, snapshots, and initiators.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Example Success Response

{
  "user_count": 1,
  "dramcachesize": "258GB",
  "scsi_initiators": 0,
  "used_lun": 1,
  "shares": 1,
  "maxlun": "64",
  "product": "H2000G2",
  "controller_type": "2",
  "app_version": "2.3.2",
  "luns": 0,
  "date": "Mon Apr  1 09:48:29 +03 2024",
  "uptime": "33 minutes, 38 seconds",
  "service_tag": "RSA3Q866",
  "maxsnap": "2048",
  "fc_initiators": 0,
  "snapshot_count": "0",
  "os_version": "13.2"
}

Network

Info

Method: GET

URL: https://<storage-host>/api/v2/network/info

Retrieves current network configuration details (interfaces, IPs, etc.). Returns a JSON object of network settings.

Success status: 200

Path Parameters

None.

Query Parameters

None.

Body Parameters

None.

Error and Response Conventions

  • Most mutating operations return a JSON object with success: true; create-style operations may also include a generated id.
  • Read operations usually return either a JSON object for one resource or a JSON array/object collection for list-style endpoints.
  • Resource identifiers in path parameters are commonly hexadecimal strings returned by earlier list or detail calls.
  • The OpenAPI export primarily documents 200 OK success responses. Deployments may also return standard HTTP authorization or validation errors when a token is missing, expired, or underscoped.