hosting

POST /v1/sites/{siteId}/site-blueprint-deploy

Replace a site's content with a blueprint's.

모든 hosting 엔드포인트

인증

Bearer 토큰으로 API 키를 전송하세요. 이 엔드포인트는 명세에 특정 권한을 명시하지 않으므로, 가정하기보다는 키에 필요한 최소한의 권한을 부여하고 응답을 확인하세요.

이 엔드포인트는 조직 ID를 받지 않습니다. 사용자의 키가 이미 속한 조직을 식별하며, 응답은 해당 조직으로 한정됩니다.

무료 체험하기

대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.

curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/site-blueprint-deploy \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "blueprint_id": <Uuid> }'

로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요

상세 정보

⛔ **Destructive.** This overwrites the site's live database and files with the contents of the named blueprint, then rewrites the restored content's stored web addresses to this site's domain (a WordPress database names its own URLs, so without that step the new site would redirect its visitors to the old one). Its own path on the **site**, beside `backups/restore`, rather than a verb on the blueprint — the destruction happens here, so it is gated on `hosting.backup.manage` and cannot be reached by varying the body of anything gentler. ⛔ A blueprint captured from a different **stack** is refused with a `422` (`stack_mismatch`) — WordPress can only be deployed onto WordPress. So is one from a different **hosting platform** (`platform_mismatch`), whose archive our adapter cannot restore here. A blueprint belonging to a **different account** is refused with `org_mismatch`, even when your token can reach both: hierarchical tenancy means a reseller's key spans every client organisation, and a blueprint is that site's whole database — it never crosses between accounts. A blueprint that is still being captured is `blueprint_not_ready`. A deploy already in flight on this site is a `409`. The refusal is a **machine code**, carried in `error.details[0].code`, so a client can render it in the customer's own language; `error.message` is the English equivalent for a caller with no catalogue. ⛔ Read the code from `details`, not from `error.code` — that is the generic `UNPROCESSABLE_ENTITY` for every 422 this API produces.

매개변수

이름유형필수설명
siteId (path)UuidSite ID (UUIDv7).
Idempotency-Key (header)string아니요Client-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

요청 본문

이름유형필수설명
blueprint_idUuidThe SITE blueprint to deploy. ⛔ Always named explicitly — never "the latest". This overwrites a live site.

응답

이름유형필수설명
idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
blueprint_idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
statusSiteBlueprintDeployStatus⭐ `waiting` is a real state and not a synonym for `pending`. A deploy started from the create form cannot restore anything until the new site has finished provisioning, which ta…
messagestring아니요Why it failed, or — after a successful restore whose URL rewrite did not take — what still needs attention. Rendered to the customer verbatim.
started_atobject아니요
finished_atobject아니요
created_atstring

이 엔드포인트가 반환할 수 있는 오류

401 · 403 · 404 · 409 · 422 · 429 · 503