面向开发者

可通过代码操控的托管服务

Zinn Digital® 是一个 API 优先的平台。驱动我们控制面板的相同引擎 API 就是您所获得的 API — 具备版本控制、规范优先,并在构建时提供 100% 完整文档,上层还配备了生成的 SDK、CLI、Terraform 提供程序、签名 Webhook 以及 MCP 服务器。无论您使用什么工具进行工作 — 终端、流水线、状态文件还是 AI 代理 — 该平台均能予以响应。

一个向多个已订阅侦听器传递签名事件的 API 端点。
  • 700,000+全球托管的站点
  • 1生成每个工具所依据的 OpenAPI 规范
  • 4客户端 SDK — TypeScript、Python、PHP、Go
  • OAuth 2.1限定范围且可撤销的 AI 代理访问权限

单一 API。承载每一种终端呈现。

大多数主机商都是事后才将 API 拼接到控制面板上,其弊端显而易见——面板中有一半的功能从未对外开放。我们的构建方式恰恰相反。仪表盘、管理控制台、CLI、Terraform 提供商、MCP 服务器以及您自己的集成,全部都在调用同一个引擎 API。凡是您能在面板中完成的操作,均可通过代码实现。

规范优先,而非事后记录

OpenAPI 规范是唯一的真理来源,除非包含在规范中,否则任何端点都不会发布。正是这一条规则,使得公共 API 在构建时就拥有完整的文档,而不是在日后补充——没有任何未记录的隐秘角落,因为未记录的端点根本不可能存在。

自动生成,从不手动维护

交互式参考文档、四个客户端 SDK、大部分 CLI 以及 Terraform 提供商脚手架均由该单一规范生成。单一源头,多样产物,始终同步——您再也无需苦苦追赶与实际实现脱节的文档。

具有弃用策略的版本化管理

端点位于 /v1 下,并附有已发布的弃用政策和变更日志。在发生任何变更之前,您都会收到书面通知,而不是通过构建失败才发现问题。

已在 CI 中进行契约测试

每次更改都会运行实现与规范的契约测试以及 OpenAPI 代码检查。代码与契约之间的偏差会导致构建失败——因此,您用来生成客户端的规范正是服务器实际遵循的规范。

身份验证、作用域界定以及大规模扩展中的隐患

两种进入途径,背后遵循同一种统一原则。无论您使用哪一种,均适用相同的权限检查与相同的数据库级隔离。

API 密钥,按组织

密钥格式形如 zdk_<mode>_<prefix>_<secret>。系统仅存储机密部分的 SHA-256 哈希值——生成后我们无法再次向您显示密钥,任何访问我们数据库的人也无法做到。密钥包含权限范围,可以被撤回,并且是按组织而非个人发放的。

实时模式与测试模式,彼此隔离

沙盒密钥与生产密钥是分开的,并在沙盒模式下运行:无实际计费,无实际资源配置。您的集成测试可以对 API 进行高强度测试,而无需花费资金或构建服务器。

面向人类的 OIDC

用户会话使用 Keycloak 签发的 JWT 进行身份验证,并根据 realm 公钥进行核验,解析为与 API 密钥相同的 Principal 对象。端点受到粒度权限密钥(例如 sites.create 或 apikeys.manage)的限制,且按组织进行检查——在一个组织中的权限不会授予在另一个单独、无关组织中的任何访问权限,尽管该权限适用于其下嵌套的组织。

底部的行级安全性

每个租户请求都在一个事务中运行,其中 Postgres 组织范围由主体设置,因此隔离是由数据库强制执行的,而不是由某人可能会遗忘的 ORM 过滤器强制执行。queryset 过滤器仍然作为纵深防御存在。

为机器打造,而非仅用于演示

在 README 中让 API 看起来很出色很容易,但要让它在实际流量下平稳运行却很难。这些正是我们倾注心血的部分,因为它们往往是在凌晨三点导致集成故障的元凶。

值得指出的一个细节,因为它决定了批量操作的行为模式:针对重复域名的 409 响应会回答任何租户的“此主机名是否托管在此处?”,这是一个枚举预言机(enumeration oracle),并且是对 Footprint-Free 的真正去匿名化风险。限制站点创建速度本是一个偷懒的解决方案,并且会彻底破坏批量配置产品的功能。相反,系统仅针对每个主体对被拒绝的重复域名尝试设置配额。成功的创建绝不会计入该限额中 — 因此您可以整天进行批量配置,而探测行为几乎会立即失效。

  • 每次失败时均提供一致的错误外包:包含代码、易于理解的消息、可选的字段级详细信息,以及可向支持团队提供的 request_id。验证错误将返回 422 并指明有问题的字段。
  • POST 请求上的幂等性密钥,重放记录写入于提交时而非内联处理 — 因此重试绝不会重放指向从未提交过的行的缓存 201。失败的请求会立即释放其进行中的锁,因此 422 不会阻止您已更正的重试。
  • 基于 UUIDv7 键集的游标分页 — 在并发写入下保持稳定,在扫描中途插入行时不会发生页面漂移。
  • 响应中的 RateLimit-Remaining,以便生成的客户端可以智能退避而不是盲目猜测。
  • 超出范围的资源将返回 404 而不是 403 — 403 会确认该资源存在。出于同样的原因,按超出您范围的组织进行筛选会返回一个空白页面。
  • 站点创建属于注册而非配置:POST /v1/sites 会返回 201 以及状态 pending,且绝不会因构建而阻塞。该事件会在与该数据行相同的事务中写入 transactional outbox,因此当且仅当确定会请求其配置时,站点才会存在。

