Skip to content

API 参考

OpenClaw 提供完整的 REST API,支持消息交互、会话管理、技能操作和自动化控制。

认证方式

方式Header适用场景
API KeyX-API-Key: your-api-key服务端集成
Bearer TokenAuthorization: Bearer your-token前端应用、OAuth

API 端点总览

方法路径说明
POST/api/chat发送消息并获取回复
POST/api/chat/stream流式消息(SSE)
GET/api/sessions获取会话列表
GET/api/sessions/:id获取会话详情
DELETE/api/sessions/:id删除会话
POST/api/sessions/:id/reset重置会话记忆
GET/api/skills获取已安装技能列表
POST/api/skills/install安装技能
DELETE/api/skills/:name卸载技能
GET/api/automations获取自动化任务列表
POST/api/automations创建自动化任务
DELETE/api/automations/:id删除自动化任务
GET/health健康检查

POST /api/chat

bash
curl -X POST https://your-gateway.com/api/chat \
  -H "X-API-Key: oc_sk_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "今天上海天气怎么样?",
    "sessionId": "sess_abc123",
    "options": { "model": "gpt-4o", "temperature": 0.7 }
  }'

请求参数:

字段类型必填说明
messagestring用户消息内容
sessionIdstring会话 ID(不传则创建新会话)
options.modelstring覆盖默认模型
options.temperaturenumber覆盖默认温度
options.maxTokensnumber覆盖最大 Token 数
attachmentsobject[]附件列表(文件/图片)

响应示例:

json
{
  "id": "msg_xyz789",
  "sessionId": "sess_abc123",
  "content": "今天上海天气晴朗,气温 22-28 度,适合外出。",
  "skillsUsed": ["weather-query"],
  "tokenUsage": { "prompt": 156, "completion": 42, "total": 198 },
  "createdAt": "2026-03-04T10:30:00Z"
}

POST /api/chat/stream

使用 Server-Sent Events 获取流式响应。

javascript
const res = await fetch('/api/chat/stream', {
  method: 'POST',
  headers: { 'X-API-Key': 'oc_sk_abc123', 'Content-Type': 'application/json' },
  body: JSON.stringify({ message: '写一首关于春天的诗', sessionId: 'sess_abc123' }),
});
const reader = res.body.getReader();
const decoder = new TextDecoder();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  const lines = decoder.decode(value).split('\n').filter(l => l.startsWith('data: '));
  for (const line of lines) {
    const data = JSON.parse(line.slice(6));
    process.stdout.write(data.content);
  }
}

Python SDK 示例

python
from openclaw import OpenClaw

client = OpenClaw(gateway_url="https://your-gateway.com", api_key="oc_sk_abc123")

# 发送消息
response = client.chat("今天有什么新闻?", session_id="sess_001")
print(response.content)

# 流式输出
for chunk in client.chat_stream("写一篇关于 AI 的文章"):
    print(chunk.content, end="", flush=True)

# 管理会话与技能
sessions = client.sessions.list(status="active")
client.skills.install("clawhub/weather-pro")

速率限制

API 端点限制窗口
/api/chat60 次每分钟
/api/chat/stream30 次每分钟
/api/sessions120 次每分钟
/api/skills30 次每分钟

超出限制时返回 429 Too Many Requests,响应头包含 Retry-After 字段。

错误码

错误码HTTP 状态说明
UNAUTHORIZED401API Key 无效或过期
FORBIDDEN403无权访问该资源
NOT_FOUND404资源不存在
RATE_LIMIT_EXCEEDED429超出速率限制
INTERNAL_ERROR500服务器内部错误
MODEL_UNAVAILABLE503LLM 模型暂不可用

Learn OpenClaw - 从 0 开始学 AI Agent