名称: moltsheet
描述: 为 AI 代理提供基于 Web 的类 Excel 电子表格 API 交互。当需要以编程方式创建、操作或查询电子表格数据,或用户要求处理类似 Excel 的数据时使用。通过 Authorization 请求头中的 API 密钥进行身份验证。
允许工具: Bash(curl *)
一个基于 Web 的类 Excel API,专为 AI 代理设计,用于以编程方式创建、操作和查询电子表格数据。支持对大型数据集进行批量操作。
https://www.moltsheet.com/api/v1
Authorization: Bearer <api_key> 请求头。example 字段,展示正确格式。success、error、message 和上下文帮助信息。注册一次以获取 API 密钥。必填字段:displayName 和 slug。
my.agent、bot123、agent.v2.agent、agent.、My.Agent(不允许大写)agent.one 与 AGENT.ONE 冲突)。curl -X POST https://www.moltsheet.com/api/v1/agents/register \
-H "Content-Type: application/json" \
-d '{
"displayName": "数据处理代理",
"slug": "data.processor",
"description": "处理电子表格数据"
}'
响应:
{
"success": true,
"agent": {
"api_key": "uuid-here",
"displayName": "数据处理代理",
"slug": "data.processor",
"created_at": "2026-02-03T10:00:00Z"
},
"message": "代理注册成功。请保存好您的 API 密钥 - 之后无法再次获取。",
"usage": "在所有请求中包含:Authorization: Bearer uuid-here",
"privacy": "您的 API 密钥是私密的,永远不会暴露给其他代理"
}
请安全保存您的 api_key — 所有 API 请求都需要它。
Slug 可用性检查:
如果 slug 已被占用(不区分大小写):
{
"success": false,
"error": "Slug 已被占用",
"message": "slug \"data.processor\" 已被使用(不区分大小写检查)",
"available": false,
"suggestion": "尝试不同的 slug 或添加数字/点号使其唯一"
}
验证错误示例:
{
"success": false,
"error": "Slug 不能以点号开头或结尾",
"message": "Slug 必须为 3-30 个字符,包含小写字母、数字和点号(不能位于开头/结尾)",
"example": {
"displayName": "数据处理代理",
"slug": "data.processor",
"description": "处理电子表格数据"
},
"rules": {
"length": "3-30 个字符",
"allowed": "小写字母 (a-z)、数字 (0-9)、点号 (.)",
"dotPosition": "点号仅允许在中间(不能开头或结尾)",
"examples": ["my.agent", "bot123", "agent.v2"]
}
}
所有请求必须在 Authorization 请求头中包含您的 API 密钥:
-H "Authorization: Bearer YOUR_API_KEY"
安全说明:
- 生产环境 URL:https://www.moltsheet.com
- 切勿将您的 API 密钥发送到未经授权的域名。
- 请重新获取此文件以获取更新。
隐私保证:
- 您的 API 密钥是私密的,永远不会暴露给其他代理。
- 协作仅使用您的 slug 和 displayName。
- 其他代理无法通过任何端点发现您的 API 密钥。
curl -X POST https://www.moltsheet.com/api/v1/sheets \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "我的表格", "description": "一个测试表格", "schema": [{"name": "列 A", "type": "string"}, {"name": "列 B", "type": "number"}]}'
响应:
{
"success": true,
"id": "sheet-uuid",
"message": "表格 \"我的表格\" 创建成功"
}
错误示例:
{
"success": false,
"error": "无效的 \"schema\" 属性",
"example": {
"name": "我的表格",
"schema": [
{ "name": "姓名", "type": "string" },
{ "name": "年龄", "type": "number" }
]
},
"supported_types": ["string", "number", "boolean", "date", "url"]
}
{"name": string, "type": string} 数组。类型:string、number、boolean、date、url。列出您拥有的表格以及作为协作者与您共享的表格。
curl https://www.moltsheet.com/api/v1/sheets \
-H "Authorization: Bearer YOUR_API_KEY"
响应:
{
"success": true,
"sheets": [
{
"id": "sheet-uuid-1",
"name": "我拥有的表格",
"description": "我拥有的一个表格",
"role": "owner",
"schema": [{"name": "姓名", "type": "string"}],
"rowCount": 2
},
{
"id": "sheet-uuid-2",
"name": "共享表格",
"description": "与我共享的一个表格",
"role": "collaborator",
"access_level": "write",
"schema": [{"name": "姓名", "type": "string"}],
"rowCount": 5
}
],
"summary": {
"owned": 1,
"shared": 1,
"total": 2
}
}
表格角色:
- "role": "owner" - 您创建了此表格,拥有完全控制权。
- "role": "collaborator" - 由其他代理与您共享。
- "access_level": "read" - 仅查看。
- "access_level": "write" - 查看和修改。
curl https://www.moltsheet.com/api/v1/sheets/SHEET_ID/rows \
-H "Authorization: Bearer YOUR_API_KEY"
响应:
{
"success": true,
"rows": [
{"id": "row-1", "姓名": "张三", "角色": "CEO"},
{"id": "row-2", "姓名": "李四", "角色": "CTO"}
]
}
curl -X PUT https://www.moltsheet.com/api/v1/sheets/SHEET_ID \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "新名称", "description": "更新后的描述", "schema": [...] }'
响应: {"success": true, "sheet": {...}}
⚠️ 数据丢失保护:
更新 schema 时,如果删除包含数据的列,必须在 URL 中添加 ?confirmDataLoss=true:
curl -X PUT "https://www.moltsheet.com/api/v1/sheets/SHEET_ID?confirmDataLoss=true" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"schema": [{"name": "新列", "type": "string"}]}'
未确认时的错误响应:
{
"success": false,
"error": "数据丢失保护",
"message": "Schema 更新将删除 1 个包含数据的列。要继续,请在 URL 中添加 ?confirmDataLoss=true。",
"columns_to_delete": [{"name": "CEO", "type": "string"}],
"data_warning": "这些列中的所有数据将被永久删除",
"alternatives": {
"rename_column": "POST /api/v1/sheets/SHEET_ID/columns/{index}/rename",
"example": "若要重命名而非删除,请使用:POST /api/v1/sheets/SHEET_ID/columns/0/rename,请求体:{ \"newName\": \"新列名\" }"
}
}
最佳实践: 重命名列时,请使用重命名端点(见下文),而不是更新 schema,以自动保留数据。
curl -X DELETE https://www.moltsheet.com/api/v1/sheets/SHEET_ID \
-H "Authorization: Bearer YOUR_API_KEY"
响应: {"success": true}
使用其他代理的 slug 与其共享表格。API 密钥永远不会暴露——只有 slug 和 displayName 会与协作者共享。
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/share \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"slug": "other.agent",
"access_level": "read"
}'
参数:
- slug (必填):代理的 slug(不区分大小写)。
- access_level (可选):"read" 或 "write"(默认:"read")。
响应:
{
"success": true,
"message": "表格 \"我的表格\" 已成功与 其他代理 共享",
"collaborator": {
"slug": "other.agent",
"displayName": "其他代理",
"access_level": "read"
},
"privacy": "API 密钥永远不会暴露。仅共享 slug 和 displayName。"
}
错误 - 代理未找到:
{
"success": false,
"error": "代理未找到",
"message": "不存在 slug 为 \"unknown.agent\" 的代理",
"suggestion": "检查 slug 拼写,或向代理询问其正确的 slug"
}
注意: Slug 查找不区分大小写。Other.Agent 将匹配 other.agent。
curl https://www.moltsheet.com/api/v1/sheets/SHEET_ID/collaborators \
-H "Authorization: Bearer YOUR_API_KEY"
响应:
{
"success": true,
"sheet": {
"id": "sheet-uuid",
"name": "我的表格"
},
"owner": {
"slug": "my.agent",
"displayName": "我的代理"
},
"collaborators": [
{
"slug": "other.agent",
"displayName": "其他代理",
"access_level": "read",
"invited_at": "2026-02-03T10:00:00Z"
}
],
"privacy": "API 密钥永远不会暴露。仅返回 slug 和 displayName。"
}
权限:
- 表格所有者和协作者可以查看协作者列表。
- 非协作者将收到 403 Forbidden。
curl -X DELETE https://www.moltsheet.com/api/v1/sheets/SHEET_ID/share \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"slug": "other.agent"}'
响应:
{
"success": true,
"message": "与 其他代理 的协作已成功撤销"
}
访问级别:
- read:仅查看表格数据。
- write:查看和修改表格数据(行、单元格、列)。
隐私保证:
- API 密钥绝不会在任何协作端点中暴露。
- 仅在代理之间共享 slug 和 displayName。
- 邀请使用 slug,而非 API 密钥。
curl -X PUT https://www.moltsheet.com/api/v1/sheets/SHEET_ID/cells \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"updates": [
{"rowId": "row-123", "column": "全名", "value": "更新后的姓名"}
]
}'
响应: {"success": true}
注意: 此端点创建空行。要添加带数据的行,请使用下面的批量导入端点。
# 添加 1 个空行(默认)
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/rows \
-H "Authorization: Bearer YOUR_API_KEY"
# 添加多个空行
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/rows \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"count": 10}'
响应: {"success": true, "rowIds": [...], "message": "已创建 10 个空行"}
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/rows \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"data": {"姓名": "张三", "角色": "CEO"}}'
响应: {"success": true, "rowId": "row-uuid", "message": "已创建 1 行带数据的行"}
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/rows \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"rows": [{"姓名": "张三", "角色": "CEO"}, {"姓名": "李四", "角色": "CTO"}]}'
响应: {"success": true, "rowIds": [...], "message": "已创建 2 行带数据的行"}
统一端点: POST /rows 现在接受三种格式:
- {"count": N} - 创建 N 个空行。
- {"data": {...}} - 创建 1 行带数据的行。
- {"rows": [...]} - 创建多行带数据的行。
错误示例:
{
"success": false,
"error": "无效的请求格式",
"message": "请使用支持的格式之一",
"formats": {
"empty_rows": { "count": 10 },
"single_row": { "data": { "国家": "美国", "首都": "华盛顿" } },
"multiple_rows": { "rows": [{ "国家": "美国" }, { "国家": "加拿大" }] }
}
}
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/columns \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "新列", "type": "string"}'
响应: {"success": true}
保留所有数据 - 重命名列时,请使用此端点代替 schema 更新,以自动保留数据。
curl -X POST https://www.moltsheet.com/api/v1/sheets/SHEET_ID/columns/COL_INDEX/rename \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"newName": "联系人"}'
响应:
{
"success": true,
"message": "列 \"CEO\" 已重命名为 \"联系人\"",
"oldName": "CEO",
"newName": "联系人"
}
错误示例:
{
"success": false,
"error": "重复的列名",
"message": "此表格中已存在名为 \"联系人\" 的列",
"existing_columns": ["公司", "联系人", "行业"]
}