# 查看已保存的 SQL

列出当前访问凭据可读取的 SQL 保存记录。每项中的 `workbook_id` 可用于查看版本、修改名称或删除记录。

```text
POST https://moi.matrixorigin.cn/newmoi/workbook/list
```

## 调用前准备

准备有工作区访问权限的个人访问令牌和工作区 ID。`$AI_STUDIO_API_KEY` 是个人访问令牌，用作 `X-API-Key` 请求头的值；`$WORKSPACE_ID` 是目标工作区 ID，用作 `X-Workspace-ID` 请求头的值。

每次最多返回 `100` 条记录；未指定 `page_size` 时返回 `20` 条。响应中的 `next_page_token` 非空时，将该值原样填入下一次请求的 `page_token`；为空时说明已到最后一页。

## 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `search` | string | 否 | 按名称搜索。 |
| `page_size` | integer | 否 | 每页数量，范围 `1` 至 `100`；不传时为 `20`。 |
| `page_token` | string | 否 | 下一页标记。 |

## 请求示例

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/workbook/list" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "page_size": 20
  }'
```

## 成功响应

`data.result` 为已保存 SQL 的记录列表，`data.total` 为匹配总数。每项中的 `workbook_id` 可用于后续查看版本、修改名称或删除记录。

```json
{
  "code": 200,
  "data": {
    "total": 1,
    "result": [
      {
        "workbook_id": "workbook-123",
        "name": "销售分析"
      }
    ],
    "next_page_token": ""
  }
}
```

响应字段如下。

本文中，字段路径中的 `[]` 表示数组中的每一项。例如，`items[].name` 表示 `items` 数组中每一项的 `name` 字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `data.total` | integer | 当前查询匹配的记录总数。 |
| `data.result` | array | 已保存 SQL 的记录列表。 |
| `data.result[].workbook_id` | string | SQL 保存记录的 ID。 |
| `data.result[].name` | string | 保存记录的名称。 |
| `data.next_page_token` | string | 下一页标记；为空时没有下一页。 |

## 错误响应

```json
{
  "code": 400,
  "message": "请求参数无效"
}
```

### 常见 HTTP 错误

```{list-table}
:header-rows: 1
:widths: 15 45 40

* - HTTP 状态码
  - 常见原因
  - 建议操作
* - `400`
  - `page_size` 不在 `1` 至 `100` 范围内。
  - 修正 `page_size` 后重试。
* - `401`
  - 个人访问令牌缺失或无效。
  - 检查个人访问令牌和工作区 ID。
* - `403`
  - 当前访问凭据没有读取 SQL 保存记录的权限。
  - 使用有权限的访问凭据，或联系管理员授权。
* - `500`
  - 服务无法读取已保存 SQL 的列表。
  - 记录请求时间和错误信息后重试。
```

## 后续操作

保存目标项的标识，再[查看已保存 SQL 的版本内容](get-workbook.md)。