SDK、CLI 和 Terraform 提供程序

同一规格的三种使用者,对应三种不同的工作方式。

客户端 SDK

针对 TypeScript、Python、PHP 和 Go 生成,紧跟规范,因此无需等待手写封装,新的端点即可直接以您的语言提供。

Zinnector®,命令行界面 (CLI)

搭建 WordPress 站点,在仅安装 Node 的情况下于本地运行,并进行部署。Zinnector® 会针对您即将部署到的槽位对项目进行预检(包括 PHP 版本、磁盘、文件数量),并在您推送之前而非之后发出警告。它还可以登录、列出站点、部署、管理域名和 DNS、读取邮件服务、创建备份、运行白名单中的 WP-CLI、实时跟踪日志并执行批量操作。免费、采用 MIT 许可,并且基于相同的公共 API 构建。

Terraform 提供商

以“基础架构即代码”的方式管理站点、域名、DNS 记录、邮箱和方案。terraform apply 可自动配置主机服务,让您的环境变得可复现、可审查,而非变成无人记录的一连串点击操作。

交互式参考

您可以直接在浏览器中阅读并调用的生成文档,准确描述了服务器实现的端点——因为两者均源自同一规范。

端点宕机时依然能够存留的 Webhook

该平台的底层是一个持久的事件主干:每一次状态变更都会与数据库变更以原子方式将事件写入 Postgres 中的事务性发件箱,并由中继将其发布到 NATS JetStream。事件均已定义类型并进行了版本控制——site.deployed、order.paid、invoice.overdue、backup.completed、abuse.flagged、trial.ending 等等。

订阅您关注的内容

将端点注册为 WebhookSubscription 并选择其接收的事件类型。单个流同样可为通知、分析、自动化和您的集成提供支持——您所使用的事件与我们使用的完全相同。

已使用 HMAC 签名

每次投递均经过 HMAC 签名,因此您可以在采取操作之前验证其确实来自我们。

采用退避机制重试,并已记录

失败的投递将采用退避策略重试,且每次尝试都会被记录为一个 WebhookDelivery。您可以在控制面板中检查并重放投递,无需发邮件向技术支持询问我们发送了什么内容。

至少一次,因此请根据 id 进行去重

该管道特意采用至少一次(at-least-once)语义,而非假装为恰好一次(exactly-once)。在发布过程中终止的中继,其认领租约会过期,其事件将被重新发布。根据 envelope id 进行去重,您的消费者在架构上即可确保正确无误。

将代码部署到站点

API 只是开发者历程的一半。另一半是发布。

  • 通过 OAuth 连接 GitHub、GitLab 或 Bitbucket,部署密钥保存在凭据存储中,而非配置文件中。
  • Push 会触发构建与部署流水线,包含分支到环境的映射(main 对应 production,staging 对应 staging),以及针对 composer 和 npm 的分技术栈构建步骤。
  • 当部署出现问题时,回滚到先前的版本。
  • 预发布克隆与一键上线,确保更改在面向访客之前已在实际环境中得到验证。
  • 基于 CageFS 隔离的各站点独立 SFTP,使每个租户仅能查看自己的文件,并在共享平台上配备受限的(jailed)SSH Shell。
  • 通过控制面板终端和 SSH 使用 wp-cli。
  • 通过 code-server 在浏览器中使用 VS Code——带有 git 的完整编辑器,可直接编辑网站的文件。
  • 每个站点的 PHP 版本、可编辑的 PHP 设置、每个站点的扩展、环境变量以及与 WP-cron 并存的真实 cron。

在站点上工作的四种方式

API 是一扇门。这是另外四扇门,每一扇都包含在套餐中,而不是作为开发者层级单独出售。

网页编辑器

在浏览器中的 VS Code,可从控制面板的站点页面打开,内置 git,并且整个编辑器与您的 SFTP 访问处于同一个 CageFS 隔离环境中,直接编辑该站点的实际文件。它编辑的是实时生产站点——中间没有过渡暂存副本,因此您保存的文件在写入的一刻即对外公开,不过静态文件可能会继续从 CDN 缓存中提供长达四个小时。

Zinnector®,CLI

免费、遵循 MIT 许可,并基于相同的公共 API 构建。搭建 WordPress 站点脚手架,在您自己的机器上运行它,针对您即将部署的目标槽位进行预检(PHP 版本、磁盘、文件数量),然后进行部署。需要 Node 24 或更高版本。

MCP 服务器

统一的工具目录,使您现有的 AI 客户端能够通过控制面板所使用的同一 API 和相同权限在您的网站上运行。您自己的客户端所连接的服务器,正是接入 Web 编辑器的同一台服务器。除非您另有指示,否则为只读状态。

