Malla文档

HTTP API

编辑器 API、已发布站点的接口和 MCP 接口。

开发者指南

共有三类 HTTP 接口:应用背后的 editor API、每个 published site(已发布站点)的端点,以及供智能体使用的 MCP 端点。

编辑器 API

Web 应用把 /api/** 代理到 api Worker。请求使用仅限 HTTP 的会话 cookie 并经过 CSRF 检查;每个路由都会检查调用者在该站点上的角色。你没有任何角色的站点会返回 404,与不存在的站点相同,因此 id 绝不会泄露。超出套餐上限时返回 402 plan_limit。

认证

方法路径用途
POST/auth/signup创建编辑器账户
POST/auth/login开始会话(按 IP 和邮箱限流)
POST/auth/logout结束会话
GET/auth/me当前登录的用户
GET/auth/realtime-token用于站点房间的短期令牌
POST/auth/password-reset/request · /confirm重置密码(在接入邮件发送前返回 501)
POST/auth/verify-email/request · /confirm验证邮箱地址(在接入邮件发送前返回 501)
POST/auth/invites · /invites/accept邀请加入和加入工作区(在接入邮件发送前返回 501)

站点和页面

方法路径用途
GET POST/sites列出或创建站点
GET PATCH DELETE/sites/:siteId读取、重命名(slug:管理员)或删除站点
GET POST/sites/:siteId/pages列出或创建页面
GET PATCH DELETE/pages/:pageId读取、更新或删除页面
PUT/pages/:pageId/doc替换页面文档
GET POST/sites/:siteId/members站点成员
GET POST/sites/:siteId/assets列出或上传资源
POST/sites/:siteId/publish发布到预发布环境(编辑者)或生产环境(管理员)
GET/sites/:siteId/publishes?environment=staging 或 production 的最近发布,从新到旧,包括线上版本以及由谁发布或回滚(编辑者;邮箱仅对管理员可见)
POST/sites/:siteId/rollback把环境回滚到它最近的某次发布,{ environment, publishId }:预发布环境(编辑者)或生产环境(管理员)
POST/sites/:siteId/export静态导出 ZIP(管理员)

CMS 和表单

方法路径用途
GET POST/sites/:siteId/collections集合
GET POST/sites/:siteId/collections/:id/items条目
POST…/items/:itemId/publish · unpublish · archive条目生命周期
GET…/items/:itemId/versions条目版本,配合 …/:versionId/restore 恢复
GET/sites/:siteId/forms/:formId/submissions(.csv)提交记录,JSON 或 CSV

数据和逻辑

方法路径用途
GET POST PATCH DELETE/sites/:siteId/integrations集成(写入:管理员)
POST/sites/:siteId/integrations/:id/test测试连接
POST/sites/:siteId/run在编辑器中运行查询或操作
GET POST PUT DELETE/sites/:siteId/workflows服务端工作流
POST/sites/:siteId/workflows/:id/test测试运行(通过 …/runs/:runId/stream 流式输出)
GET POST PATCH DELETE/sites/:siteId/tables原生表及 …/rows
GET PATCH DELETE/sites/:siteId/visitors访客,以及 …/visitor-roles

平台

方法路径用途
GET POST DELETE/sites/:siteId/domains自定义域名,…/:id/refresh 重新检查
GET/billing/plans套餐和上限
PUT/billing/workspaces/:id/plan · /sites/:siteId/billing/plan更改套餐(Stripe Checkout)
GET POST/catalog/templates模板,…/:id/use 用于创建站点
GET POST/catalog/plugins插件目录;在 /sites/:siteId/plugins 按站点安装
POST/sites/:siteId/aiAI 编辑(server-sent events)
POST/sites/:siteId/ai/expression表达式助手:编写、修复或解释表达式(server-sent events)
GET/workspaces/:workspaceId/ai/usage某月的 AI 花费:token、预估费用、配额,按站点和任务(管理员可按成员查看)
GET/workspaces/:workspaceId/ai/runs某月的 AI 请求,从新到旧,含 token 和预估费用
GET POST DELETE/workspaces/:id/api-keys用于 MCP 的工作区 API 密钥

已发布站点

http
# Published sites (any domain of the site)
POST /api/_forms/:formId                 form submission (Turnstile token required)
POST /api/_q/:name                       client query of a page
ALL  /api/<your path>                    your server workflow endpoints and webhooks
POST /_auth/signup | login | logout | magic-link
GET  /_auth/magic?token=…                completes a magic link
GET  /_auth/me                           the current visitor

表单和查询按 IP 限流。带访问规则的页面,其查询也要通过同样的规则。

MCP

POST /mcp 使用 JSON-RPC(MCP streamable HTTP),以工作区 API 密钥作为 bearer token。GET /mcp 返回 405:不存在由服务端发起的流。

bash
curl -X POST https://<mcp host>/mcp \
  -H 'Authorization: Bearer mk_…' \
  -H 'content-type: application/json' \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'