Experimental Feature
The Abilities API is currently in experimental preview. APIs may change and some features may be incomplete. We welcome your feedback!
Accelerate AI Integration
Enable AI agents and developers to interact with WordPress analytics, A/B testing, personalization, and audience management through a powerful Abilities API.
How It Works
The Abilities API provides a standardized interface for AI agents to discover, understand, and execute actions within Accelerate. Whether you're using Claude Desktop with MCP, building a custom integration, or calling REST endpoints directly, the API provides consistent, well-documented access to all Accelerate features.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AGENTIC FLOW โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
User Prompt MCP Discovery Ability Execution
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ "How is โ โ List all โ โ Run ability โ
โ my content โ โโโบ โ abilities โ โโโบ โ with params โ
โ performing?"โ โ from server โ โ โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ โ
โผ โผ
AI selects best Returns structured
ability to use response to AI
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
AI presents results
to the userAbilities vs Traditional REST
| Feature | Abilities API | Traditional REST |
|---|---|---|
| Discovery | AI auto-discovers capabilities | Manual documentation lookup |
| Schema | Self-documenting JSON Schema | External API docs |
| Error Handling | Structured errors with hints | HTTP status codes |
| MCP Support | Native integration | Requires custom wrapper |
Abilities at a Glance
Discovery (Read-Only)
- get-performance-summary โ Analytics for site/post/block/experiment with time series
- list-active-experiments โ List running A/B tests and personalizations
- get-audience-segments โ List defined audiences with optional size estimates
- get-audience-fields โ Available targeting fields (country, browser, etc.)
- get-top-content โ Top performing posts by views/conversions
- get-content-diff โ Compare content performance across periods
- get-traffic-breakdown โ Traffic by country/browser/OS/referrer
Execution (Create/Modify)
- create-ab-test โ Create A/B test on a Synced Pattern
- create-personalization-rule โ Add personalized content variant
- broadcast-content โ Broadcast blocks (destructive, Tier 3)
- create-audience โ Create new audience segment
- update-audience โ Modify existing audience
- set-block-goal โ Set conversion goal (engagement/click/form)
- set-traffic-percentage โ Adjust experiment traffic allocation
Integration (Data Export)
- export-events โ Export raw events as JSON/CSV
- get-export-status โ Check if export is available for a date
Getting Started
Quick Start
MCP Setup (Claude Desktop)
The easiest way to use the Abilities API is through Claude Desktop with MCP (Model Context Protocol). Add the following to your Claude Desktop configuration:
{
"mcpServers": {
"accelerate": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-site.com/wp-json/wp-abilities/v1/mcp"
],
"env": {
"MCP_HEADERS": "Authorization: Basic BASE64_ENCODED_CREDENTIALS"
}
}
}
}Replace your-site.com with your WordPress site URL and BASE64_ENCODED_CREDENTIALS with your base64-encoded username:application_password.
REST API Authentication
For direct REST API access, use WordPress Application Passwords with Basic Authentication:
# Generate base64 credentials
echo -n "username:application_password" | base64
# Make an API call
curl -X GET "https://your-site.com/wp-json/wp-abilities/v1/abilities" \
-H "Authorization: Basic BASE64_CREDENTIALS"Creating an Application Password
- 1. Go to Users โ Profile in WordPress admin
- 2. Scroll to Application Passwords
- 3. Enter a name (e.g., "Claude AI") and click Add New Application Password
- 4. Copy the generated password (shown only once)
Abilities Reference
Discovery Abilities
Discovery abilities help AI agents understand site performance, find content, and gather insights. These are read-only operations that don't modify any data.
accelerate/get-performance-summary
edit_postsRetrieve aggregated performance metrics for blocks, posts, experiments, or the entire site. Returns views, unique visitors, engagement rate, and conversion metrics.
๐ฌ Ask the AI:
How is my site performing this week compared to last week?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
entity_type | enum | No | block, post, experiment, or site |
entity_id | integer | No | Specific entity ID to analyze |
date_range_preset | enum | No | 24h, 7d, 30d, 90d, ytd, or all |
compare_to_previous | boolean | No | Include comparison period |
Example Request (MCP)
{
"entity_type": "site",
"date_range_preset": "7d",
"compare_to_previous": true
}REST Equivalent
curl -X POST "https://example.com/wp-json/wp-abilities/v1/abilities/accelerate%2Fget-performance-summary/run" \
-H "Content-Type: application/json" \
-H "Authorization: Basic BASE64_CREDENTIALS" \
-d '{"input": {"entity_type": "site", "date_range_preset": "7d"}}'accelerate/list-active-experiments
edit_postsList all currently running A/B tests with their variants, traffic allocation, and current performance metrics.
๐ฌ Ask the AI:
What A/B tests are currently running?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
status | enum | No | running, paused, completed, or all |
limit | integer | No | Maximum experiments to return (default: 20) |
Example Request (MCP)
{
"status": "running",
"limit": 10
}accelerate/get-audience-segments
edit_postsList all defined audience segments with their targeting rules and optional size estimates.
๐ฌ Ask the AI:
What audiences have I created?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
include_estimates | boolean | No | Include audience size estimates |
Example Request (MCP)
{
"include_estimates": true
}accelerate/get-audience-fields
edit_postsList all available targeting fields for audience creation including country, browser, device, referrer, and custom dimensions.
๐ฌ Ask the AI:
What targeting options are available for audiences?
accelerate/get-top-content
edit_postsGet the highest-performing content by views or conversions. Perfect for identifying what's working.
๐ฌ Ask the AI:
What are my top performing blog posts this month?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
content_type | enum | No | post, page, or all |
metric | enum | No | views or conversions |
date_range_preset | enum | No | 24h, 7d, 30d, 90d, ytd, or all |
limit | integer | No | Number of items to return (default: 10) |
Example Request (MCP)
{
"content_type": "post",
"metric": "views",
"date_range_preset": "30d",
"limit": 10
}accelerate/get-content-diff
edit_postsCompare content performance between two time periods to identify trends and changes.
๐ฌ Ask the AI:
Compare this week's performance to last week
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
content_id | integer | No | Specific content ID (optional for site-wide) |
period_a | object | Yes | First period (start/end dates) |
period_b | object | Yes | Second period (start/end dates) |
Example Request (MCP)
{
"period_a": {"preset": "7d"},
"period_b": {"preset": "previous_7d"}
}accelerate/get-traffic-breakdown
edit_postsGet traffic breakdown by country, browser, operating system, or referrer source.
๐ฌ Ask the AI:
Where is my traffic coming from by country?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
dimension | enum | Yes | country, browser, os, or referrer |
date_range_preset | enum | No | 24h, 7d, 30d, 90d, ytd, or all |
limit | integer | No | Number of items to return (default: 10) |
Example Request (MCP)
{
"dimension": "country",
"date_range_preset": "30d",
"limit": 10
}Execution Abilities
Execution abilities create and modify experiments, audiences, and personalization rules. These require appropriate write permissions.
accelerate/create-ab-test
edit_postsCreate a new A/B test with specified variants, traffic allocation, and goals.
๐ฌ Ask the AI:
Create an A/B test for my homepage hero section
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the experiment |
block_id | integer | Yes | Block to test |
variants | array | Yes | Array of variant configurations |
traffic_allocation | number | No | Percentage of traffic (default: 100) |
goal | enum | No | conversion, engagement, or click |
Example Request (MCP)
{
"name": "Homepage Hero Test",
"block_id": 456,
"variants": [
{"name": "Control", "weight": 50},
{"name": "New Headline", "weight": 50}
],
"goal": "conversion"
}accelerate/create-audience
edit_postsCreate a new audience with specified targeting rules for geographic, behavioral, or referral-based segmentation.
๐ฌ Ask the AI:
Create an audience for users from the United States
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the audience |
rules | array | Yes | Array of targeting rules |
rule_logic | enum | No | and or or (default: and) |
Example Request (MCP)
{
"name": "US Visitors",
"rules": [
{
"field": "location.country",
"operator": "equals",
"value": "US"
}
]
}accelerate/create-personalization-rule
edit_postsCreate a personalization rule that shows specific content to a target audience.
๐ฌ Ask the AI:
Personalize the pricing section for enterprise visitors
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the rule |
audience_id | integer | Yes | Target audience ID |
block_id | integer | Yes | Block to personalize |
variant_id | integer | Yes | Content variant to show |
Example Request (MCP)
{
"name": "Enterprise Pricing",
"audience_id": 45,
"block_id": 789,
"variant_id": 2
}accelerate/broadcast-content
manage_optionsBroadcast a block to multiple locations across the site. This is a destructive action requiring admin permissions.
๐ฌ Ask the AI:
Add a sale banner to all blog posts
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Block to broadcast |
target_locations | array | Yes | Array of target post IDs or content types |
position | enum | No | before_content, after_content, or replace |
Example Request (MCP)
{
"block_id": 123,
"target_locations": ["post"],
"position": "before_content"
}accelerate/update-audience
edit_postsModify an existing audience's targeting rules or settings.
๐ฌ Ask the AI:
Update my US audience to also include Canada
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
audience_id | integer | Yes | Audience ID to update |
name | string | No | New name for the audience |
rules | array | No | Updated targeting rules |
Example Request (MCP)
{
"audience_id": 45,
"name": "North America Visitors",
"rules": [
{"field": "location.country", "operator": "in", "value": ["US", "CA"]}
]
}accelerate/set-block-goal
edit_postsSet the conversion goal for a block to track engagement, clicks, or form submissions.
๐ฌ Ask the AI:
Set the hero section to track form submissions
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Block ID to configure |
goal | enum | Yes | engagement, click, or form_submission |
Example Request (MCP)
{
"block_id": 456,
"goal": "form_submission"
}accelerate/set-traffic-percentage
edit_postsAdjust the traffic allocation percentage for an A/B test experiment.
๐ฌ Ask the AI:
Reduce the hero test to 50% of traffic
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
experiment_id | integer | Yes | Experiment ID to adjust |
percentage | number | Yes | Traffic percentage (1-100) |
Example Request (MCP)
{
"experiment_id": 123,
"percentage": 50
}Integration Abilities
Integration abilities enable data export for external analysis tools and business intelligence platforms.
accelerate/export-events
manage_optionsExport raw event data for external analysis. Supports filtering by date range, event type, and custom attributes.
๐ฌ Ask the AI:
Export all conversion events from last month
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
event_types | array | No | Filter by event types |
date_range_preset | enum | No | 24h, 7d, 30d, 90d, ytd, or all |
format | enum | No | json or csv |
limit | integer | No | Maximum events (default: 10000) |
Example Request (MCP)
{
"event_types": ["conversion"],
"date_range_preset": "30d",
"format": "json"
}accelerate/get-export-status
manage_optionsCheck the status of an export job or verify if export data is available for a specific date range.
๐ฌ Ask the AI:
Is my export ready?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
export_id | string | No | Specific export job ID to check |
date | string | No | Check if data is available for this date |
Example Request (MCP)
{
"export_id": "abc123"
}Reference
REST API
All abilities are also accessible via traditional REST endpoints. The base URL is /wp-json/wp-abilities/v1/
List All Abilities
GET /wp-json/wp-abilities/v1/abilities
# Response includes schema, description, and permissions for each abilityGet Ability Schema
GET /wp-json/wp-abilities/v1/abilities/{ability_id}
# Example:
GET /wp-json/wp-abilities/v1/abilities/accelerate%2Fget-performance-summaryRun an Ability
POST /wp-json/wp-abilities/v1/abilities/{ability_id}/run
Content-Type: application/json
{
"input": {
"param1": "value1",
"param2": "value2"
}
}MCP Endpoint
For MCP clients, use the dedicated endpoint:
GET /wp-json/wp-abilities/v1/mcp
# Returns MCP-formatted tool list compatible with Claude DesktopPermission Model
The Abilities API uses WordPress capabilities to control access. Each ability requires a specific capability to execute.
Permission Tiers
| Capability | Access Level | Example Abilities |
|---|---|---|
edit_posts | Read (Authors+) | All Discovery abilities, most Execution abilities |
publish_posts | Write (Editors+) | Create experiments, audiences, rules |
manage_options | Admin | Export data, system settings |
Authentication Methods
- โข Application Passwords โ Recommended for API integrations and AI agents
- โข Cookie Auth โ For same-origin browser requests (WordPress admin)
- โข OAuth 2.0 โ If configured via a WordPress OAuth plugin
Error Handling
The API returns structured errors with codes, messages, and hints for resolution.
Error Response Format
{
"code": "invalid_parameter",
"message": "The 'date_range_preset' parameter must be one of: 24h, 7d, 30d, 90d, ytd, all",
"data": {
"status": 400,
"param": "date_range_preset",
"provided": "1w",
"allowed": ["24h", "7d", "30d", "90d", "ytd", "all"]
}
}Common Error Codes
| Code | Status | Description |
|---|---|---|
rest_forbidden | 403 | User lacks required capability |
invalid_parameter | 400 | Parameter value invalid or out of range |
missing_parameter | 400 | Required parameter not provided |
not_found | 404 | Requested resource doesn't exist |
rate_limit_exceeded | 429 | Too many requests |
Appendix
Date Range Presets
| Preset | Description |
|---|---|
24h | Last 24 hours |
7d | Last 7 days |
30d | Last 30 days |
90d | Last 90 days |
ytd | Year to date |
all | All time |
Goal Types
| Goal | Description |
|---|---|
conversion | Form submissions, signups, purchases |
engagement | Clicks, scrolls, time on page |
click | Specific link or button clicks |
Filter Operators
| Operator | Description |
|---|---|
equals | Exact match |
not_equals | Does not match |
contains | String contains value |
not_contains | String does not contain value |
starts_with | String starts with value |
ends_with | String ends with value |
greater_than | Numeric greater than |
less_than | Numeric less than |
in | Value in array |
not_in | Value not in array |
Further Resources
- โข Accelerate Documentation โ Full product documentation
- โข Model Context Protocol โ MCP specification and documentation
- โข Feature Requests โ Submit feedback and feature ideas