MainWP REST API v2
FreshSource: MainWP REST API Overview
Base URL
https://your-dashboard.com/wp-json/mainwp/v2/Authentication
Bearer Token (Recommended for v2)
bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://your-dashboard.com/wp-json/mainwp/v2/sites/basic"Consumer Key/Secret (Legacy v1)
bash
curl -u "CONSUMER_KEY:CONSUMER_SECRET" \
"https://your-dashboard.com/wp-json/mainwp/v1/sites"API Key Setup
- Set Permalinks - WP Admin > Settings > Permalinks > anything except Plain
- Create Key - MainWP Dashboard > API Access > API Keys > Add API Keys
- Set Permissions:
- Read: GET requests
- Write & Delete: POST, PUT, PATCH, DELETE requests
- Optional v1: Enable "MainWP REST API v1 Compatibility" for legacy keys
- Store Credentials - API keys display only once
Permission Scope
| Permission | Methods | Purpose |
|---|---|---|
| Read | GET | Fetch data |
| Write & Delete | POST, PUT, PATCH, DELETE | Create, update, remove |
Endpoint Categories
| Resource | Key Operations |
|---|---|
| Sites | Inventory, sync, plugins, themes, security |
| Updates | List, execute, ignore settings |
| Clients | CRUD, custom fields, suspend |
| Tags | CRUD, related sites/clients |
| Posts | Cross-site listing and CRUD |
| Pages | Cross-site listing and CRUD |
| Users | List, create, CSV import, passwords |
| Monitoring | Uptime, incidents, heartbeat |
| Extensions | SSL, Domain, Lighthouse, Reports, Time |
| Settings | General, Advanced, Email, Costs |
| Costs | Tracker records, linked resources |
| API Keys | Key management |
| Batch | Global multi-controller operations |
Batch Update Response
Long-running updates return immediate confirmation:
json
{
"success": 1,
"message": "Batch updates all started successfully.",
"last_time_start_batch_updates": "2024-09-03T16:57:29"
}Dashboard Accessibility
Your Dashboard URL must be reachable from systems sending API requests. Local-only dashboards cannot be accessed by external API clients.