FunClaw 开放平台
接口范围
FunClaw 对外稳定 API 只使用以下命名空间:
/api/open/v1/**应用开发者和 AI Agent 应按本页及各接入指南中列出的开放 API 编写调用代码,以对应接口的认证、输入和响应合同为准。
内部接口命名空间:
/api/v1/**/api/v1/** 仅服务 FunClaw 前台、控制台和内部业务链路,不能作为外部应用或 AI Agent 的调用依据。
认证
开放 API 不接受匿名请求。不同接口使用各自的凭证,均通过 Authorization: Bearer ... 传递。
应用服务凭证
数字员工服务使用平台登记应用的服务凭证:
Authorization: Bearer <完整的 fc_app_ 应用服务凭证>在 Console“应用管理”登记应用,启用 API 接入,在“员工授权”分配指定员工,在“服务凭证”生成 Key。应用身份由凭证解析,调用 /api/open/v1/applications/me、/employees、/tasks 等应用服务接口,无需借用组织身份。
应用服务凭证只保存在应用后端。完整 Key 仅签发时显示一次,可签发多份用于轮换;每次请求检查凭证、应用和 API 接入状态。员工任务另校验员工使用授权,具体流程见快速接入。
组织应用 API Key
Data API 和现有 /api/open/v1/organizations/{orgId}/capabilities/... 业务能力按各自文档使用组织应用级 Key:
Authorization: Bearer <org-application-api-key>组织应用 API Key 获取链路:
- 用户注册或登录 FunClaw。
- 用户加入组织。
- 组织 Admin 为组织下已授权的应用分配 API Key。
- 外部应用使用 Bearer Key 调用开放 API。
- 平台根据 Key 识别组织、应用和权限范围。
组织应用 API Key 代表指定组织下指定应用的开放接口访问能力。它与 fc_app_ 应用服务凭证分别使用,不能假设互换。应用直接使用新平台服务时,也应遵循该服务的授权合同。
用户登录与组织访问
FunClaw SSO 登录识别用户,并校验组织/空间中的应用访问资格;应用服务凭证识别应用后端。应用拥有服务凭证不代表任意用户可进入该应用,也不自动取得所有组织资产权限。业务用户、角色和本地数据权限由独立应用管理。
禁止调用
AI Agent 和外部应用必须遵守以下限制:
- 不调用
/api/v1/**。 - 不把内部 Swagger 当作开放 API 契约。
- 不直接连接 PostgreSQL、MongoDB 或对象存储。
- 不使用自定义认证头替代
Authorization。 - 不构造本页未列出的接口路径。
对象模型
Organization / 组织
数据、应用、成员和权限的租户边界。
Member / 成员
组织内的用户身份。组织 Admin 可以管理本组织应用的 API Key。
Application / 应用
平台统一登记的独立应用或第三方系统,可使用应用服务凭证成为员工任务的 caller。组织/空间对应用的使用授权单独控制用户访问与资源上下文。
Digital Employee / 数字员工
平台提供的执行主体,可分别授权给组织和应用使用。应用任务通过 Assignment 执行,输入和结果归属调用应用;员工执行工具由平台配置。
Data Source / 数据源
数据生产者,例如外部应用、内部业务模块、Agent、Workflow、系统任务或人工导入。
Dataset / 数据集
一类由平台治理的数据资产。Dataset 定义数据归属、可见性、Schema 描述和读写权限。
Data Record / 数据记录
Dataset 下的一条数据。平台管理记录的归属、幂等键、状态、审计和 payload 引用。
Payload / 数据正文
业务方写入的原始内容。平台不依赖 payload 内部字段完成权限、幂等和审计。
平台能力
平台能力是可独立调用的业务服务,按各项能力文档的凭证与权限执行。当前可用能力和调用方式见平台能力。
应用委托员工执行时,先取得该员工的使用授权;员工执行工具由平台配置,无需应用重复授权 TikHub 等员工工具。应用后端直接调用平台服务时,配置应用自己的平台能力授权。详见数字员工服务的能力授权。
Data API
开放数据 API 路径:
POST /api/open/v1/data/datasets/{datasetId}/records:upsert
POST /api/open/v1/data/datasets/{datasetId}/records:batchUpsert
GET /api/open/v1/data/datasets/{datasetId}/records
GET /api/open/v1/data/datasets/{datasetId}/records/{recordId}
GET /api/open/v1/data/datasets/{datasetId}/records/by-external-key/{externalKey}响应格式
响应结构以具体接口为准。数字员工服务返回直接 JSON:员工列表为 {items: [...]},任务状态为包含 id/status 的对象,任务结果为 {assignmentId, applicationId, output}。不要为这些接口增加 data 层解析。字段见调用接口。
下面的三段式结构用于本页 Data API:
{
"code": 200,
"message": "success",
"data": {}
}code 使用 HTTP 状态码数字,并且必须与 HTTP Status 保持一致。
成功响应:
{
"code": 200,
"message": "success",
"data": {
"recordId": "record-id"
}
}错误响应:
{
"code": 400,
"message": "externalKey is required",
"data": null
}写入记录请求结构:
{
"externalKey": "source-system:business-id",
"payload": {
"any": "business-defined-content"
},
"schemaVersion": "v1",
"occurredAt": "2026-05-09T00:00:00Z"
}批量写入请求结构:
{
"records": [
{
"externalKey": "source-system:business-id-1",
"payload": {
"any": "business-defined-content"
},
"schemaVersion": "v1",
"occurredAt": "2026-05-09T00:00:00Z"
}
]
}读取记录响应结构:
{
"code": 200,
"message": "success",
"data": {
"recordId": "record-id",
"datasetId": "dataset-id",
"sourceId": "source-id",
"externalKey": "source-system:business-id",
"status": "ACTIVE",
"payloadHash": "sha256...",
"payload": {
"any": "business-defined-content"
},
"createdAt": "2026-05-09T00:00:00Z",
"updatedAt": "2026-05-09T00:00:00Z"
}
}幂等规则
externalKey 必填。
同一组织、同一 Dataset 下,externalKey 必须唯一:
orgId + datasetId + externalKey重复写入相同 externalKey 时,平台执行 upsert,不创建重复记录。
payloadHash 由平台根据 payload 计算。调用方不需要传入 payloadHash。
错误响应
Data API 错误响应使用下述三段式结构。数字员工服务以 HTTP 状态判断错误,不承诺相同的错误包装,详见HTTP 错误。
{
"code": 400,
"message": "externalKey is required",
"data": null
}常见错误码:
200 success
400 bad request / validation failed
401 unauthorized
403 forbidden
404 not found
409 conflict
429 rate limited
500 internal server error