https://app.sandywp.com. The generated endpoint pages in this group are the complete supported customer API contract, rather than a list of every route hosted by the application.
Authentication
Use a personal API key as a bearer token for normal automation. Create, label, and revoke keys with the account token endpoints or through the dashboard and CLI.GET /api/account/me and the Imports family only, with import:read or import:write as appropriate; the other generated REST operations reject them. See OAuth connector flow for public-client registration and PKCE exchange guidance.
Requests, async work, and errors
Send JSON on standard write requests withContent-Type: application/json. Archive chunks use application/octet-stream; Blueprint and plugin ZIP uploads use multipart/form-data where the endpoint says so.
Provisioning, imports, deployments, snapshots, and Blueprint runs are asynchronous. A response can include a job or run record, or a resource in a non-terminal state such as creating, building, pending, or running; poll the documented GET endpoint until it settles.
Errors use a JSON envelope. Check error.code for programmatic handling and treat message as display text.
Included API families
The OpenAPI generator covers Templates, Sites and their tools, Blueprints, Imports, Workspaces, account identity/usage/tokens/SSH keys, and the OAuth registration and token-exchange contracts. The focused pages below add workflow guidance to the generated endpoint details.Blueprint workflows
Validate, save, run, and bake reviewable WordPress build recipes.
Import workflows
Clone a live site or push a local WordPress archive.
Workspace workflows
Select workspaces and manage members and roles.
OAuth connector flow
Register a public client and exchange a PKCE authorization code.
Exclusions ledger
These hosted routes are intentionally outside the customer developer contract. They are browser backends, provider callbacks, public launch handlers, or operations interfaces—not undocumented alternatives to the generated endpoints.The published
mintlify-docs/openapi.yaml is intentionally byte-for-byte equal to the repository-root openapi.yaml. Automated checks reject drift between them.
