ai
POST /v1/ai/site-builds/{siteBuildId}/publish
Put an AI-built site live on one of the organization's sites.
身份验证
请将 API 密钥作为 bearer 令牌发送。该密钥必须具有 hosting.deploy.manage 权限;缺少该权限的密钥将被拒绝并返回 403 状态码,而非 404。
此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。
免费试用
将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。
curl -X POST https://api.zinndigital.com/v1/ai/site-builds/{siteBuildId}/publish \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "site_id": <Uuid> }'已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点
详细信息
Deploys the draft's files to the named site's edge host — Cloudflare Pages, Netlify, GitHub Pages, GitLab Pages, Vercel or AWS Amplify — and optionally pushes them to the organization's git provider as well. Idempotent on the build: a retried publish republishes the same draft rather than stacking a second deployment, and produces neither a duplicate repository nor an empty commit. **A site on our own fleet is published through its own repository instead**, because a fleet document root accepts bytes from exactly one place: a git checkout over SSH. The customer's connected GitHub or GitLab repository is therefore a *prerequisite* there rather than the optional extra it is on an edge host — a site without one is refused with `fleet_needs_repo`, naming the missing connection. That path can also finish `held` rather than `published`, which no edge publish does. A fleet document root holding files we did not put there is left **untouched** and `hold_reason` says so: overwriting it would destroy the customer's own work silently. The generated files are safe in the repository and the customer chooses which version wins on the site's sync screen. A `held` response is a successful refusal — do not retry it automatically. A site that is neither on our fleet nor on a managed edge host is refused with that provider's own reason. A site on a resold package is refused because its vendor publishes it, not us. Requires `hosting.deploy.manage` — a separate and stronger authority than reading a draft, so somebody who may look at one cannot put it in front of the public. The target site is scoped by that same authority, so naming a site the caller may only view is a `404`.
参数
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
siteBuildId (path) | Uuid | 是 | — |
请求正文
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
site_id | Uuid | 是 | The site to publish onto. It must already be on a managed edge host; a site on a resold package is refused with the provider's own reason, not a generic failure. |
connect_repo | boolean | 否 | Also put the files in the organization's connected git provider. Defaults to false: creating a repository on somebody's account is a named, permanent artefact on an account we o… |
repo_owner | string | 否 | Which account to create the repository under. Required for a new repository and ignored when the site already has one. ⛔ Never inferred: one token reaches every account it was g… |
响应
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
build | SiteBuild | 是 | One "describe a site and we build it" run. `files` is present on the **detail** and create responses and absent from the **list**, deliberately: a generated tree can be a hundre… |
trial | SiteBuilderTrial | 否 | The **one-time** free allowance for the AI site builder. One grant per organization, for ever — not monthly, and not per site. `granted` is true because the credit was actually… |
此端点可能返回的错误
401 · 403 · 404 · 422 · 429