Abilities API
FreshSource: MainWP Abilities API
MainWP registers 62 abilities into the WordPress Core Abilities API (WordPress 6.9+), enabling AI agents and automation tools to discover and execute capabilities through a standardized interface.
Prerequisites
- WordPress 6.9+
- MainWP Dashboard 6.0+
- WordPress user with
manage_optionscapability
Base URL
https://your-dashboard.com/wp-json/wp-abilities/v1/Authentication
Bearer Token
bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://your-dashboard.com/wp-json/wp-abilities/v1/abilities"Application Passwords
bash
curl -u "USERNAME:APPLICATION_PASSWORD" \
"https://your-dashboard.com/wp-json/wp-abilities/v1/abilities"Discovery Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /abilities | List all abilities (paginated) |
| GET | /abilities/{name} | Get single ability with schemas |
| GET | /categories | List ability categories |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 50 | Items per page (max 100) |
category | string | - | Filter by category slug |
Categories
| Category | Abilities | Description |
|---|---|---|
mainwp-sites | 30 | Site management and monitoring |
mainwp-updates | 13 | Update detection and execution |
mainwp-clients | 11 | Client management |
mainwp-tags | 7 | Tag/group management |
mainwp-batch | 1 | Batch operation monitoring |
Executing Abilities
Read-Only (GET)
bash
curl -u "admin:xxxx" \
"https://your-dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/list-sites-v1/run"Write Operations (POST)
bash
curl -X POST -u "admin:xxxx" \
-H "Content-Type: application/json" \
-d '{"input":{"site_id_or_domain":1}}' \
"https://your-dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/get-site-v1/run"Ability Annotations
| Annotation | Type | Description |
|---|---|---|
readonly | boolean | Only reads data |
destructive | boolean | Deletes data |
idempotent | boolean | Repeated calls safe |
instructions | string | Custom usage guidance |
Error Reference
Abilities API Errors
| Code | HTTP | Description |
|---|---|---|
ability_invalid_input | 400 | Input fails JSON Schema |
ability_missing_input_schema | 400 | Required input missing |
ability_invalid_permissions | 403 | Permission denied |
ability_invalid_output | 500 | Output fails validation |
rest_ability_not_found | 404 | Ability not registered |
rest_ability_invalid_method | 405 | Wrong HTTP method |
MainWP-Specific Errors
| Code | HTTP | Description |
|---|---|---|
mainwp_site_not_found | 404 | Site ID/domain not found |
mainwp_client_not_found | 404 | Client ID/email not found |
mainwp_tag_not_found | 404 | Tag ID not found |
mainwp_job_not_found | 404 | Batch job expired |
mainwp_confirmation_required | 400 | Missing confirm: true |
mainwp_site_offline | 503 | Site unreachable |
mainwp_module_not_available | 501 | Required module inactive |
Feature-Gated Abilities
| Module | Required For |
|---|---|
| Cost Tracker | get-site-costs-v1, get-client-costs-v1 |
| Logs | get-site-changes-v1 |