Skip to main content
Use these endpoints to manage pages on child sites from MainWP Dashboard.
Use the MainWP Postman collection as the source of truth for request and response schemas.
{id_or_domain} accepts either a numeric site ID or a site domain.

Route Matrix

MethodPathPurposeKey Params
GET/pagesList pages across selected sitessearch, search_on, status, dtsstart, dtsstop, clients, groups, websites, maximum
GET/pages/{id_or_domain}/{page_id}Get one pageid_or_domain, page_id
PUT, PATCH/pages/{id_or_domain}/{page_id}/update-statusUpdate only page statusstatus
PUT, PATCH/pages/{id_or_domain}/{page_id}/editEdit page content/metadatapost_title, post_content, post_status, post_name, plus supported page fields
POST/pages/{id_or_domain}/createCreate pagepost_title, post_content, post_status, post_name
DELETE/pages/{id_or_domain}/{page_id}/deleteDelete pageid_or_domain, page_id

Representative Requests

List pages for selected clients

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://your-dashboard.com/wp-json/mainwp/v2/pages?clients=22&status=draft"
{
  "success": 1,
  "data": {
    "https://example.com": [
      {
        "id": 58,
        "post_title": "About",
        "post_status": "draft"
      }
    ]
  }
}

Update page status

curl -X PATCH \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"publish"}' \
  "https://your-dashboard.com/wp-json/mainwp/v2/pages/12/58/update-status"
{
  "success": 1,
  "message": "Page status updated successfully."
}