Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.
A Blueprint is an editable JSON build plan for WordPress. Save one when you need a setup to be reviewed, versioned, or rerun; use a Template when you need a fast snapshot of a finished site.
Choose Describe and write what you want in plain words, for example “A WooCommerce store on PHP 8.3 with three sample products and the Storefront theme.” Claude writes the Blueprint, SandyWP validates it, and the JSON opens in the editor so you can review or change it before saving. Each workspace can generate a limited number of Blueprints per day.
Use the original blueprint.json URL when the recipe is self-contained. Relative resources resolve against that document’s URL, so direct raw-file URLs are preferable.
Use a ZIP bundle when the recipe and local assets belong together. The archive needs exactly one blueprint.json at its root or inside one top-level folder.
SandyWP reports compatibility changes before it executes a Blueprint. Informational and warning findings do not block a run; errors do.
Category
What SandyWP does
Natively provided
Removes known Playground flags that are always supplied by a SandyWP sandbox.
Automatically adapted
Rewrites supported legacy resources or compatible steps.
Ignored and reported
Removes unsupported metadata or steps and shows a finding.
Blocking
Stops a run for schema errors, unknown feature keys, unsafe paths, or unresolved local resources.
Blueprint execution can run PHP, SQL, and WP-CLI. Creating, applying, or baking a Blueprint requires a paid plan, even though authoring and validation are free.
Create a sandbox from a saved Blueprint in the create form. To apply it to an existing ready sandbox, use the Blueprint actions for that sandbox.Save as Template runs the recipe in a fresh scratch sandbox and snapshots the result. Use that workflow when you want a reusable, fast-to-restore starting point.If the Blueprint sets landingPage to a path inside the sandbox, such as /wp-admin/plugins.php, the Template uses it as the Demo destination for public demos. Every rebake applies it again. Creating or applying a sandbox ignores it, and a full URL is reported as a warning and ignored.Runs are asynchronous. Watch the run status and inspect its findings or log before treating the site or Template as ready.
The generated API Reference includes the standalone Blueprint endpoints. Use Blueprint API guidance for the validate, save, run, and bake workflow, or use the CLI as a practical wrapper.
{"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":"guides/blueprints","slug":"/guides/blueprints","pageMetadata":{"title":"Blueprints","description":"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.","href":"/guides/blueprints"},"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: \"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A Blueprint is an editable JSON build plan for WordPress. Save one when you need a setup to be reviewed, versioned, or rerun; use a `,_jsx(_components.a,{href:`/guides/templates`,children:`Template`}),` when you need a fast snapshot of a finished site.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-blueprint`,children:`Create a Blueprint`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Blueprints`}),` from the SandyWP app and select `,_jsx(_components.strong,{children:`New Blueprint`}),`. You can import a URL or bundle, paste JSON, or start with a small recipe.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"$schema\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://playground.wordpress.net/blueprint-schema.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"steps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"step\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"installPlugin\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pluginZipFile\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"resource\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"wordpress.org/plugins\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"slug\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"query-monitor\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`SandyWP validates the document when you save it. An incompatible recipe can still be saved, but errors must be corrected before it can run.`}),`\n`,_jsx(Heading,{level:`3`,id:`describe-it-instead`,children:`Describe it instead`}),`\n`,_jsxs(_components.p,{children:[`Choose `,_jsx(_components.strong,{children:`Describe`}),` and write what you want in plain words, for example “A WooCommerce store on PHP 8.3 with three sample products and the Storefront theme.” Claude writes the Blueprint, SandyWP validates it, and the JSON opens in the editor so you can review or change it before saving. Each workspace can generate a limited number of Blueprints per day.`]}),`\n`,_jsx(Heading,{level:`2`,id:`import-from-a-url-or-bundle`,children:`Import from a URL or bundle`}),`\n`,_jsxs(_components.p,{children:[`Use the original `,_jsx(_components.code,{children:`blueprint.json`}),` URL when the recipe is self-contained. Relative resources resolve against that document’s URL, so direct raw-file URLs are preferable.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://raw.githubusercontent.com/example/project/main/blueprint.json`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Use a ZIP bundle when the recipe and local assets belong together. The archive needs exactly one `,_jsx(_components.code,{children:`blueprint.json`}),` at its root or inside one top-level folder.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Bundle limit`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Compressed size`}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`50 MiB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Expanded size`}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`250 MiB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`File entries`}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2,000`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`compatibility`,children:`Compatibility`}),`\n`,_jsx(_components.p,{children:`SandyWP reports compatibility changes before it executes a Blueprint. Informational and warning findings do not block a run; errors do.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Category`}),_jsx(_components.th,{children:`What SandyWP does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Natively provided`}),_jsx(_components.td,{children:`Removes known Playground flags that are always supplied by a SandyWP sandbox.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Automatically adapted`}),_jsx(_components.td,{children:`Rewrites supported legacy resources or compatible steps.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ignored and reported`}),_jsx(_components.td,{children:`Removes unsupported metadata or steps and shows a finding.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blocking`}),_jsx(_components.td,{children:`Stops a run for schema errors, unknown feature keys, unsafe paths, or unresolved local resources.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Blueprint execution can run PHP, SQL, and WP-CLI. Creating, applying, or baking a Blueprint requires a paid plan, even though authoring and validation are free.`})}),`\n`,_jsx(Heading,{level:`2`,id:`run-apply-or-bake`,children:`Run, apply, or bake`}),`\n`,_jsx(_components.p,{children:`Create a sandbox from a saved Blueprint in the create form. To apply it to an existing ready sandbox, use the Blueprint actions for that sandbox.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Save as Template`}),` runs the recipe in a fresh scratch sandbox and snapshots the result. Use that workflow when you want a reusable, fast-to-restore starting point.`]}),`\n`,_jsxs(_components.p,{children:[`If the Blueprint sets `,_jsx(_components.code,{children:`landingPage`}),` to a path inside the sandbox, such as `,_jsx(_components.code,{children:`/wp-admin/plugins.php`}),`, the Template uses it as the Demo destination for public demos. Every rebake applies it again. Creating or applying a sandbox ignores it, and a full URL is reported as a warning and ignored.`]}),`\n`,_jsx(_components.p,{children:`Runs are asynchronous. Watch the run status and inspect its findings or log before treating the site or Template as ready.`}),`\n`,_jsx(Heading,{level:`2`,id:`automate-blueprints`,children:`Automate Blueprints`}),`\n`,_jsxs(_components.p,{children:[`The generated `,_jsx(_components.a,{href:`/api-reference`,children:`API Reference`}),` includes the standalone Blueprint endpoints. Use `,_jsx(_components.a,{href:`/api-reference/blueprints`,children:`Blueprint API guidance`}),` for the validate, save, run, and bake workflow, or use the `,_jsx(_components.a,{href:`/cli`,children:`CLI`}),` as a practical wrapper.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sandywp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` blueprint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` validate`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` blueprint.json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sandywp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` blueprint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bake`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plugin-recipe`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --wait`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Blueprints","description":"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.","href":"/guides/blueprints"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a Blueprint","slug":"create-a-blueprint","depth":2,"children":[{"title":"Describe it instead","slug":"describe-it-instead","depth":3,"children":[]}]},{"title":"Import from a URL or bundle","slug":"import-from-a-url-or-bundle","depth":2,"children":[]},{"title":"Compatibility","slug":"compatibility","depth":2,"children":[]},{"title":"Run, apply, or bake","slug":"run-apply-or-bake","depth":2,"children":[]},{"title":"Automate Blueprints","slug":"automate-blueprints","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"sandy-wp","siteName":"SandyWP Documentation","title":"Blueprints - SandyWP Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T11:51:06.955Z","originalFileLocation":"guides/blueprints.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=\"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.\">\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=\"Blueprints - SandyWP Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SandyWP Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sandywp.com/guides/blueprints\">\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=Tools\u0026amp;title=Blueprints\u0026amp;description=Create%2C+validate%2C+import%2C+run%2C+and+bake+reviewable+WordPress+setup+recipes+as+JSON+Blueprints.\u0026amp;theme=7adb8c57347f76c2bf2e915e\u0026amp;signature=a3e786a04e3331bf2011fc179c8b1687165195e394578f2bf3115795c8b5bf84\">\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=\"Blueprints - SandyWP Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sandy-wp.mintlify.site/_mintlify/api/og/v2?division=Tools\u0026amp;title=Blueprints\u0026amp;description=Create%2C+validate%2C+import%2C+run%2C+and+bake+reviewable+WordPress+setup+recipes+as+JSON+Blueprints.\u0026amp;theme=7adb8c57347f76c2bf2e915e\u0026amp;signature=a3e786a04e3331bf2011fc179c8b1687165195e394578f2bf3115795c8b5bf84\">\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/guides/blueprints\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/blueprints.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/guides/blueprints#webpage\",\"url\":\"https://docs.sandywp.com/guides/blueprints\",\"name\":\"Blueprints\",\"description\":\"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.\",\"dateModified\":\"2026-10-08T11:51:06.955Z\",\"isPartOf\":{\"@id\":\"https://docs.sandywp.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sandywp.com/guides/blueprints#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sandywp.com/guides/blueprints#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tools\",\"item\":\"https://docs.sandywp.com/guides/file-manager\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blueprints\",\"item\":\"https://docs.sandywp.com/guides/blueprints\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sandywp.com/guides/blueprints#article\",\"headline\":\"Blueprints\",\"name\":\"Blueprints\",\"description\":\"Create, validate, import, run, and bake reviewable WordPress setup recipes as JSON Blueprints.\",\"url\":\"https://docs.sandywp.com/guides/blueprints\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sandywp.com/guides/blueprints#webpage\"},\"dateModified\":\"2026-10-08T11:51:06.955Z\",\"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","description":"Receive signed demo.ready and demo.expired callbacks for demos opened from your public launch links.","href":"/guides/webhooks"},{"title":"Blueprints","href":"/guides/blueprints"},{"title":"Clone a site","description":"Copy a WordPress site you control into a new SandyWP sandbox with the SandyWP Cloner plugin.","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","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":"Blueprints - SandyWP Documentation","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}