## 所需权限
<table> <thead> <tr> <td><p><b>所需权限</b></p></td> <td><p><b>资源</b></p></td> <td><p><b>Scope</b></p></td> <td><p><b>资源服务</b></p></td> </tr> </thead> <tbody> <tr> <td><p>专家套件读取（读取）</p></td> <td><p>expert-suites</p></td> <td><p>admin.v1.expert-suites.read</p></td> <td><p>qwenwork-biz-service</p></td> </tr> </tbody> </table>

```
HELPCODEESCAPE-http
GET /api/openapi/v1/expert-suites
```

## 公共请求头
适用《通过 API 配置 QwenWork 管理后台》的"认证与请求头"章节：`Authorization` 必填，`X-Request-Id` 可选；当前接口所需 Scope 见本页。

`Idempotency-Key` 是否适用及必填性以本页请求参数为准，不能用追踪标识替代幂等键。

## 请求参数
<table> <thead> <tr> <td><p><b>名称</b></p></td> <td><p><b>位置</b></p></td> <td><p><b>类型</b></p></td> <td><p><b>必填</b></p></td> <td><p><b>说明</b></p></td> <td><p><b>示例</b></p></td> </tr> </thead> <tbody> <tr> <td><p>keyword</p></td> <td><p>query</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>搜索关键词，匹配范围见下方接口语义; maxLength=255</p></td> <td><p><code>"\&lt;string\&gt;"</code></p></td> </tr> <tr> <td><p>status</p></td> <td><p>query</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>状态；取值见枚举及接口语义; enum=\["draft", "pending", "active", "inactive", "rejected", "deleting"\] 取值："active"、"deleting"、"draft"、"inactive"、"pending"、"rejected"</p></td> <td><p><code>"draft"</code></p></td> </tr> <tr> <td><p>origin</p></td> <td><p>query</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>来源筛选：all（默认）、org（组织自建）、public（当前组织内的官方来源套件）; enum=\["all", "org", "public"\], default="all" default="all" 取值："all"、"org"、"public"</p></td> <td><p><code>"all"</code></p></td> </tr> <tr> <td><p>category_id</p></td> <td><p>query</p></td> <td><p>string · uuid</p></td> <td><p>否</p></td> <td><p>分类 ID，必须为 UUID; format="uuid"</p></td> <td><p><code>"\&lt;uuid\&gt;"</code></p></td> </tr> <tr> <td><p>market_enabled</p></td> <td><p>query</p></td> <td><p>boolean</p></td> <td><p>否</p></td> <td><p>是否已上架；省略不按上架状态筛选</p></td> <td><p><code>-</code></p></td> </tr> <tr> <td><p>page</p></td> <td><p>query</p></td> <td><p>integer · int64</p></td> <td><p>否</p></td> <td><p>页码，从 1 开始; format="int64", minimum=1, default=1 default=1</p></td> <td><p><code>1</code></p></td> </tr> <tr> <td><p>page_size</p></td> <td><p>query</p></td> <td><p>integer · int64</p></td> <td><p>否</p></td> <td><p>每页条数; format="int64", minimum=1, maximum=100, default=20 default=20</p></td> <td><p><code>20</code></p></td> </tr> </tbody> </table>

## 请求示例
将 \<BASE_URL\> 替换为企业部署的千问办公 API 服务地址，并填写实际参数。示例中的占位值不能直接用于请求。

```
HELPCODEESCAPE-curl
curl --request GET \
  --url '<BASE_URL>/api/openapi/v1/expert-suites?origin=all&page=1&page_size=20' \
  --header 'Authorization: Bearer <API_KEY>'
```

## 响应状态表
<table> <thead> <tr> <td><p><b>HTTP 状态码</b></p></td> <td><p><b>触发条件</b></p></td> <td><p><b>响应结构引用</b></p></td> <td><p><b>客户端处理建议</b></p></td> </tr> </thead> <tbody> <tr> <td><p>200</p></td> <td><p>请求成功</p></td> <td><p>见本文"响应结果"</p></td> <td><p>读取响应结果。</p></td> </tr> <tr> <td><p>default</p></td> <td><p>未单独列出的认证、授权、校验或依赖错误</p></td> <td><p>见《通过 API 配置 QwenWork 管理后台》的"通用错误"结构</p></td> <td><p>按状态与 code 处理；写操作重试前核实结果及幂等要求。</p></td> </tr> </tbody> </table>

