Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mainwp-mintlify-c0f00f42.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Use these endpoints to manage child sites in 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

Global Site Routes

MethodPathPurposeKey Params
GET/sitesList sitespage, per_page, search, include, exclude, status, with_tags, full_data
GET/sites/basicList lightweight site recordspage, per_page, search, include, exclude, status
GET/sites/countCount sitesinclude, exclude, status
POST, PUT, PATCH/sites/syncTrigger sync for all sitesOptional filters like include, exclude
POST, PUT, PATCH/sites/reconnectTrigger reconnect for all sitesOptional filters
POST, PUT, PATCH/sites/disconnectDisconnect all matched sitesOptional filters
POST, PUT, PATCH/sites/checkRun connection checks for all sitesOptional filters
POST/sites/addAdd a child siteurl, name, admin, optional groupids, client_id
POST/sites/batchBatch create/update/delete sitescreate[], update[], delete[] payload

Per-Site Routes

MethodPathPurposeKey Params
GET/sites/{id_or_domain}Get full site detailsid_or_domain, optional with_tags
POST, PUT, PATCH/sites/{id_or_domain}/editUpdate site fieldsname, groupids, client_id, other editable site fields
POST, PUT, PATCH/sites/{id_or_domain}/syncSync one siteid_or_domain
GET/sites/{id_or_domain}/securityFetch security snapshotid_or_domain
GET/sites/{id_or_domain}/pluginsList plugins on one sitestatus, search, page, per_page, must_use
POST, PUT, PATCH/sites/{id_or_domain}/plugins/activateActivate plugin(s)slug (single or comma list)
POST, PUT, PATCH/sites/{id_or_domain}/plugins/deactivateDeactivate plugin(s)slug
DELETE/sites/{id_or_domain}/plugins/deleteDelete plugin(s)slug
GET/sites/{id_or_domain}/plugins/abandonedList abandoned pluginsStandard list filters
GET/sites/{id_or_domain}/themesList themes on one sitestatus, search, page, per_page
POST, PUT, PATCH/sites/{id_or_domain}/themes/activateActivate a themeslug
DELETE/sites/{id_or_domain}/themes/deleteDelete theme(s)slug
GET/sites/{id_or_domain}/themes/abandonedList abandoned themesStandard list filters
GET/sites/{id_or_domain}/non-mainwp-changesShow external/non-MainWP changesid_or_domain, optional source, actions, contexts, total_count, page, per_page
POST, PUT, PATCH/sites/{id_or_domain}/reconnectReconnect one siteid_or_domain
POST, PUT, PATCH/sites/{id_or_domain}/disconnectDisconnect one siteid_or_domain
POST, PUT, PATCH/sites/{id_or_domain}/suspendSuspend one siteid_or_domain
POST, PUT, PATCH/sites/{id_or_domain}/unsuspendUnsuspend one siteid_or_domain
POST, PUT, PATCH/sites/{id_or_domain}/checkRun check for one siteid_or_domain
DELETE/sites/{id_or_domain}/removeRemove site from Dashboardid_or_domain

Site Relationship Routes

MethodPathPurposeKey Params
GET/sites/{id_or_domain}/clientGet client linked to a siteid_or_domain
GET/sites/{id_or_domain}/costsGet costs linked to a siteid_or_domain

Representative Requests

List sites

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://your-dashboard.com/wp-json/mainwp/v2/sites?page=1&per_page=20&status=connected"
{
  "success": 1,
  "total": 2,
  "data": [
    {
      "id": 12,
      "name": "Example Site",
      "url": "https://example.com",
      "status": "connected"
    }
  ]
}

Activate a plugin on one site

curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"akismet/akismet.php"}' \
  "https://your-dashboard.com/wp-json/mainwp/v2/sites/12/plugins/activate"
{
  "success": 1,
  "message": "Plugin activated successfully."
}

Batch site operations

curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "create": [{"url":"https://new-site.com","name":"New Site","admin":"admin"}],
    "update": [{"id":12,"name":"Renamed Site"}],
    "delete": [31]
  }' \
  "https://your-dashboard.com/wp-json/mainwp/v2/sites/batch"
{
  "create": [{"success": 1}],
  "update": [{"success": 1}],
  "delete": [{"success": 1}]
}