Personal API token, sent as Authorization: Bearer <SANDYWP_API_KEY>. Obtain one from the dashboard account menu (API keys), sandywp auth login, or POST /api/account/tokens. A missing or invalid token returns 401 auth_required. Scoped OAuth tokens are limited to the Imports family and GET /api/account/me; see the top-level conventions.
Selects which of the caller's workspaces to act in, for accounts belonging to more than one (legacy alias: X-SandyWP-Organization). Defaults to the caller's own personal workspace when omitted. Every id in this API (sandboxes, Templates, repositories) is scoped to a single workspace, so this header changes which set of resources is visible.
The sandbox's lifespan, interpreted per expirationMode. With expirationMode: fixed: 1h, 1d, 1w (default), 2w, 1m, or permanent. With expirationMode: inactivity: 10m, 30m, 1h, or 1d (there is no inactivity-mode permanent — a 400 invalid_expiration rejects that combination). 2w, 1m, and permanent additionally require a paid plan (402 duration_requires_paid_plan / 402 permanent_requires_paid_plan).
The owner-facing view of a sandbox. Strips internal provisioning details (container/DB names, password hash, warm-pool ids, routing) and keeps only what a caller needs to use and log into the sandbox.
One execution of a Blueprint in create, apply, or bake mode. Poll this resource to follow asynchronous Blueprint work.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SandyWP Documentation","colors":{"primary":"#d99830","light":"#e6b14a","dark":"#653c20"},"logo":{"light":"https://mintcdn.com/sandy-wp/dszzseu6N1-_GB7f/images/brand/sandywp-logo-light.png?fit=max\u0026auto=format\u0026n=dszzseu6N1-_GB7f\u0026q=85\u0026s=8e2affd29d5616eeb8d5bc46d549412a","dark":"https://mintcdn.com/sandy-wp/dszzseu6N1-_GB7f/images/brand/sandywp-logo-dark.png?fit=max\u0026auto=format\u0026n=dszzseu6N1-_GB7f\u0026q=85\u0026s=62edaad9c957123ea26d0c9ca6e77b3c","href":"https://sandywp.com"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sandy-wp","hasAudioNarration":false,"actualSubdomain":"sandy-wp","customDomains":["docs.sandywp.com"],"gitSource":{"type":"github","owner":"rizaardiyanto1412","repo":"sandywp","deployBranch":"main","contentDirectory":"mintlify-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae920e6e83198d0a6c82348","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":103},{"language":"default","tag":"Sites","count":38},{"language":"default","tag":"Tools","count":14},{"language":"default","tag":"Account","count":14},{"language":"default","tag":"Blueprints","count":13},{"language":"default","tag":"Imports","count":11},{"language":"default","tag":"Workspaces","count":9},{"language":"default","tag":"Templates","count":7},{"language":"default","tag":"Library","count":5},{"language":"default","tag":"Using sandboxes","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img.nav-logo{height:2.25rem}"}],"page":{"pagePath":"api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint","slug":"/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint","pageMetadata":{"title":"Create a sandbox from a Blueprint","description":"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/{id}/sites","href":"/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a sandbox from a Blueprint","description":"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/{id}/sites","href":"/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createSiteFromBlueprint","tags":["Blueprints"],"summary":"Create a sandbox from a Blueprint","description":"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.","parameters":["9ec82a64-c9a0-4101-99ba-41802e323fc4","7641bd18-a0d2-41d7-a207-cb3903e538a2"],"requestBody":"28422536-bec6-4593-aa98-23eb926693a8","responses":{"200":"47b0adb0-2fea-4532-a4e6-9c7f3b64992a","400":"5aa6b61c-bf41-4aa7-a199-7a7a15552f77","401":"c66f7e29-ffce-4e28-9450-9205dcf24ad3","402":"a152d532-15e7-498d-8adc-51c188e2b559","403":"9c726a61-cad7-473c-8ea2-5311c5fb0ff0","404":"b9bcc119-f058-4fdb-8691-9798fd0c4270","409":"f5f1f1ea-75a1-425b-a241-c047e71a3290"},"method":"post","type":"path","servers":["ee9ccad4-7b5f-44f6-ade4-758bbae361d0"],"security":["e73617b5-e337-4569-b7dd-a513402275e4"],"path":"/api/app/blueprints/{id}/sites","baseUrlOptions":["https://app.sandywp.com"],"title":"Create a sandbox from a Blueprint","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"9ec82a64-c9a0-4101-99ba-41802e323fc4":{"name":"id","in":"path","required":true,"description":"The Blueprint id.","schema":{"type":"string","isRequired":true,"description":"The Blueprint id.","uniqueKey":"","typeLabel":"string"},"example":"bp_abc123"},"7641bd18-a0d2-41d7-a207-cb3903e538a2":{"name":"X-SandyWP-Workspace","in":"header","required":false,"description":"Selects which of the caller's workspaces to act in, for accounts belonging to more than one (legacy alias: `X-SandyWP-Organization`). Defaults to the caller's own personal workspace when omitted. Every id in this API (sandboxes, Templates, repositories) is scoped to a single workspace, so this header changes which set of resources is visible.","schema":{"type":"string","isRequired":false,"description":"Selects which of the caller's workspaces to act in, for accounts belonging to more than one (legacy alias: `X-SandyWP-Organization`). Defaults to the caller's own personal workspace when omitted. Every id in this API (sandboxes, Templates, repositories) is scoped to a single workspace, so this header changes which set of resources is visible.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"siteName":{"type":"string","description":"Defaults to the Blueprint name.","uniqueKey":"siteName","typeLabel":"string"},"duration":{"type":"string","description":"The sandbox's lifespan, interpreted per `expirationMode`. With `expirationMode: fixed`: `1h`, `1d`, `1w` (default), `2w`, `1m`, or `permanent`. With `expirationMode: inactivity`: `10m`, `30m`, `1h`, or `1d` (there is no inactivity-mode `permanent` — a `400 invalid_expiration` rejects that combination). `2w`, `1m`, and `permanent` additionally require a paid plan (`402 duration_requires_paid_plan` / `402 permanent_requires_paid_plan`).","enum":["10m","30m","1h","1d","1w","2w","1m","permanent"],"uniqueKey":"duration","typeLabel":"enum\u003cstring>"},"expirationMode":{"type":"string","description":"`fixed` expires a demo/idle-mode sandbox after a fixed lifetime from creation/launch; `inactivity` renews the deadline while it is actively used.","enum":["fixed","inactivity"],"uniqueKey":"expirationMode","typeLabel":"enum\u003cstring>"},"workerCode":{"type":"string","description":"Optional worker selection where the account is permitted to choose one.","uniqueKey":"workerCode","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"siteName":"\u003cstring>","workerCode":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"47b0adb0-2fea-4532-a4e6-9c7f3b64992a":{"description":"The new Site and its queued Blueprint run.","content":{"application/json":{"schema":{"type":"object","required":["site","run"],"properties":{"site":{"type":"object","description":"The owner-facing view of a sandbox. Strips internal provisioning details (container/DB names, password hash, warm-pool ids, routing) and keeps only what a caller needs to use and log into the sandbox.","required":["id","name","slug","status","publicUrl","wordpressVersion","phpVersion","workerCode","adminUsername","adminPassword","magicLoginUrl","permanent","expiresAt","expirationMode","idleTimeoutMinutes","createdAt","readyAt","failureReason"],"properties":{"id":{"type":"string","example":"site_abc123","isRequired":true,"uniqueKey":"site.id","typeLabel":"string"},"name":{"type":"string","example":"my-sandbox","isRequired":true,"uniqueKey":"site.name","typeLabel":"string"},"slug":{"type":"string","example":"my-sandbox","isRequired":true,"uniqueKey":"site.slug","typeLabel":"string"},"status":{"type":"string","enum":["creating","ready","expired","failed","pending_delete","deleted","cleanup_failed"],"isRequired":true,"uniqueKey":"site.status","typeLabel":"enum\u003cstring>"},"publicUrl":{"type":"string","format":"uri","example":"https://my-sandbox.sandywp.dev","isRequired":true,"uniqueKey":"site.publicUrl","typeLabel":"string\u003curi>"},"wordpressVersion":{"type":"string","description":"The concrete installed version (e.g. `7.0.4`), not the request-time alias (e.g. `latest`).","isRequired":true,"uniqueKey":"site.wordpressVersion","typeLabel":"string"},"phpVersion":{"type":"string","isRequired":true,"uniqueKey":"site.phpVersion","typeLabel":"string"},"workerCode":{"type":"string","example":"eu1","isRequired":true,"uniqueKey":"site.workerCode","typeLabel":"string"},"adminUsername":{"type":"string","example":"admin","isRequired":true,"uniqueKey":"site.adminUsername","typeLabel":"string"},"adminPassword":{"oneOf":[{"type":"string","description":"Plaintext admin password. Present here and on single-sandbox responses; omitted from list responses (see `SiteListItem`) so it never rides along on a bulk poll.","isRequired":true,"uniqueKey":"site.adminPassword.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plaintext admin password. Present here and on single-sandbox responses; omitted from list responses (see `SiteListItem`) so it never rides along on a bulk poll.","isRequired":true,"uniqueKey":"site.adminPassword.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.adminPassword","typeLabel":"string | null"},"magicLoginUrl":{"oneOf":[{"type":"string","format":"uri","isRequired":true,"uniqueKey":"site.magicLoginUrl.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","isRequired":true,"uniqueKey":"site.magicLoginUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.magicLoginUrl","typeLabel":"string\u003curi> | null"},"permanent":{"type":"boolean","isRequired":true,"uniqueKey":"site.permanent","typeLabel":"boolean"},"expiresAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"site.expiresAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"site.expiresAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.expiresAt","typeLabel":"string\u003cdate-time> | null"},"expirationMode":{"type":"string","description":"`fixed` expires a demo/idle-mode sandbox after a fixed lifetime from creation/launch; `inactivity` renews the deadline while it is actively used.","enum":["fixed","inactivity"],"isRequired":true,"uniqueKey":"site.expirationMode","typeLabel":"enum\u003cstring>"},"idleTimeoutMinutes":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"site.idleTimeoutMinutes.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"site.idleTimeoutMinutes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.idleTimeoutMinutes","typeLabel":"integer | null"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"site.createdAt","typeLabel":"string\u003cdate-time>"},"readyAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"site.readyAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"site.readyAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.readyAt","typeLabel":"string\u003cdate-time> | null"},"failureReason":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"site.failureReason.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"site.failureReason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.failureReason","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"site","typeLabel":"object"},"run":{"type":"object","description":"One execution of a Blueprint in create, apply, or bake mode. Poll this resource to follow asynchronous Blueprint work.","required":["id","blueprintId","orgId","createdByUserId","blueprintRevision","siteId","jobId","mode","status","steps","log","runnerVersion","failureReason","startedAt","finishedAt","createdAt"],"properties":{"id":{"type":"string","example":"bpr_333","isRequired":true,"uniqueKey":"run.id","typeLabel":"string"},"blueprintId":{"type":"string","isRequired":true,"uniqueKey":"run.blueprintId","typeLabel":"string"},"orgId":{"type":"string","isRequired":true,"uniqueKey":"run.orgId","typeLabel":"string"},"createdByUserId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"run.createdByUserId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"run.createdByUserId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"run.createdByUserId","typeLabel":"string | null"},"blueprintRevision":{"type":"integer","isRequired":true,"uniqueKey":"run.blueprintRevision","typeLabel":"integer"},"siteId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"run.siteId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"run.siteId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"run.siteId","typeLabel":"string | null"},"jobId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"run.jobId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"run.jobId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"run.jobId","typeLabel":"string | null"},"mode":{"type":"string","enum":["create","apply","bake"],"isRequired":true,"uniqueKey":"run.mode","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["pending","running","succeeded","failed"],"isRequired":true,"uniqueKey":"run.status","typeLabel":"enum\u003cstring>"},"steps":{"type":"array","items":{"type":"object","required":["name","status"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"run.steps.items.[INDEX].name","typeLabel":"string"},"status":{"type":"string","enum":["pending","running","succeeded","failed"],"isRequired":true,"uniqueKey":"run.steps.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"durationMs":{"type":"number","uniqueKey":"run.steps.items.[INDEX].durationMs","typeLabel":"number"},"caption":{"type":"string","uniqueKey":"run.steps.items.[INDEX].caption","typeLabel":"string"}},"uniqueKey":"run.steps.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"run.steps","typeLabel":"object[]"},"log":{"type":"string","isRequired":true,"uniqueKey":"run.log","typeLabel":"string"},"runnerVersion":{"type":"string","isRequired":true,"uniqueKey":"run.runnerVersion","typeLabel":"string"},"failureReason":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"run.failureReason.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"run.failureReason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"run.failureReason","typeLabel":"string | null"},"startedAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"run.startedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"run.startedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"run.startedAt","typeLabel":"string\u003cdate-time> | null"},"finishedAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"run.finishedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"run.finishedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"run.finishedAt","typeLabel":"string\u003cdate-time> | null"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"run.createdAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"run","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"site":{"id":"site_abc123","name":"my-sandbox","slug":"my-sandbox","status":"creating","publicUrl":"https://my-sandbox.sandywp.dev","wordpressVersion":"\u003cstring>","phpVersion":"\u003cstring>","workerCode":"eu1","adminUsername":"admin","adminPassword":"\u003cstring>","magicLoginUrl":"\u003cstring>","permanent":true,"expiresAt":"2023-11-07T05:31:56Z","expirationMode":"fixed","idleTimeoutMinutes":123,"createdAt":"2023-11-07T05:31:56Z","readyAt":"2023-11-07T05:31:56Z","failureReason":"\u003cstring>"},"run":{"id":"bpr_333","blueprintId":"\u003cstring>","orgId":"\u003cstring>","createdByUserId":"\u003cstring>","blueprintRevision":123,"siteId":"\u003cstring>","jobId":"\u003cstring>","mode":"create","status":"pending","steps":[{"name":"\u003cstring>","status":"pending","durationMs":123,"caption":"\u003cstring>"}],"log":"\u003cstring>","runnerVersion":"\u003cstring>","failureReason":"\u003cstring>","startedAt":"2023-11-07T05:31:56Z","finishedAt":"2023-11-07T05:31:56Z","createdAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"5aa6b61c-bf41-4aa7-a199-7a7a15552f77":{"description":"The request body, parameters, or resource state is invalid for this operation.","content":{"application/json":{"schema":{"type":"object","description":"The standard error envelope returned by every endpoint on a non-2xx response.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code (e.g. `invalid_request`, `site_not_found`, `plan_limit_reached`). See each operation for the codes it can return.","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable message. Safe to display to an end user.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context (e.g. `{\"plan\": \"free\", \"limit\": 2}` for a plan-limit error). Omitted entirely on the generic internal-error fallback; `{}` when an error has no extra context.","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"c66f7e29-ffce-4e28-9450-9205dcf24ad3":{"description":"No valid bearer token was presented, or a scoped OAuth token was used outside its allowed Imports and account-identity routes.","content":{"application/json":{"schema":{"type":"object","description":"The standard error envelope returned by every endpoint on a non-2xx response.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code (e.g. `invalid_request`, `site_not_found`, `plan_limit_reached`). See each operation for the codes it can return.","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable message. Safe to display to an end user.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context (e.g. `{\"plan\": \"free\", \"limit\": 2}` for a plan-limit error). Omitted entirely on the generic internal-error fallback; `{}` when an error has no extra context.","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"auth_required","message":"A logged-in user is required.","details":{}}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"auth_required","message":"A logged-in user is required.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"a152d532-15e7-498d-8adc-51c188e2b559":{"description":"The current plan does not permit this action or has reached a quota.","content":{"application/json":{"schema":{"type":"object","description":"The standard error envelope returned by every endpoint on a non-2xx response.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code (e.g. `invalid_request`, `site_not_found`, `plan_limit_reached`). See each operation for the codes it can return.","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable message. Safe to display to an end user.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context (e.g. `{\"plan\": \"free\", \"limit\": 2}` for a plan-limit error). Omitted entirely on the generic internal-error fallback; `{}` when an error has no extra context.","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"9c726a61-cad7-473c-8ea2-5311c5fb0ff0":{"description":"The caller's current workspace Role does not grant the capability this action requires.","content":{"application/json":{"schema":{"type":"object","description":"The standard error envelope returned by every endpoint on a non-2xx response.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code (e.g. `invalid_request`, `site_not_found`, `plan_limit_reached`). See each operation for the codes it can return.","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable message. Safe to display to an end user.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context (e.g. `{\"plan\": \"free\", \"limit\": 2}` for a plan-limit error). Omitted entirely on the generic internal-error fallback; `{}` when an error has no extra context.","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"capability_required","message":"Your role does not allow this.","details":{"capability":"internals"}}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"capability_required","message":"Your role does not allow this.","details":{"capability":"internals"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"b9bcc119-f058-4fdb-8691-9798fd0c4270":{"description":"No such Blueprint exists in the selected workspace, or it is not visible to the caller.","content":{"application/json":{"schema":{"type":"object","description":"The standard error envelope returned by every endpoint on a non-2xx response.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code (e.g. `invalid_request`, `site_not_found`, `plan_limit_reached`). See each operation for the codes it can return.","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable message. Safe to display to an end user.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context (e.g. `{\"plan\": \"free\", \"limit\": 2}` for a plan-limit error). Omitted entirely on the generic internal-error fallback; `{}` when an error has no extra context.","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"f5f1f1ea-75a1-425b-a241-c047e71a3290":{"description":"`blueprint_run_in_progress` — wait for an active run to finish.","content":{"application/json":{"schema":{"type":"object","description":"The standard error envelope returned by every endpoint on a non-2xx response.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code (e.g. `invalid_request`, `site_not_found`, `plan_limit_reached`). See each operation for the codes it can return.","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable message. Safe to display to an end user.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context (e.g. `{\"plan\": \"free\", \"limit\": 2}` for a plan-limit error). Omitted entirely on the generic internal-error fallback; `{}` when an error has no extra context.","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e73617b5-e337-4569-b7dd-a513402275e4":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal API token, sent as `Authorization: Bearer \u003cSANDYWP_API_KEY>`. Obtain one from the dashboard account menu (API keys), `sandywp auth login`, or `POST /api/account/tokens`. A missing or invalid token returns `401 auth_required`. Scoped OAuth tokens are limited to the Imports family and `GET /api/account/me`; see the top-level conventions.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"ee9ccad4-7b5f-44f6-ade4-758bbae361d0":{"url":"https://app.sandywp.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Personal API token, sent as `Authorization: Bearer \u003cSANDYWP_API_KEY>`. Obtain one from the dashboard account menu (API keys), `sandywp auth login`, or `POST /api/account/tokens`. A missing or invalid token returns `401 auth_required`. Scoped OAuth tokens are limited to the Imports family and `GET /api/account/me`; see the top-level conventions.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Personal API token, sent as `Authorization: Bearer \u003cSANDYWP_API_KEY>`. Obtain one from the dashboard account menu (API keys), `sandywp auth login`, or `POST /api/account/tokens`. A missing or invalid token returns `401 auth_required`. Scoped OAuth tokens are limited to the Imports family and `GET /api/account/me`; see the top-level conventions.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"sandy-wp","siteName":"SandyWP Documentation","title":"Create a sandbox from a Blueprint - SandyWP Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T11:39:42.902Z","originalFileLocation":"api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SandyWP Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/sandy-wp/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/sandy-wp/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/sandy-wp/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/sandy-wp/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a sandbox from a Blueprint - SandyWP Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SandyWP Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sandy-wp.mintlify.site/_mintlify/api/og/v2?division=Blueprints\u0026amp;title=Create+a+sandbox+from+a+Blueprint\u0026amp;description=Creates+a+sandbox+and+queues+a+Blueprint+run.+Poll+the+returned+run+and+Site+until+they+reach+a+terminal+state.\u0026amp;theme=7adb8c57347f76c2bf2e915e\u0026amp;signature=098f511c06e5702fab08e6be5345639224a300f1411fa6584540e0e20ff34e4a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a sandbox from a Blueprint - SandyWP Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sandy-wp.mintlify.site/_mintlify/api/og/v2?division=Blueprints\u0026amp;title=Create+a+sandbox+from+a+Blueprint\u0026amp;description=Creates+a+sandbox+and+queues+a+Blueprint+run.+Poll+the+returned+run+and+Site+until+they+reach+a+terminal+state.\u0026amp;theme=7adb8c57347f76c2bf2e915e\u0026amp;signature=098f511c06e5702fab08e6be5345639224a300f1411fa6584540e0e20ff34e4a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/sandy-wp/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SandyWP Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#d99830\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sandywp.com/#organization\",\"name\":\"SandyWP Documentation\",\"url\":\"https://docs.sandywp.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/sandy-wp/dszzseu6N1-_GB7f/images/brand/sandywp-logo-light.png?fit=max\u0026auto=format\u0026n=dszzseu6N1-_GB7f\u0026q=85\u0026s=8e2affd29d5616eeb8d5bc46d549412a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sandywp.com#website\",\"name\":\"SandyWP Documentation\",\"url\":\"https://docs.sandywp.com\",\"publisher\":{\"@id\":\"https://docs.sandywp.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint#webpage\",\"url\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint\",\"name\":\"Create a sandbox from a Blueprint\",\"description\":\"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.\",\"dateModified\":\"2026-10-28T11:39:42.902Z\",\"isPartOf\":{\"@id\":\"https://docs.sandywp.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.sandywp.com/api-reference\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blueprints\",\"item\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/list-saved-blueprints\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a sandbox from a Blueprint\",\"item\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint#apireference\",\"headline\":\"Create a sandbox from a Blueprint\",\"name\":\"Create a sandbox from a Blueprint\",\"description\":\"Creates a sandbox and queues a Blueprint run. Poll the returned run and Site until they reach a terminal state.\",\"url\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint#webpage\"},\"dateModified\":\"2026-10-28T11:39:42.902Z\",\"publisher\":{\"@id\":\"https://docs.sandywp.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sandywp.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SandyWP Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SandyWP Documentation","nav":{"global":null,"groups":[{"group":"Getting started","pages":[{"title":"Welcome to SandyWP","href":"/index"},{"title":"Core concepts","href":"/concepts"}]},{"group":"Using sandboxes","pages":[{"title":"Create a sandbox","href":"/guides/create-a-sandbox"},{"title":"Open wp-admin","href":"/guides/open-wp-admin"},{"title":"Lifespan and permanence","href":"/guides/site-lifespan"},{"title":"Plans and limits","href":"/guides/plans"}]},{"group":"Tools","pages":[{"title":"File Manager","href":"/guides/file-manager"},{"title":"Database","href":"/guides/database"},{"title":"PHP settings","href":"/guides/php"},{"title":"Custom domains","href":"/guides/custom-domains"},{"title":"Email delivery","href":"/guides/email-delivery"},{"title":"Git deployment","href":"/guides/git-deployment"},{"title":"SSH access","href":"/guides/ssh-access"},{"title":"Mount a sandbox","href":"/guides/mount-a-sandbox"},{"title":"Library","href":"/guides/plugin-library"},{"title":"Templates","href":"/guides/templates"},{"title":"Webhooks","href":"/guides/webhooks"},{"title":"Blueprints","href":"/guides/blueprints"},{"title":"Clone a site","href":"/guides/clone-a-site"},{"title":"Push a local site","href":"/guides/push-local-site"}]},{"group":"Integrations","pages":[{"title":"Slack app","href":"/guides/slack"},{"title":"GitHub pull request previews","href":"/guides/github"}]},{"group":"Connectors","pages":[{"title":"Muse connector brief","href":"/connectors/muse"}]},{"group":"Account","pages":[{"title":"Two-factor authentication","href":"/guides/two-factor-authentication"}]},{"group":"Automation guides","pages":[{"title":"API keys","href":"/guides/api-keys"},{"title":"CLI","href":"/cli"}]},{"group":"API Reference","pages":[{"title":"API Reference overview","href":"/api-reference"},{"title":"Blueprint API guidance","href":"/api-reference/blueprints"},{"title":"Imports API guidance","href":"/api-reference/imports"},{"title":"Workspace API guidance","href":"/api-reference/workspaces"},{"title":"OAuth connector flow","href":"/api-reference/oauth"},{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/templates","href":"/api-reference/endpoints/templates/list-templates"},{"title":"Snapshot a sandbox into a new template","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/templates","href":"/api-reference/endpoints/templates/snapshot-a-sandbox-into-a-new-template"},{"title":"Get a template","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/templates/{id}","href":"/api-reference/endpoints/templates/get-a-template"},{"title":"Rename a template","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/app/templates/{id}","href":"/api-reference/endpoints/templates/rename-a-template"},{"title":"Delete a template","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/templates/{id}","href":"/api-reference/endpoints/templates/delete-a-template"},{"title":"Configure the template's public launch link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/templates/{id}/launch","href":"/api-reference/endpoints/templates/configure-the-templates-public-launch-link"},{"title":"List a template's captured launch leads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/templates/{id}/leads","href":"/api-reference/endpoints/templates/list-a-templates-captured-launch-leads"}]},{"group":"Sites","pages":[{"title":"List sandboxes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites","href":"/api-reference/endpoints/sites/list-sandboxes"},{"title":"Create a sandbox (or restore one from a template)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites","href":"/api-reference/endpoints/sites/create-a-sandbox-or-restore-one-from-a-template"},{"title":"Get a sandbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}","href":"/api-reference/endpoints/sites/get-a-sandbox"},{"title":"Rename a sandbox, or set whether it is permanent","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/app/sites/{id}","href":"/api-reference/endpoints/sites/rename-a-sandbox-or-set-whether-it-is-permanent"},{"title":"Restore an expired sandbox","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}","href":"/api-reference/endpoints/sites/restore-an-expired-sandbox"},{"title":"Delete a sandbox","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/sites/{id}","href":"/api-reference/endpoints/sites/delete-a-sandbox"},{"title":"Apply a blueprint to an existing sandbox","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/blueprint","href":"/api-reference/endpoints/sites/apply-a-blueprint-to-an-existing-sandbox"},{"title":"Issue a database (Adminer) access URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/database","href":"/api-reference/endpoints/sites/issue-a-database-adminer-access-url"},{"title":"Get the sandbox's custom domain","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/domain","href":"/api-reference/endpoints/sites/get-the-sandboxs-custom-domain"},{"title":"Connect a custom domain","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/sites/{id}/domain","href":"/api-reference/endpoints/sites/connect-a-custom-domain"},{"title":"Disconnect the custom domain","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/sites/{id}/domain","href":"/api-reference/endpoints/sites/disconnect-the-custom-domain"},{"title":"Check DNS for the custom domain","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/domain/verify","href":"/api-reference/endpoints/sites/check-dns-for-the-custom-domain"},{"title":"Get WordPress debug settings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/debug","href":"/api-reference/endpoints/sites/get-wordpress-debug-settings"},{"title":"Replace WordPress debug settings","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/sites/{id}/debug","href":"/api-reference/endpoints/sites/replace-wordpress-debug-settings"},{"title":"Explain the debug log with AI","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/debug/explain","href":"/api-reference/endpoints/sites/explain-the-debug-log-with-ai"},{"title":"Tail the debug log","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/debug/log","href":"/api-reference/endpoints/sites/tail-the-debug-log"},{"title":"Clear the debug log","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/sites/{id}/debug/log","href":"/api-reference/endpoints/sites/clear-the-debug-log"},{"title":"Install or deploy a plugin","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/deploy-plugin","href":"/api-reference/endpoints/sites/install-or-deploy-a-plugin"},{"title":"Poll a plugin deploy job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/deploy-plugin","href":"/api-reference/endpoints/sites/poll-a-plugin-deploy-job"},{"title":"Get captured outgoing email","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/email","href":"/api-reference/endpoints/sites/get-captured-outgoing-email"},{"title":"Turn email capture on or off","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/sites/{id}/email","href":"/api-reference/endpoints/sites/turn-email-capture-on-or-off"},{"title":"Clear the captured email log","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/sites/{id}/email","href":"/api-reference/endpoints/sites/clear-the-captured-email-log"},{"title":"File manager — read operations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/fs/{op}","href":"/api-reference/endpoints/sites/file-manager-—-read-operations"},{"title":"File manager — write operations","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/fs/{op}","href":"/api-reference/endpoints/sites/file-manager-—-write-operations"},{"title":"Get PHP ini configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/php-config","href":"/api-reference/endpoints/sites/get-php-ini-configuration"},{"title":"Replace PHP ini configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/sites/{id}/php-config","href":"/api-reference/endpoints/sites/replace-php-ini-configuration"},{"title":"Switch the PHP runtime version","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/sites/{id}/php-version","href":"/api-reference/endpoints/sites/switch-the-php-runtime-version"},{"title":"List a sandbox's connected Git repositories","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/repositories","href":"/api-reference/endpoints/sites/list-a-sandboxs-connected-git-repositories"},{"title":"Connect a Git repository for deploys","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/repositories","href":"/api-reference/endpoints/sites/connect-a-git-repository-for-deploys"},{"title":"Update a connected repository","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/app/sites/{id}/repositories/{repoId}","href":"/api-reference/endpoints/sites/update-a-connected-repository"},{"title":"Disconnect a repository","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/sites/{id}/repositories/{repoId}","href":"/api-reference/endpoints/sites/disconnect-a-repository"},{"title":"List a repository's remote branches and tags","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/repositories/{repoId}/branches","href":"/api-reference/endpoints/sites/list-a-repositorys-remote-branches-and-tags"},{"title":"Trigger a deployment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/repositories/{repoId}/deploy","href":"/api-reference/endpoints/sites/trigger-a-deployment"},{"title":"Reset a sandbox to a clean install","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/reset","href":"/api-reference/endpoints/sites/reset-a-sandbox-to-a-clean-install"},{"title":"Get SSH connection details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/sites/{id}/ssh","href":"/api-reference/endpoints/sites/get-ssh-connection-details"},{"title":"Turn SSH on/off, or issue a one-click ephemeral key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/sites/{id}/ssh","href":"/api-reference/endpoints/sites/turn-ssh-onoff-or-issue-a-one-click-ephemeral-key"},{"title":"Issue a one-time login link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/sites/{id}/magic-login","href":"/api-reference/endpoints/sites/issue-a-one-time-login-link"},{"title":"Get sandbox status, events, and jobs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/sites/{id}/status","href":"/api-reference/endpoints/sites/get-sandbox-status-events-and-jobs"}]},{"group":"Library","pages":[{"title":"List the Library","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/plugin-library","href":"/api-reference/endpoints/library/list-the-library"},{"title":"Add a plugin to the library","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/plugin-library","href":"/api-reference/endpoints/library/add-a-plugin-to-the-library"},{"title":"Remove a plugin from the library","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/plugin-library/{id}","href":"/api-reference/endpoints/library/remove-a-plugin-from-the-library"},{"title":"Store a license key for a library plugin","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/plugin-library/{id}/license-key","href":"/api-reference/endpoints/library/store-a-license-key-for-a-library-plugin"},{"title":"Remove a library plugin's license key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/plugin-library/{id}/license-key","href":"/api-reference/endpoints/library/remove-a-library-plugins-license-key"}]},{"group":"Blueprints","pages":[{"title":"List saved Blueprints","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/blueprints","href":"/api-reference/endpoints/blueprints/list-saved-blueprints"},{"title":"Save a Blueprint","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints","href":"/api-reference/endpoints/blueprints/save-a-blueprint"},{"title":"Fetch a Blueprint from a URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/import","href":"/api-reference/endpoints/blueprints/fetch-a-blueprint-from-a-url"},{"title":"Upload a Blueprint ZIP bundle","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/upload","href":"/api-reference/endpoints/blueprints/upload-a-blueprint-zip-bundle"},{"title":"Generate a Blueprint from a description","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/generate","href":"/api-reference/endpoints/blueprints/generate-a-blueprint-from-a-description"},{"title":"Validate or adapt a Blueprint","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/validate","href":"/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint"},{"title":"Get a Blueprint","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/blueprints/{id}","href":"/api-reference/endpoints/blueprints/get-a-blueprint"},{"title":"Update a Blueprint","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/app/blueprints/{id}","href":"/api-reference/endpoints/blueprints/update-a-blueprint"},{"title":"Delete a Blueprint","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/blueprints/{id}","href":"/api-reference/endpoints/blueprints/delete-a-blueprint"},{"title":"List Blueprint runs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/blueprints/{id}/runs","href":"/api-reference/endpoints/blueprints/list-blueprint-runs"},{"title":"Get a Blueprint run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/blueprints/{id}/runs/{runId}","href":"/api-reference/endpoints/blueprints/get-a-blueprint-run"},{"title":"Bake a Blueprint into a Template","description":"Creates a scratch sandbox, runs the Blueprint, and snapshots the result as a Template. The response is asynchronous; poll the run and Template until they settle. Pass `templateId` only to rebake a Template already backed by this Blueprint. A Blueprint v1 `landingPage` that is a path inside the sandbox sets the Template's `launchLandingPath` (Demo destination) on every bake and rebake; without one, the Template keeps its current value.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/{id}/bake","href":"/api-reference/endpoints/blueprints/bake-a-blueprint-into-a-template"},{"title":"Create a sandbox from a Blueprint","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/{id}/sites","href":"/api-reference/endpoints/blueprints/create-a-sandbox-from-a-blueprint"}]},{"group":"Imports","pages":[{"title":"List imports","description":"Lists imports in the selected workspace. Full-access bearer tokens work normally; scoped OAuth tokens need `import:read` and can use this family even though they cannot use other `/api/app` endpoints.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/imports","href":"/api-reference/endpoints/imports/list-imports"},{"title":"Start an import upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports","href":"/api-reference/endpoints/imports/start-an-import-upload"},{"title":"Get import status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/imports/{id}","href":"/api-reference/endpoints/imports/get-import-status"},{"title":"Cancel or remove an import","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/imports/{id}","href":"/api-reference/endpoints/imports/cancel-or-remove-an-import"},{"title":"Append an import archive chunk","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/app/imports/{id}/upload","href":"/api-reference/endpoints/imports/append-an-import-archive-chunk"},{"title":"Seal a chunked import upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports/{id}/complete","href":"/api-reference/endpoints/imports/seal-a-chunked-import-upload"},{"title":"Initialize direct multipart upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports/{id}/multipart/init","href":"/api-reference/endpoints/imports/initialize-direct-multipart-upload"},{"title":"Get a multipart part upload URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports/{id}/multipart/part","href":"/api-reference/endpoints/imports/get-a-multipart-part-upload-url"},{"title":"Complete a multipart upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports/{id}/multipart/complete","href":"/api-reference/endpoints/imports/complete-a-multipart-upload"},{"title":"Abort multipart upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports/{id}/multipart/abort","href":"/api-reference/endpoints/imports/abort-multipart-upload"},{"title":"Finalize a streamed import","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/imports/{id}/multipart/finalize","href":"/api-reference/endpoints/imports/finalize-a-streamed-import"}]},{"group":"Workspaces","pages":[{"title":"List available workspaces","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/workspaces","href":"/api-reference/endpoints/workspaces/list-available-workspaces"},{"title":"List workspace members","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/workspaces/{id}/members","href":"/api-reference/endpoints/workspaces/list-workspace-members"},{"title":"Invite a workspace member","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/workspaces/{id}/members","href":"/api-reference/endpoints/workspaces/invite-a-workspace-member"},{"title":"Assign a member role","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/app/workspaces/{id}/members/{userId}","href":"/api-reference/endpoints/workspaces/assign-a-member-role"},{"title":"Remove a workspace member","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/workspaces/{id}/members/{userId}","href":"/api-reference/endpoints/workspaces/remove-a-workspace-member"},{"title":"List workspace roles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/workspaces/{id}/roles","href":"/api-reference/endpoints/workspaces/list-workspace-roles"},{"title":"Create a workspace role","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/workspaces/{id}/roles","href":"/api-reference/endpoints/workspaces/create-a-workspace-role"},{"title":"Update a workspace role","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/app/workspaces/{id}/roles/{roleId}","href":"/api-reference/endpoints/workspaces/update-a-workspace-role"},{"title":"Delete a workspace role","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/app/workspaces/{id}/roles/{roleId}","href":"/api-reference/endpoints/workspaces/delete-a-workspace-role"}]},{"group":"Account","pages":[{"title":"Get the current account identity","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/account/me","href":"/api-reference/endpoints/account/get-the-current-account-identity"},{"title":"Get plan usage","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/account/usage","href":"/api-reference/endpoints/account/get-plan-usage"},{"title":"List personal API tokens","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/account/tokens","href":"/api-reference/endpoints/account/list-personal-api-tokens"},{"title":"Create a personal API token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/account/tokens","href":"/api-reference/endpoints/account/create-a-personal-api-token"},{"title":"Revoke a personal API token","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/account/tokens/{id}","href":"/api-reference/endpoints/account/revoke-a-personal-api-token"},{"title":"Get the Demo Launches webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/account/webhooks/demo-launches","href":"/api-reference/endpoints/account/get-the-demo-launches-webhook"},{"title":"Create or update the Demo Launches webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/account/webhooks/demo-launches","href":"/api-reference/endpoints/account/create-or-update-the-demo-launches-webhook"},{"title":"Remove the Demo Launches webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/account/webhooks/demo-launches","href":"/api-reference/endpoints/account/remove-the-demo-launches-webhook"},{"title":"Send a Demo Launches webhook test","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/account/webhooks/demo-launches/test","href":"/api-reference/endpoints/account/send-a-demo-launches-webhook-test"},{"title":"Rotate the Demo Launches webhook secret","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/account/webhooks/demo-launches/rotate","href":"/api-reference/endpoints/account/rotate-the-demo-launches-webhook-secret"},{"title":"List account SSH public keys","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/account/ssh-keys","href":"/api-reference/endpoints/account/list-account-ssh-public-keys"},{"title":"Add an account SSH public key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/account/ssh-keys","href":"/api-reference/endpoints/account/add-an-account-ssh-public-key"},{"title":"Revoke an account SSH key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/account/ssh-keys/{id}","href":"/api-reference/endpoints/account/revoke-an-account-ssh-key"}]},{"group":"OAuth","pages":[{"title":"Dynamically register a public OAuth client","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/connect/register","href":"/api-reference/endpoints/oauth/dynamically-register-a-public-oauth-client"},{"title":"Exchange an authorization code for an access token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/connect/token","href":"/api-reference/endpoints/oauth/exchange-an-authorization-code-for-an-access-token"}]}]}]},"basePath":"","title":"Create a sandbox from a Blueprint - SandyWP Documentation","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}