> ## Documentation Index
> Fetch the complete documentation index at: https://ppio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 查询 API Key 列表（含模型访问摘要）

查询当前团队的 API Key 列表。带上 `includePolicySummary=true` 时，每个 Key 会返回 `modelAccessPolicy` 摘要，便于在列表页展示模型访问状态。页面初始化时建议直接调用本接口拿到摘要，再按需查询单个 Key 的完整策略。

## 权限

按平台现有 API Key 读取权限返回：Owner / Admin 可查询团队内全部 Key；Developer / 基础用户按其可访问范围返回自己拥有的 Key。

## 请求头

<ParamField header="Authorization" type="string" required={true}>
  Bearer 身份验证格式，例如：Bearer \{\{API 密钥}}。
</ParamField>

## 查询参数

<ParamField query="includePolicySummary" type="boolean" required={false}>
  是否返回每个 Key 的 `modelAccessPolicy` 摘要。建议前端默认传 `true`。不传或为 `false` 时，`modelAccessPolicy` 可能不返回。
</ParamField>

## 响应参数

<ResponseField name="keys" type="object[]" required={true}>
  API Key 列表。

  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="name" type="string" required={true}>
      API Key 名称。
    </ResponseField>

    <ResponseField name="id" type="string" required={true}>
      API Key 的数字 ID。
    </ResponseField>

    <ResponseField name="stringId" type="string" required={true}>
      API Key 的 stringId，用于模型访问策略等接口的路径参数。
    </ResponseField>

    <ResponseField name="maskedKey" type="string" required={true}>
      脱敏后的 API Key，例如 `sk_xxx***`。列表接口不返回明文密钥；明文仅在创建时返回一次。
    </ResponseField>

    <ResponseField name="memberId" type="string" required={true}>
      API Key 所属成员的子用户账号 ID。
    </ResponseField>

    <ResponseField name="uuid" type="string" required={true}>
      API Key 所属用户的 UUID。
    </ResponseField>

    <ResponseField name="expireTime" type="string" required={true}>
      过期时间。永不过期时为 `never`。
    </ResponseField>

    <ResponseField name="createTime" type="string" required={true}>
      创建时间。
    </ResponseField>

    <ResponseField name="lastUsedAt" type="int64" required={true}>
      最近一次使用时间，Unix 时间戳（秒）。从未使用时为 `0`。
    </ResponseField>

    <ResponseField name="modelAccessPolicy" type="object" required={false}>
      模型访问摘要，仅在 `includePolicySummary=true` 时返回。

      <Expandable title="properties">
        <ResponseField name="mode" type="string" required={true}>
          访问模式。取值：`all_enabled`、`selected`。
        </ResponseField>

        <ResponseField name="allowedModelCount" type="int32" required={true}>
          可访问模型数量。
        </ResponseField>

        <ResponseField name="excludedModelCount" type="int32" required={true}>
          已排除模型数量。
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash theme={null}
  curl --request GET \
    --url 'https://api.ppio.com/openapi/v2/user/key?includePolicySummary=true' \
    --header 'Authorization: Bearer <API_KEY>'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "keys": [
      {
        "name": "default",
        "id": "123456",
        "stringId": "key_xxx",
        "maskedKey": "sk_xxx***",
        "memberId": "member_xxx",
        "uuid": "user_uuid_xxx",
        "expireTime": "never",
        "createTime": "2026-07-14 12:00:00",
        "lastUsedAt": 1783764000,
        "modelAccessPolicy": {
          "mode": "selected",
          "allowedModelCount": 1,
          "excludedModelCount": 0
        }
      }
    ]
  }
  ```
</ResponseExample>
