ai
POST /v1/ai/site-builds/{siteBuildId}/publish
Put an AI-built site live on one of the organization's sites.
인증
Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 hosting.deploy.manage 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.
이 엔드포인트는 조직 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