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

# 生成 API 密钥

> 创建一个集成凭证，从你自己的脚本调用 Cyberun。

**集成凭证**（`sk-...`）是 Cyberun 的通用编程密钥。
可用于 CI、脚本、合作伙伴集成和 MCP 客户端。

## 创建密钥

1. 在 Cloud 中，打开侧边栏的 **访问**。
2. 切换到 **集成** 标签页。
3. 点击 **创建集成密钥**。
4. 按它所服务的集成命名 —— `ci-prod-image-build`、
   `claude-code-personal`、`partner-acme-readonly`。
   名称对其他团队成员可见。
5. （可选）设置过期时间（1–365 天）。留空表示"永不过期"。
6. 点击 **创建**。
7. **复制显示的 `sk-...` 值。** Cloud 不会再次显示 ——
   屏幕关闭后仅保留前缀和哈希。

## 使用密钥

将其作为 Bearer 令牌发送。团队在签发时即与凭证绑定，
因此你不需要添加 `X-Team-ID` 请求头 —— 对 `sk-` 密钥它会被忽略。

```http theme={null}
GET /api/v1/r/workflows HTTP/1.1
Host: core.cyberun.cloud
Authorization: Bearer sk-...
```

运行时端点 —— 也就是你会从脚本和 CI 中使用的那些 ——
位于 `/api/v1/r/` 前缀下。完整接口见
[API 参考](/zh/api-reference/introduction)。

## cURL

```bash theme={null}
curl https://core.cyberun.cloud/api/v1/r/workflows \
  -H "Authorization: Bearer sk-..."
```

## JavaScript

```ts theme={null}
const res = await fetch('https://core.cyberun.cloud/api/v1/r/workflows', {
	headers: {
		Authorization: `Bearer ${process.env.CYBERUN_KEY}`
	}
});
const { workflow_list } = await res.json();
```

## Python

```python theme={null}
import os, httpx

r = httpx.get(
    "https://core.cyberun.cloud/api/v1/r/workflows",
    headers={
        "Authorization": f"Bearer {os.environ['CYBERUN_KEY']}",
    },
)
workflow_list = r.json()["workflow_list"]
```

## 你最常用的端点

运行时 API，全部位于 `/api/v1/r/` 下。完整参考：
[API 参考](/zh/api-reference/introduction)。

| 端点                                   | 用途                 |
| ------------------------------------ | ------------------ |
| `GET /r/workflows`                   | 列出团队可见的工作流。        |
| `GET /r/workflows/{workflowId}`      | 读取工作流的参数与标签要求。     |
| `POST /r/workflows/{workflowId}/run` | 提交任务。              |
| `GET /r/tasks/{taskId}`              | 读取任务当前的状态。         |
| `GET /r/tasks/{taskId}/events`（SSE）  | 流式获取实时进度事件。        |
| `GET /r/tasks/{taskId}/result`       | 获取输出元数据与预签名下载 URL。 |
| `POST /r/tasks/{taskId}/cancel`      | 取消一个非终止状态的任务。      |
| `GET /r/agents`                      | 列出团队的代理及其状态。       |

部分字段（按代理的系统统计、成员邮箱）在通过集成密钥获取时会
以缩减形式出现，这与通过登录用户获取不同 —— 这是有意为之，
这样泄露的密钥所暴露的团队硬件与成员信息比一个用户会话更少。

## 轮换与撤销

* **轮换**：先创建新密钥，把集成切换过去，
  然后再撤销旧的。不要先撤销 —— 否则会出现请求中断的
  窗口期。
* **撤销**：**访问 → 集成**，在所在行点击 **撤销**。
  立即生效；下一次请求会返回 `401`。

## 最佳实践

* 一个集成用一个密钥。三个系统共用一个密钥意味着
  你无法在不影响其他系统的情况下撤销其中之一。
* 切勿把密钥粘贴到共享笔记、截图或提交中。
  请使用密钥管理器。
* 选择能覆盖使用场景的最短过期时间。长期有效的
  密钥会累积暴露风险。
* 按最小权限原则匹配团队 —— 只触及 A 团队的脚本
  应当持有 A 团队的密钥，而不是你个人在
  组织级团队中的管理员密钥。

## 相关

* [凭证](/zh/cloud/concepts/credentials) —— 完整的密钥系列
  （集成 `sk-`、设备 `dk-`、代理 `ak-`）。
* [通过 MCP 连接](/zh/cloud/guides/connect-mcp) —— 用此密钥配合
  AI 客户端（Claude Code、Cursor、Windsurf，…）使用，
  而不必自己编写 HTTP 调用。
* [Webhooks](/zh/cloud/guides/webhooks) —— 在任务完成时获得通知，
  而不是不断轮询。