## 响应结果
Content-Type: application/json
<table> <thead> <tr> <td><p><b>名称</b></p></td> <td><p><b>类型</b></p></td> <td><p><b>必填</b></p></td> <td><p><b>说明</b></p></td> <td><p><b>示例</b></p></td> </tr> </thead> <tbody> <tr> <td><p>items</p></td> <td><p>array\&lt;object\&gt; \| null</p></td> <td><p>是</p></td> <td><p>专家套件列表；空结果返回 \[\]</p></td> <td><p><code>-</code></p></td> </tr> <tr> <td><p>next_cursor</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>共享响应类型中的可选字段；本接口不返回</p></td> <td><p><code>-</code></p></td> </tr> <tr> <td><p>page</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>页码，从 1 开始; format="int64"</p></td> <td><p><code>1</code></p></td> </tr> <tr> <td><p>page_size</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>每页条数; format="int64"</p></td> <td><p><code>20</code></p></td> </tr> <tr> <td><p>total_pages</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>总页数；无记录时为 0; format="int64"</p></td> <td><p><code>1</code></p></td> </tr> <tr> <td><p>total_rows</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>符合筛选条件的总记录数; format="int64"</p></td> <td><p><code>1</code></p></td> </tr> </tbody> </table>

### items\[\]

<table> <thead> <tr> <td><p><b>字段</b></p></td> <td><p><b>类型</b></p></td> <td><p><b>必填</b></p></td> <td><p><b>说明</b></p></td> </tr> </thead> <tbody> <tr> <td><p>can_upgrade</p></td> <td><p>boolean</p></td> <td><p>是</p></td> <td><p>是否可升级</p></td> </tr> <tr> <td><p>category_id</p></td> <td><p>string · uuid \| null</p></td> <td><p>是</p></td> <td><p>分类 ID; format="uuid"</p></td> </tr> <tr> <td><p>clients</p></td> <td><p>array\&lt;string\&gt; \| null</p></td> <td><p>是</p></td> <td><p>适用客户端列表</p></td> </tr> <tr> <td><p>command_count</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>命令数量; format="int64"</p></td> </tr> <tr> <td><p>connector_count</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>连接器数量; format="int64"</p></td> </tr> <tr> <td><p>connector_refs</p></td> <td><p>array\&lt;object\&gt; \| null</p></td> <td><p>是</p></td> <td><p>连接器引用</p></td> </tr> <tr> <td><p>created_at</p></td> <td><p>string · date-time</p></td> <td><p>否</p></td> <td><p>创建时间; format="date-time"</p></td> </tr> <tr> <td><p>created_by</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>创建主体 ID</p></td> </tr> <tr> <td><p>created_by_email</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>创建人邮箱</p></td> </tr> <tr> <td><p>created_by_name</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>创建主体姓名</p></td> </tr> <tr> <td><p>description</p></td> <td><p>string</p></td> <td><p>是</p></td> <td><p>说明文本</p></td> </tr> <tr> <td><p>description_cn</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>中文说明</p></td> </tr> <tr> <td><p>display_name</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>显示名称</p></td> </tr> <tr> <td><p>display_name_cn</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>中文显示名称</p></td> </tr> <tr> <td><p>has_package</p></td> <td><p>boolean</p></td> <td><p>是</p></td> <td><p>是否已上传资源包</p></td> </tr> <tr> <td><p>icon_url</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>图标 URL</p></td> </tr> <tr> <td><p>id</p></td> <td><p>string</p></td> <td><p>是</p></td> <td><p>记录标识</p></td> </tr> <tr> <td><p>name</p></td> <td><p>string</p></td> <td><p>是</p></td> <td><p>名称</p></td> </tr> <tr> <td><p>origin</p></td> <td><p>string</p></td> <td><p>是</p></td> <td><p>资源归属；官方来源的组织副本仍为 org，来源见 source_type。</p></td> </tr> <tr> <td><p>revision</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>当前版本号，用于并发控制; format="int64"</p></td> </tr> <tr> <td><p>skill_count</p></td> <td><p>integer · int64</p></td> <td><p>是</p></td> <td><p>技能数量; format="int64"</p></td> </tr> <tr> <td><p>source_type</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>来源类型；可选值：official; enum=\["official"\] 取值："official"</p></td> </tr> <tr> <td><p>status</p></td> <td><p>string</p></td> <td><p>是</p></td> <td><p>状态；取值见枚举及接口语义; enum=\["draft", "pending", "active", "inactive", "rejected", "deleting"\] 取值："active"、"deleting"、"draft"、"inactive"、"pending"、"rejected"</p></td> </tr> <tr> <td><p>updated_at</p></td> <td><p>string · date-time</p></td> <td><p>否</p></td> <td><p>更新时间; format="date-time"</p></td> </tr> <tr> <td><p>updated_by</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>更新主体 ID</p></td> </tr> <tr> <td><p>updated_by_email</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>更新人邮箱</p></td> </tr> <tr> <td><p>updated_by_name</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>更新人姓名</p></td> </tr> <tr> <td><p>version</p></td> <td><p>string</p></td> <td><p>否</p></td> <td><p>版本</p></td> </tr> </tbody> </table>

