通过 API 触发例程
通过发送经过身份验证的 POST 请求,按需启动 Claude Code 例程会话。
Claude Code 是 Anthropic 的智能体编码工具。网页版 Claude Code 在 Anthropic 托管的云基础设施上(位于 claude.ai/code)运行 Claude Code 会话,而 "routine"(例程)是保存在那里的一种配置:一个提示、一个或多个代码仓库以及连接器,打包在一起,使其可以按计划、响应 GitHub 事件或在通过 HTTP 调用时无人值守地运行。详见 routine。
此端点是 HTTP 入口点。向其发送 POST 请求会启动现有例程的一次新运行,并返回生成的会话 ID 和 URL。典型的调用方包括告警系统、CI 流水线以及需要以编程方式启动 Claude Code 会话的内部工具。
调用此端点需要一个订阅 Pro、Max、Team 或 Enterprise 计划并已启用网页版 Claude Code 的 claude.ai 账户。请使用在 Claude Code 网页界面中创建的每例程专属 bearer 令牌进行身份验证,而不是使用 Claude API 密钥。
与 Claude Platform 的区别
例程触发端点属于 Claude Code 产品层面,它与 Claude Platform 的 API 和 SDK 在以下几个方面有所不同:
| 方面 | 此端点 | Claude Platform API |
|---|---|---|
| 身份验证 | Authorization: Bearer,使用在 claude.ai/code/routines 创建的每例程专属令牌(sk-ant-oat01-...) | x-api-key,使用来自 Claude Console 的 Claude API 密钥 |
| 令牌作用域 | 仅限一个例程;无读取权限 | 工作区级别 |
| SDK 支持 | 无 | 所有客户端 SDK 均支持 |
| 计费 | claude.ai 上的 Claude Code 订阅用量 | Claude Platform 用量 |
| 路径命名空间 | /v1/claude_code/... | /v1/... |
| 稳定性 | 实验性 | 稳定版或标准 beta 版 |
开始之前
要调用此端点,您需要:
- 在 claude.ai/code/routines 创建的一个例程。
- 为该例程生成的 bearer 令牌:打开例程进行编辑,在 Select a trigger 下点击 Add another trigger,选择 API,然后在模态窗口中点击 Generate token。该令牌仅显示一次,之后无法再次获取。
完整的设置流程请参阅 Claude Code 文档中的添加 API 触发器。
触发例程
POST https://api.anthropic.com/v1/claude_code/routines/{routine_id}/fire当您添加 API 触发器时,Claude Code 网页界面会在提供令牌的同时提供完整的 URL,因此大多数集成会将两者都存储为密钥并直接调用该端点。以下示例展示了一个 shell 调用,以及一个在 CI 失败时触发例程的 GitHub Actions 步骤。
curl -X POST https://api.anthropic.com/v1/claude_code/routines/$ROUTINE_ID/fire \
-H "Authorization: Bearer $ROUTINE_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'- if: failure()
env:
ROUTINE_FIRE_URL: ${{ secrets.ROUTINE_FIRE_URL }}
ROUTINE_FIRE_TOKEN: ${{ secrets.ROUTINE_FIRE_TOKEN }}
run: |
curl -X POST "$ROUTINE_FIRE_URL" \
-H "Authorization: Bearer $ROUTINE_FIRE_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d "{\"text\": \"CI failed: $GITHUB_WORKFLOW run $GITHUB_RUN_ID on $GITHUB_REF\"}"请求在会话创建后即返回。它不会流式传输会话输出,也不会等待会话完成。
标头
| 名称 | 必需 | 描述 |
|---|---|---|
Authorization | 是 | Bearer <token>。在 Claude Code 网页界面中创建的每例程专属令牌,前缀为 sk-ant-oat01-。 |
anthropic-version | 是 | API 版本。2023-06-01 是唯一接受的值。 |
Content-Type | 存在请求体时 | application/json。 |
发送 anthropic-beta: experimental-cc-routine-2026-04-01 标头的旧版集成不受影响:无论是否包含该标头,端点都会接受请求。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
routine_id | string | 例程的标识符。尽管参数名如此,其值的前缀是 trig_ 而非 routine_。包含在您添加 API 触发器时模态窗口显示的 URL 中。 |
请求体
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
text | string | 否 | 本次运行的初始上下文,例如告警正文、失败的日志行或 git diff。该值为自由格式文本,不会被解析;如果您发送 JSON 或其他结构化负载,例程会将其作为字面字符串接收。它会与例程保存的提示一起传递给例程。最多 65,536 个字符。 |
请求体是可选的。请求体中的未知字段将被忽略。
响应
成功的请求返回 200 OK 以及新会话的详细信息:
{
"type": "routine_fire",
"claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
"claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}| 字段 | 类型 | 描述 |
|---|---|---|
type | string | 始终为 routine_fire。 |
claude_code_session_id | string | 为本次运行创建的 Claude Code 会话的 ID。 |
claude_code_session_url | string | 指向 claude.ai 上该会话的链接。在浏览器中打开它即可观看运行过程、审查更改或继续对话。 |
错误
错误使用标准的 Anthropic 错误封装格式:
{
"type": "error",
"error": {
"type": "not_found_error",
"message": "<string>"
}
}| HTTP 状态码 | 错误类型 | 原因 |
|---|---|---|
| 400 | invalid_request_error | 缺少 anthropic-version 标头或其值不受支持、text 超过 65,536 个字符,或例程已暂停(请参阅编辑和控制例程)。 |
| 401 | authentication_error | Authorization 标头中没有 bearer 令牌,或令牌与此例程不匹配。 |
| 403 | permission_error | 该账户或组织无权访问此端点。 |
| 404 | not_found_error | 该例程不存在。 |
| 429 | rate_limit_error | 已达到例程或账户的每小时触发次数上限。响应中包含 Retry-After 标头,指示时间窗口何时重置。 |
| 500 | api_error | 意外的服务器错误。请使用指数退避进行重试;如果错误持续存在,请携带请求 ID 联系支持团队。 |
| 503 | overloaded_error | 服务暂时过载。请稍后重试。Claude Platform 对此错误类型返回 529;此端点返回 503。 |
身份验证
bearer 令牌的作用域限定为单个例程。泄露的令牌只能触发该例程;它不授予任何读取权限,不能访问其他例程,也不能访问账户数据。
请在 claude.ai/code/routines 的例程 API 触发器设置中生成和撤销令牌。没有用于令牌管理的公开 API。生成新令牌会撤销之前的令牌。
幂等性
每个成功的请求都会创建一个新会话。没有幂等性键。如果 webhook 调用方进行重试,该端点会创建多个会话。
速率限制
API 触发按小时限制:每个例程每小时最多接受 30 次触发(API 触发、网页界面中的 Run now 按钮以及一次性重新启用共用这一上限),每个账户在所有例程中每小时最多可进行 100 次 API 触发。由此产生的会话与交互式会话消耗相同的 Claude Code 订阅用量。达到限制时,端点会返回 429 rate_limit_error 以及 Retry-After 标头。
要了解例程用量如何与订阅限制和额外用量计费相互作用,请参阅 Claude Code 文档中的用量和限制。
SDK 支持
此端点未包含在 Anthropic SDK 中。其令牌模型与 API 密钥身份验证不同,并且 CI 作业和告警 webhook 等典型调用方会直接发送请求。
另请参阅
Was this page helpful?