按站点的开发者访问权限

客户工作无需您的密码。只需通过电子邮件地址邀请某人,他们就只能访问一个站点:他们以自己的身份登录,担任查看者、编辑者或管理员角色,而在任何处理程序运行之前,所有其他站点都会返回 404——这是 Postgres 行级安全策略和请求级隔离墙,而不是单单一次检查。账户所有者只需轻轻一点即可授予和撤销该权限,并在其下一次请求时立即生效。

以及您的人工智能代理可以使用的同一 API

我们将该平台作为托管的 MCP 服务器提供:它是引擎 API 之上的轻量级协议适配器,复用了完全相同的操作目录、RBAC 和审计跟踪。只需连接一次 Claude Code、Cursor、ChatGPT、Claude Desktop 或任何支持 MCP 的客户端,我们添加到 API 的每一项功能都将自动对其可用。

智能体获得三样东西:工具(相同的 API 端点,没有会产生偏差的并行逻辑)、资源(只读的站点运行状况、配置、近期日志、指标、正常运行时间和知识库文章,以便其在采取行动前利用真实数据进行诊断)以及提示(已发布的工作流模板,例如“诊断此站点”或“准备迁移”)。

安全与身份验证如出一辙:OAuth 2.1、绑定到您的组织的令牌,以及强制执行行级安全的 RBAC 权限,按工具限定范围并可撤销,沙箱与生产环境隔离。破坏性操作——删除、暂停、计费、大额支出——需要明确确认或人工审批策略。速率限制和支出上限约束了 AI 触发的付费操作,每次 MCP 调用都会记录审计日志,包括身份、工具、参数和结果。

我们支持该协议,而不是逐个集成每个应用程序,这意味着您可以更换所选的 AI 工具,而无需随之更改您的托管集成。

常见问题

公开 API 是否与仪表盘使用的 API 相同?

是的 — 这是同一个经过发布和强化的引擎 API。仪表板、管理控制台、CLI、Terraform 提供程序、MCP 服务器和 Webhook 都使用同一个接口,这就是为什么 API 不会落后于控制面板的原因。

我可以在不花钱或不构建真实服务器的情况下测试集成吗?

是的。沙盒密钥与生产密钥分开颁发,并在测试模式下运行:没有实际计费,也没有实际资源配置。请将您的 CI 指向沙盒凭据,即可安全地演练完整的请求和响应周期。

如何防止重试操作重复创建对象?

请在您的 POST 请求中发送 Idempotency-Key。重放记录是在提交(commit)时而非内联(inline)写入的,因此重试绝不会针对未实际提交的行重放缓存的成功状态,并且失败的请求会立即释放其锁,从而不会耽搁您更正后的重试。Webhook 交付在设计上采用至少一次(at-least-once)机制 — 请在您端根据 envelope id 进行去重。

我可以为一个 API 密钥授予访问我所有客户组织的权限吗?

目前不行。API密钥是按组织分发的,因此跨越多个客户组织的集成会为每个组织分别持有一个密钥。针对用户主体,权限也是按组织进行检查的:在一个组织中拥有sites.create权限并不授予在另一个单独、无关组织中的访问权限,但它适用于嵌套在该组织下的各子组织。这是特意设计的——它将泄露的密钥限制在其所属组织以及其下的子组织中,而不是整个平台。

内置的“开发者”角色实际上允许执行哪些操作?

dev 角色涵盖组织查看、API 密钥管理、查看和创建站点、重启站点、清除缓存,以及查看和回复工单。它特意排除了账单控制权限。请注意,部署和推送到生产环境的权限不属于该角色——如果团队成员需要这些权限,请为其分配包含这些权限的角色,而不是认定开发者是范围最广的技术角色。

如果我的终端节点宕机一小时,我的 Webhook 会怎样?

交付会随着退避时间重试,每次尝试都会记录为您可检查的 WebhookDelivery。在上一游,事件与更改本身在同一个数据库事务中被写入事务性发件箱,因此在使用者不可用时不会丢失任何内容——停机的使用者会出现滞后,但绝不会中断生成者,您可以在恢复后从仪表板重放交付。

开始基于它进行构建需要多少费用?

开启 14 天免绑定信用卡 Footprint-Free 托管试用 — 无需支付信息,最多支持 5 个网站。付费 Footprint-Free 方案起价为 PBN 5 每月 6 美元。所有套餐均享有 30 天退款保证、免费迁移服务且无供应商锁定。

阅读规范,然后据此构建

规范优先的 API、生成的 SDK、CLI、Terraform 提供商、签名的 Webhook 和 MCP 服务器 — 搭载于我们为全球 700,000 多个站点打造的托管平台。立即开启 14 天免绑卡试用,无需支付信息。

免费开始

您的 AI 代理可以配合使用的 WordPress 插件

这些插件中的每一个都使您的 WordPress 网站成为一个 MCP 服务器,因此 Claude、Cursor、VS Code 和其他 AI 助手可以在其上为您登录并受限于您的权限执行实际工作。

面向开发人员的所有 MCP 和 API 文档 →