控制台 API 让你的脚本与集成能够调用模型。每个请求都使用 API 密钥进行身份验证。
curl --fail-with-body "https://opencode.ai/inference/v1/models" \
  --header "Authorization: Bearer oc_sk_..."
| API | 端点 | | ----------------------------------- | ------------------------------------------ | | 推理 | https://opencode.ai/inference/... | | 提供商 | https://opencode.ai/inference/custom/... |

API 密钥

工作区成员和服务账户都可以拥有 API 密钥。将密钥作为 Bearer 令牌发送。
Authorization: Bearer oc_sk_...
| | 个人 API 密钥 | 服务账户密钥 | | ---------------- | ------------------------------------------------------ | ------------------------------------------------------------------------ | | 创建者 | 任何成员,为自己创建 | 所有者和管理员 | | 创建位置 | 账户 › 个人 API 密钥 | 设置 › 服务账户 | | 生效身份 | 创建该密钥的成员 | 该服务账户 | | 用量计入 | 该成员的预算 | 该服务账户的预算 | | 适用场景 | 你自己的脚本与 Harness | CI、共享机器与集成 |
  • 每个密钥只在创建时选定的一个工作区内有效。无需在请求头中指定工作区。
  • 完整密钥仅在创建后显示一次。此后控制台只显示其前缀。
  • 过期时间为可选项:永不、1 天、7 天、30 天或自定义(1 到 365 天)。过期的密钥无法续期,请创建新密钥。

个人 API 密钥

个人密钥以你的身份生效。你的角色、预算与模型规则均适用于它。
  1. 从账户菜单打开账户,找到个人 API 密钥。
  2. 点击添加 API 密钥。
  3. 选择工作区,填写密钥名称,以及可选的过期时间。所有者和管理员还需选择权限。
  4. 点击创建并复制密钥。
oc_sk_1a2b3c4d5e6f_...
该密钥遵循你当前对工作区的访问权限。若你的角色变更,密钥的能力也会随之变化。若工作区强制执行 SSO,则除非你是所有者,否则密钥仅在你拥有活跃 SSO 会话期间有效。

服务账户

服务账户是工作区中的非人类成员,拥有自己的 API 密钥、用量与预算。将其用于自动化,使用量不与个人绑定。所有者和管理员负责管理它们。
  1. 打开设置 › 服务账户,点击添加服务账户,然后为其命名,例如 CI Pipeline。
  2. 打开该服务账户,点击添加 API 密钥。
  3. 填写密钥名称,选择可选的过期时间与权限,然后点击创建。
  4. 复制密钥。
export SERVICE_API_KEY="oc_sk_..."
所有者和管理员之后可通过密钥操作菜单中的**编辑…**重命名服务账户密钥或更改其权限。

权限

每个密钥都有一个权限级别,在创建时于权限下选定。
| 权限 | 允许的操作 | | -------------- | ------------------------------------------------------------------------------------ | | 全部 | 成员或服务账户可执行的一切操作,但本账户的 API 密钥除外。 | | 受限 | 仅限你选定的资源。 | | 只读 | 对所有资源的读取访问。密钥可以列出模型,但不能调用它们。 |
密钥的能力永远不会超过其所代表的对象。个人密钥受成员当前角色限制,服务账户密钥受服务账户可执行的操作限制。

受限密钥

将每个资源设为无、读取或写入。写入包含读取。
| 资源 | 级别 | | --------------------------- | --------------------- | | 模型 | 读取、请求 | | 用量 | 读取 | | 预算 | 读取、写入 | | 成员 | 读取、写入 | | 提供商 | 读取、写入 | | 账单 | 读取、写入 | | 工作区设置 | 读取、写入 | | SSO | 读取 | | 服务账户 | 读取 | | 本账户的 API 密钥 | 写入 |
模型 › 读取用于列出模型,而模型 › 请求还会通过推理与提供商 API 调用它们。例如,一个只调用模型的密钥需要:
Permissions: Restricted
Models:      Request
在细粒度权限发布之前以仅推理创建的密钥,会显示为受限,且模型设为请求。

谁能授予什么

  • 成员只能创建可列出和调用模型的个人密钥。控制台会显示「此密钥可以代表你列出和调用模型。」而不是权限选项。
  • 所有者和管理员可为其个人密钥授予全部、受限或只读,但不超过其自身角色。默认为受限,且模型设为请求。若之后被降级,其密钥会相应收缩。
  • 服务账户密钥默认为全部。由所有者和管理员选择其权限。

限制

某些操作始终需要有人登录控制台,且使用密钥创建密钥受到严格限制。
  • 任何 API 密钥都不能更改 SSO 设置或删除工作区。
  • 即使拥有全部权限,服务账户密钥也不能邀请成员、更改角色、移除成员、管理账单、更改工作区设置、管理模型,或创建、移除服务账户。
  • 本账户的 API 密钥仅在服务账户密钥上可用,且全部不包含它。拥有该权限的密钥只能为自己的服务账户创建和撤销密钥。新密钥必须为受限,不得超过创建它的密钥的权限,且不能包含本账户的 API 密钥。
  • 个人密钥永远无法获得本账户的 API 密钥,且任何 API 密钥都不能创建或撤销个人 API 密钥。
超出密钥权限的请求会返回 HTTP 403。

撤销

| 密钥 | 谁可以撤销 | 位置 | | ------------------- | ---------------------- | --------------------------------------------------------------------------------- | | 个人 API 密钥 | 拥有它的成员 | 账户 › 个人 API 密钥,然后点击撤销 | | 个人 API 密钥 | 所有者和管理员 | 设置 › 成员中该成员的页面,位于 API 密钥下 | | 服务账户密钥 | 所有者和管理员 | 设置 › 服务账户中该服务账户的页面,位于 API 密钥下 |
密钥也会被自动撤销:
  • 离开或被移出工作区,或通过 SCIM 被取消配置,会撤销该人在该工作区中创建的所有密钥,包括服务账户密钥。同一服务账户上的其他密钥仍可继续使用。
  • 移除服务账户会撤销其全部密钥。
已撤销和已过期的密钥会立即失效,并返回 HTTP 401。