Validation without blueprintId is public, including requests with adapt: true; it returns findings and, when adapting, an adapted source. Supplying blueprintId always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.
A WordPress Playground Blueprint document. SandyWP accepts schema version 1 or 2 and validates its supported steps and resources before saving or running it.
{"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/validate-or-adapt-a-blueprint","slug":"/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint","pageMetadata":{"title":"Validate or adapt a Blueprint","description":"Validation without `blueprintId` is public, including requests with `adapt: true`; it returns findings and, when adapting, an adapted source. Supplying `blueprintId` always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/validate","href":"/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Validation without \", _jsx(_components.code, {\n children: \"blueprintId\"\n }), \" is public, including requests with \", _jsx(_components.code, {\n children: \"adapt: true\"\n }), \"; it returns findings and, when adapting, an adapted source. Supplying \", _jsx(_components.code, {\n children: \"blueprintId\"\n }), \" always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.\"]\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":"Validate or adapt a Blueprint","description":"Validation without `blueprintId` is public, including requests with `adapt: true`; it returns findings and, when adapting, an adapted source. Supplying `blueprintId` always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/blueprints/validate","href":"/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"validateBlueprint","tags":["Blueprints"],"summary":"Validate or adapt a Blueprint","description":"Validation without `blueprintId` is public, including requests with `adapt: true`; it returns findings and, when adapting, an adapted source. Supplying `blueprintId` always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.","security":[],"requestBody":"3c74c6ef-36af-4e62-8bc6-0aca0596b0b3","responses":{"200":"e594139b-3a26-49ea-a333-e045afd16a2e","400":"b0deff7d-0819-4f45-8f07-3d01d0dd1b58","401":"8eb0bc54-8c1a-429e-abd8-6a2bc4e38349","404":"8725e3d6-fe8e-4376-9d73-9151cbf8b950"},"method":"post","type":"path","servers":["ee9ccad4-7b5f-44f6-ade4-758bbae361d0"],"path":"/api/app/blueprints/validate","baseUrlOptions":["https://app.sandywp.com"],"title":"Validate or adapt a Blueprint","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Supply `source` or its legacy `sourceJson` alias.","required":["source"],"properties":{"source":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.source.oneOf.0","typeLabel":"string"},{"type":"object","description":"A WordPress Playground Blueprint document. SandyWP accepts schema version 1 or 2 and validates its supported steps and resources before saving or running it.","example":{"preferredVersions":{"php":"8.3","wp":"latest"},"steps":[{"step":"setSiteOptions","options":{"blogname":"My Sandbox"}}]},"additionalProperties":true,"isRequired":true,"uniqueKey":"oneOf.0.source.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.0.source","typeLabel":"string | object"},"sourceJson":{"oneOf":[{"type":"string","deprecated":true,"uniqueKey":"oneOf.0.sourceJson.oneOf.0","typeLabel":"string"},{"type":"object","description":"A WordPress Playground Blueprint document. SandyWP accepts schema version 1 or 2 and validates its supported steps and resources before saving or running it.","deprecated":true,"example":{"preferredVersions":{"php":"8.3","wp":"latest"},"steps":[{"step":"setSiteOptions","options":{"blogname":"My Sandbox"}}]},"additionalProperties":true,"uniqueKey":"oneOf.0.sourceJson.oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.0.sourceJson","typeLabel":"string | object"},"sourceUrl":{"type":"string","format":"uri","description":"Optional base URL used while adapting external Blueprint resources.","uniqueKey":"oneOf.0.sourceUrl","typeLabel":"string\u003curi>"},"adapt":{"type":"boolean","default":false,"description":"Return a SandyWP-adapted source and adaptation changes.","uniqueKey":"oneOf.0.adapt","typeLabel":"boolean"},"blueprintId":{"type":"string","description":"Saved Blueprint id. Its presence requires bearer authentication.","uniqueKey":"oneOf.0.blueprintId","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Supply `source` or its legacy `sourceJson` alias.","required":["sourceJson"],"properties":{"sourceJson":{"oneOf":[{"type":"string","deprecated":true,"isRequired":true,"uniqueKey":"oneOf.1.sourceJson.oneOf.0","typeLabel":"string"},{"type":"object","description":"A WordPress Playground Blueprint document. SandyWP accepts schema version 1 or 2 and validates its supported steps and resources before saving or running it.","deprecated":true,"example":{"preferredVersions":{"php":"8.3","wp":"latest"},"steps":[{"step":"setSiteOptions","options":{"blogname":"My Sandbox"}}]},"additionalProperties":true,"isRequired":true,"uniqueKey":"oneOf.1.sourceJson.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.1.sourceJson","typeLabel":"string | object"},"source":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.source.oneOf.0","typeLabel":"string"},{"type":"object","description":"A WordPress Playground Blueprint document. SandyWP accepts schema version 1 or 2 and validates its supported steps and resources before saving or running it.","example":{"preferredVersions":{"php":"8.3","wp":"latest"},"steps":[{"step":"setSiteOptions","options":{"blogname":"My Sandbox"}}]},"additionalProperties":true,"uniqueKey":"oneOf.1.source.oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.1.source","typeLabel":"string | object"},"sourceUrl":{"type":"string","format":"uri","description":"Optional base URL used while adapting external Blueprint resources.","uniqueKey":"oneOf.1.sourceUrl","typeLabel":"string\u003curi>"},"adapt":{"type":"boolean","default":false,"description":"Return a SandyWP-adapted source and adaptation changes.","uniqueKey":"oneOf.1.adapt","typeLabel":"boolean"},"blueprintId":{"type":"string","description":"Saved Blueprint id. Its presence requires bearer authentication.","uniqueKey":"oneOf.1.blueprintId","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"source":"\u003cstring>","sourceJson":"\u003cstring>","sourceUrl":"\u003cstring>","adapt":false,"blueprintId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"e594139b-3a26-49ea-a333-e045afd16a2e":{"description":"Compatibility findings and optional adapted source.","content":{"application/json":{"schema":{"type":"object","description":"Validation output. `source` and `changes` are present only for adaptation responses or bundle previews.","required":["valid","schemaVersion","stepCount","hoisted","findings"],"properties":{"valid":{"type":"boolean","description":"False when one or more compatibility findings have `severity: error`.","isRequired":true,"uniqueKey":"valid","typeLabel":"boolean"},"schemaVersion":{"type":"integer","enum":[1,2],"isRequired":true,"uniqueKey":"schemaVersion","typeLabel":"enum\u003cinteger>"},"stepCount":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"stepCount","typeLabel":"integer"},"hoisted":{"type":"object","required":["phpVersion","requestedPhpVersion","wordpressVersion","requestedWordpressVersion","multisite"],"properties":{"phpVersion":{"oneOf":[{"type":"string","description":"Supported PHP version inferred from the source, if any.","isRequired":true,"uniqueKey":"hoisted.phpVersion.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supported PHP version inferred from the source, if any.","isRequired":true,"uniqueKey":"hoisted.phpVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"hoisted.phpVersion","typeLabel":"string | null"},"requestedPhpVersion":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"hoisted.requestedPhpVersion.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"hoisted.requestedPhpVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"hoisted.requestedPhpVersion","typeLabel":"string | null"},"wordpressVersion":{"oneOf":[{"type":"string","description":"Supported WordPress version inferred from the source, if any.","isRequired":true,"uniqueKey":"hoisted.wordpressVersion.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supported WordPress version inferred from the source, if any.","isRequired":true,"uniqueKey":"hoisted.wordpressVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"hoisted.wordpressVersion","typeLabel":"string | null"},"requestedWordpressVersion":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"hoisted.requestedWordpressVersion.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"hoisted.requestedWordpressVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"hoisted.requestedWordpressVersion","typeLabel":"string | null"},"multisite":{"type":"boolean","isRequired":true,"uniqueKey":"hoisted.multisite","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"hoisted","typeLabel":"object"},"findings":{"type":"array","items":{"type":"object","required":["severity","path","code","message"],"properties":{"severity":{"type":"string","enum":["error","warning","info"],"isRequired":true,"uniqueKey":"findings.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"path":{"type":"string","description":"JSON-path-like location in the source document.","isRequired":true,"uniqueKey":"findings.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","isRequired":true,"uniqueKey":"findings.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"findings.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"findings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"findings","typeLabel":"object[]"},"source":{"type":"object","description":"A WordPress Playground Blueprint document. SandyWP accepts schema version 1 or 2 and validates its supported steps and resources before saving or running it.","additionalProperties":true,"example":{"preferredVersions":{"php":"8.3","wp":"latest"},"steps":[{"step":"setSiteOptions","options":{"blogname":"My Sandbox"}}]},"uniqueKey":"source","typeLabel":"object"},"changes":{"type":"array","items":{"type":"object","required":["path","code","message"],"properties":{"path":{"type":"string","isRequired":true,"uniqueKey":"changes.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["field_removed","step_removed","step_transformed","resource_transformed"],"isRequired":true,"uniqueKey":"changes.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"changes.items.[INDEX].message","typeLabel":"string"},"subject":{"type":"string","description":"Optional affected step name.","uniqueKey":"changes.items.[INDEX].subject","typeLabel":"string"}},"uniqueKey":"changes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"changes","typeLabel":"object[]"},"manifestDirectory":{"type":"string","description":"Present for a ZIP bundle preview.","uniqueKey":"manifestDirectory","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"valid":true,"schemaVersion":1,"stepCount":1,"hoisted":{"phpVersion":"\u003cstring>","requestedPhpVersion":"\u003cstring>","wordpressVersion":"\u003cstring>","requestedWordpressVersion":"\u003cstring>","multisite":true},"findings":[{"severity":"error","path":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}],"source":{"preferredVersions":{"php":"8.3","wp":"latest"},"steps":[{"step":"setSiteOptions","options":{"blogname":"My Sandbox"}}]},"changes":[{"path":"\u003cstring>","code":"field_removed","message":"\u003cstring>","subject":"\u003cstring>"}],"manifestDirectory":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"b0deff7d-0819-4f45-8f07-3d01d0dd1b58":{"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"},"8eb0bc54-8c1a-429e-abd8-6a2bc4e38349":{"description":"`auth_required` — required only when `blueprintId` is supplied.","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"},"8725e3d6-fe8e-4376-9d73-9151cbf8b950":{"description":"`blueprint_not_found` — the saved Blueprint 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"}},"security":{},"servers":{"ee9ccad4-7b5f-44f6-ade4-758bbae361d0":{"url":"https://app.sandywp.com"}}},"originalFileLocation":"openapi.yaml"},"subdomain":"sandy-wp","siteName":"SandyWP Documentation","title":"Validate or adapt a Blueprint - SandyWP Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T11:39:42.825Z","originalFileLocation":"api-reference/endpoints/blueprints/validate-or-adapt-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=\"Validation without blueprintId is public, including requests with adapt: true; it returns findings and, when adapting, an adapted source. Supplying blueprintId always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.\">\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=\"Validate or adapt a Blueprint - SandyWP Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Validation without blueprintId is public, including requests with adapt: true; it returns findings and, when adapting, an adapted source. Supplying blueprintId always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.\">\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/validate-or-adapt-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=Validate+or+adapt+a+Blueprint\u0026amp;description=Validation+without+%60blueprintId%60+is+public%2C+including+requests+with+%60adapt%3A+true%60%3B+it+returns+findings+and%2C+when+adapting%2C+an+adapted+source.+Supplying+%60bluepri\u0026amp;theme=7adb8c57347f76c2bf2e915e\u0026amp;signature=13be7ecd9ae9760904e98515c1b5d818cfca7834a50bc567c94d26d62f6d8483\">\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=\"Validate or adapt a Blueprint - SandyWP Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Validation without blueprintId is public, including requests with adapt: true; it returns findings and, when adapting, an adapted source. Supplying blueprintId always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sandy-wp.mintlify.site/_mintlify/api/og/v2?division=Blueprints\u0026amp;title=Validate+or+adapt+a+Blueprint\u0026amp;description=Validation+without+%60blueprintId%60+is+public%2C+including+requests+with+%60adapt%3A+true%60%3B+it+returns+findings+and%2C+when+adapting%2C+an+adapted+source.+Supplying+%60bluepri\u0026amp;theme=7adb8c57347f76c2bf2e915e\u0026amp;signature=13be7ecd9ae9760904e98515c1b5d818cfca7834a50bc567c94d26d62f6d8483\">\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/validate-or-adapt-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/validate-or-adapt-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/validate-or-adapt-a-blueprint#webpage\",\"url\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint\",\"name\":\"Validate or adapt a Blueprint\",\"description\":\"Validation without blueprintId is public, including requests with adapt: true; it returns findings and, when adapting, an adapted source. Supplying blueprintId always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.\",\"dateModified\":\"2026-10-28T11:39:42.825Z\",\"isPartOf\":{\"@id\":\"https://docs.sandywp.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-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\":\"Validate or adapt a Blueprint\",\"item\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint#apireference\",\"headline\":\"Validate or adapt a Blueprint\",\"name\":\"Validate or adapt a Blueprint\",\"description\":\"Validation without blueprintId is public, including requests with adapt: true; it returns findings and, when adapting, an adapted source. Supplying blueprintId always requires a bearer token so the server can inspect a saved bundle. This conditional authentication cannot be expressed per request shape, so this operation declares no OpenAPI security requirement.\",\"url\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sandywp.com/api-reference/endpoints/blueprints/validate-or-adapt-a-blueprint#webpage\"},\"dateModified\":\"2026-10-28T11:39:42.825Z\",\"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","description":"Asks Claude to write a Blueprint for a plain-language description, then checks it with the same validator as `POST /api/app/blueprints/validate` (with one automatic repair round). Returns the Blueprint JSON without saving it; save it with `POST /api/app/blueprints`. Only available when the server has an Anthropic API key. Each workspace can make a limited number of AI requests per day.","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","description":"Returns one saved Blueprint with its current compatibility report.","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","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","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":"Validate or adapt 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"]}