#### items\[\].connector_refs\[\]

<table> <thead> <tr> <td><p><b>字段</b></p></td> <td><p><b>类型</b></p></td> <td><p><b>必填</b></p></td> <td><p><b>说明</b></p></td> </tr> </thead> <tbody> <tr> <td><p>connector_id</p></td> <td><p>string · uuid</p></td> <td><p>是</p></td> <td><p>连接器 ID; format="uuid"</p></td> </tr> <tr> <td><p>connector_origin</p></td> <td><p>string</p></td> <td><p>是</p></td> <td><p>连接器来源; minLength=1</p></td> </tr> <tr> <td><p>required</p></td> <td><p>boolean</p></td> <td><p>是</p></td> <td><p>是否为必需连接器</p></td> </tr> </tbody> </table>

## 响应示例
```
HELPCODEESCAPE-json
{
  "items": [
    {
      "category_id": null,
      "clients": [
        "<string>"
      ],
      "command_count": 0,
      "connector_count": 0,
      "connector_refs": [
        {
          "connector_id": "<string>",
          "connector_origin": "<string>",
          "required": false
        }
      ],
      "created_at": "2026-08-27T10:00:00Z",
      "created_by": "<string>",
      "created_by_email": "<string>",
      "created_by_name": "<string>",
      "description": "<string>",
      "description_cn": "<string>",
      "display_name": "<string>",
      "display_name_cn": "<string>",
      "has_package": false,
      "icon_url": "<string>",
      "id": "<string>",
      "name": "<string>",
      "origin": "<string>",
      "revision": 0,
      "skill_count": 0,
      "source_type": "official",
      "status": "<string>",
      "updated_at": "2026-08-27T10:00:00Z",
      "updated_by": "<string>",
      "updated_by_email": "<string>",
      "updated_by_name": "<string>",
      "version": "<string>",
      "can_upgrade": false
    }
  ],
  "page": 1,
  "page_size": 20,
  "total_pages": 1,
  "total_rows": 1
}
```

## 分类回填
每条记录增加 `category_id`（UUID 或 null），复用本组织企业市场的现有分类关联。未分类或没有市场条目时为 null。关联同时匹配 `origin` 和资源 ID，公共与组织资源不会混用。

## 接口行为说明
`origin=public` 仅筛选已进入当前组织、`source_type=official` 的套件，不查询官方市场的完整目录。返回项的 `origin` 表示资源归属，官方来源副本仍归属组织（`org`）；来源请结合 `source_type` 判断。