Kanorio Management REST API 让您的后端程序直接通过 HTTPS 读写网站:建立与设置网站、读写页面模块与博客文章、管理数据集合与数字交付物、上传媒体库图片、查询订单与联系人,以及发布网站与管理自定义域名。
它底层的能力与连接 AI 助手(MCP)完全相同,区别在于调用方式:
Base URL:https://app.kanorio.com/api/v1
完整端点、参数与错误码参考(SSOT):所有端点的路径、查询参数、Request/Response 示例、速率限制与错误代码表,皆由代码契约实时生成于公开的 Management API 参考页(机器可读规格:
https://app.kanorio.com/api/v1/openapi.json)。本文专注于说明认证、并发安全与淘汰政策。
REST API 仅接受以 knr_pat_ 开头的。请在每个请求加上 Authorization Header:
Authorization: Bearer knr_pat_您的密钥
/api/mcp,无法用来调用 REST API。安全提醒:
knr_pat_密钥等同您的个人管理身份。请务必存放在服务器端的环境变量或密钥保管服务中,绝对不要将密钥写进浏览器前端代码、移动端 App 或公开的 Git 仓库。
:id)所有网站层级的端点路径都以 /sites/:id/... 开头。您可以进入后台“网站设置 › 一般”滑到底部复制 websiteId,或先调用 GET /api/v1/sites 列出密钥可访问的网站列表。
POST /sites/:id/publish 才会更新托管网站):页面模块(PUT .../sections)、页首与页尾(PUT .../globals/header|footer)、全站通用按钮与社交链接、网站外观设置。博客文章的新增与修改同样只更新工作副本,需调用 POST .../posts/:postId/publish 才会公开。items.* 默认 publish: true,传 publish: false 则存草稿)、商店商品与交付物。ifUnmodifiedSince)为了防止您的脚本与正在使用后台编辑器的团队成员(或另一支 AI 助手)互相覆盖改动,写入页面模块与全站导航时采用乐观并发控制(Optimistic Concurrency Control):
PUT /sites/:id/pages/:pageId/sections):必须先读取页面获取 updatedAt,并在写入时带入 ifUnmodifiedSince: "<updatedAt>"。GET /sites/:id/globals 获取 contentUpdatedAt,并在写入时带入 ifUnmodifiedSince: "<contentUpdatedAt>"。409 CONFLICT(附带最新时间戳),请重新读取并合并后再重送。先将密钥设为环境变量:
export KANORIO_TOKEN="knr_pat_您的密钥"
curl -s https://app.kanorio.com/api/v1/sites \ -H "Authorization: Bearer $KANORIO_TOKEN"
id 与 updatedAtcurl -s https://app.kanorio.com/api/v1/sites/ws_example123/pages \ -H "Authorization: Bearer $KANORIO_TOKEN"
ifUnmodifiedSince 改写页面模块草稿curl -s -X PUT https://app.kanorio.com/api/v1/sites/ws_example123/pages/pg_example456/sections \ -H "Authorization: Bearer $KANORIO_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "ifUnmodifiedSince": "2026-10-15T08:00:00.000Z", "sections": [ { "id": "sec_hero_1", "type": "page-main-visual", "title": "拾光手作烘焙", "description": "每天清晨出炉的手作酸种面包与法式常温甜点。" } ] }'
curl -s -X POST https://app.kanorio.com/api/v1/sites/ws_example123/publish \ -H "Authorization: Bearer $KANORIO_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
429 RATE_LIMITED 并附 Retry-After 秒数。Deprecation、Sunset 与 Link Header,并主动发邮件通知近 30 天内仍有调用该端点的密钥拥有者。有的。您可以使用 @kanorio/sdk(由 Agent、Delivery、Customer 三份 OpenAPI 自动生成的类型化客户端),或执行 npx @kanorio/cli types --site https://{您的网站} 自动为您的数据集合生成完整 TypeScript 类型。
请直接前往 Management API 参考页 — Error codes 专区。编写程序时请一律依 error.code 分支处理,不要比对人类可读的 error.message 字符串。