# 创建卷

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

在指定数据库下创建根卷。

```text
POST https://api.moi.matrixorigin.cn/v5/catalog/volume/create
```

## 调用前准备

先[查询数据库列表](list-databases.md)取得目标数据库 ID。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID 和数据库 ID。

## 请求体

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 请求示例

```bash
curl -X POST "https://api.moi.matrixorigin.cn/v5/catalog/volume/create" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "database_id": '"$DATABASE_ID"',
    "name": "<VOLUME_NAME>",
    "description": "<VOLUME_DESCRIPTION>"
  }'
```

:::::
:::::{tab-item} 参数说明

::::{tab-set}
:::{tab-item} 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `database_id` | integer | 是 | 父数据库 ID。 |
| `name` | string | 是 | 卷名称，必须是有效标识符。 |
| `description` | string | 否 | 卷描述。 |
| `catalog_id` | integer | 否 | 正数时须与目标数据库所属 Catalog 一致；省略或非正数时从数据库推断。 |

:::
::::

:::::
::::::
:::::::

## 成功响应

成功时返回 `200` 和新卷 ID。该响应表示卷已创建。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": 789
  }
}
```

:::::
:::::{tab-item} 字段说明

::::{tab-set}
:::{tab-item} 通用字段

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |

:::
:::{tab-item} 创建结果

下表展开响应示例中 `data` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `id` | integer | 新建卷的 ID。 |

:::
::::

:::::
::::::
:::::::

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "ErrAlreadyExists",
  "msg": "对象已存在"
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 错误代码。 |
| `msg` | string | 错误信息。 |

:::::
::::::
:::::::

## 后续操作

使用 `data.id` [查询卷详情](get-volume.md)。
