MagicWP Docs
Sites

Create the workspace's demo site

POST
/v1/sites/demo

Permission: sites.create

Authorization

apiToken
headerAuthorizationBearer <token>

An API token (mwp_…) from Settings → API tokens. Only accepted on this host.

Header Parameters

Idempotency-Key?string

Any unique string up to 255 characters. Retrying with the same key returns the first request's stored response (header Idempotent-Replayed: true) instead of doing it again, for 24 hours. The same key with a different request is refused (idempotency_key_reused).

Length1 <= length <= 255

Request Body

application/json
  1. body

Body for POST /sites/demo.

Deliberately smaller than SiteCreate. There is no storage_limit (the demo plan decides, and a caller-supplied number on a free site is a hole rather than a feature), no site_type (a demo exists to show WordPress, so it is always a full site) and no wp_admin_email (it is the account's).

region is here because the ordinary create form offers it and a demo should land near its owner like any other site. It is passed to select_server exactly as SiteCreate's is.

domain?Domain

Base domain for the subdomain

Default"magicwp.net"
site_label?|

Display name for the site (5-15 characters)

region?|

Preferred server region

php_version?|

PHP version

Default"8.4"
template_id?|

Build the demo from this template.

turnstile_token?|null

Response Body

Successful Response

application/json
  1. response
success*boolean
data*

The site (new, or the one being overwritten by a push) and the task working on it; poll the task until it finishes.

message*string
status_code*integer
timestamp*string
Formatdate-time
meta?|null
curl -X POST "https://example.com/v1/sites/demo" \  -H "Content-Type: application/json" \  -d '{}'
{  "message": "string",  "status_code": 0,  "timestamp": "2019-08-24T14:15:22Z",  "meta": {},  "success": true,  "data": {    "site": {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "stack_number": 0,      "server_id": "820efca4-4a15-4ab7-82fc-9e76f6d61325",      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",      "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627",      "domain_name": "string",      "custom_domain": "string",      "site_label": "string",      "region": "string",      "status": "string",      "message": "string",      "site_type": "string",      "template_id": null,      "template_version": null,      "wp_version": "string",      "wp_installed": true,      "php_hardened": null,      "config_profile": null,      "php_version": "string",      "storage_limit": 0,      "storage_usage": 0,      "maintenance_mode": true,      "notes": null,      "notes_updated_at": null,      "notes_updated_by": null,      "parent_site_id": null,      "expires_at": null,      "extend_count": 0,      "demo_expires_at": null,      "demo_stopped_at": null,      "demo_converted_at": null,      "site_lock": true,      "lock_reason": "string",      "locked_at": "2019-08-24T14:15:22Z",      "billing_suspended_at": "2019-08-24T14:15:22Z",      "admin_suspended_at": "2019-08-24T14:15:22Z",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z",      "completed_at": "2019-08-24T14:15:22Z"    },    "task": {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "task_type": "string",      "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",      "status": "string",      "result": "string",      "error_message": "string",      "metadata_json": {},      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z",      "completed_at": "2019-08-24T14:15:22Z"    }  }}