Sites API
Programmatically manage WordPress sites, deployments, configurations, and monitoring through our RESTful API. All endpoints require authentication and support standard HTTP methods with JSON request/response payloads.
Authentication
Include your secret API key in the Authorization header using Bearer token scheme. Keys can be generated in your dashboard under Settings → API Access.
Base URL
All API requests should be made to the production endpoint:
Endpoints
Retrieve a paginated list of all WordPress sites associated with your account.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (default: 1) |
limit | integer | No | Results per page (max: 100, default: 20) |
status | string | No | Filter by status: active, paused, error |
"data": [
{
"id": "site_8f7291",
"name": "client-portfolio-wp",
"domain": "client.example.com",
"status": "active",
"wp_version": "6.4.2",
"created_at": "2024-01-15T08:30:00Z"
}
],
"meta": {
"total": 42,
"page": 1,
"limit": 20
}
}
Create a new WordPress site. This provisions a fresh installation and connects it to your management dashboard.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Internal identifier for the site |
domain | string | Yes | Primary domain URL (e.g., example.com) |
plan_id | string | No | Management plan tier (default: starter) |
auto_updates | boolean | No | Enable automatic core/plugin updates |
"id": "site_9a3b12",
"name": "new-site",
"domain": "new.example.com",
"status": "provisioning",
"provisioning_eta": "2-5 minutes"
}
Retrieve detailed information about a specific site, including current security score, backup status, and performance metrics.
"id": "site_8f7291",
"status": "active",
"metrics": {
"security_score": 94,
"page_speed": 89,
"last_backup": "2024-08-15T02:00:00Z"
},
"settings": {
"wp_debug": false,
"xml_rpc": "disabled",
"firewall": "enabled"
}
}
Update site configuration, management preferences, or site metadata. Only provide fields you wish to change.
Permanently remove a site from your account. This action revokes API access, stops monitoring, and schedules data deletion after 30 days. This cannot be undone.
Error Handling
The API uses standard HTTP status codes and returns structured error objects when requests fail. Always handle errors gracefully in your integration.
"error": {
"code": "VALIDATION_FAILED",
"message": "Domain format is invalid. Must include protocol or be a valid hostname.",
"details": {
"field": "domain",
"expected": "string (valid hostname)"
}
}
}
Rate Limiting
API requests are limited to 600 requests per 10 minutes per API key. When you exceed this limit, you will receive a 429 Too Many Requests response. Rate limit headers are included in every response:
X-RateLimit-Remaining: 423
X-RateLimit-Reset: 1723456789
SDKs & Libraries
Official client libraries are available for popular languages. Community-maintained packages are also supported:
npm install @wpadmin/client (Node.js)pip install wpadmin-sdk (Python)composer require wpadmin/php-sdk (PHP)gem install wpadmin (Ruby)