๐Ÿงช

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 user

Abilities vs Traditional REST

FeatureAbilities APITraditional REST
DiscoveryAI auto-discovers capabilitiesManual documentation lookup
SchemaSelf-documenting JSON SchemaExternal API docs
Error HandlingStructured errors with hintsHTTP status codes
MCP SupportNative integrationRequires custom wrapper

Abilities at a Glance

Discovery (Read-Only)

Execution (Create/Modify)

Integration (Data Export)

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:

json
{
  "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:

bash
# 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. 1. Go to Users โ†’ Profile in WordPress admin
  2. 2. Scroll to Application Passwords
  3. 3. Enter a name (e.g., "Claude AI") and click Add New Application Password
  4. 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

DiscoveryPermission: edit_posts

Retrieve 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

ParameterTypeRequiredDescription
entity_typeenumNoblock, post, experiment, or site
entity_idintegerNoSpecific entity ID to analyze
date_range_presetenumNo24h, 7d, 30d, 90d, ytd, or all
compare_to_previousbooleanNoInclude comparison period

Example Request (MCP)

json
{
  "entity_type": "site",
  "date_range_preset": "7d",
  "compare_to_previous": true
}

REST Equivalent

bash
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

DiscoveryPermission: edit_posts

List 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

ParameterTypeRequiredDescription
statusenumNorunning, paused, completed, or all
limitintegerNoMaximum experiments to return (default: 20)

Example Request (MCP)

json
{
  "status": "running",
  "limit": 10
}

accelerate/get-audience-segments

DiscoveryPermission: edit_posts

List all defined audience segments with their targeting rules and optional size estimates.

๐Ÿ’ฌ Ask the AI:

What audiences have I created?

Input Schema

ParameterTypeRequiredDescription
include_estimatesbooleanNoInclude audience size estimates

Example Request (MCP)

json
{
  "include_estimates": true
}

accelerate/get-audience-fields

DiscoveryPermission: edit_posts

List 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

DiscoveryPermission: edit_posts

Get 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

ParameterTypeRequiredDescription
content_typeenumNopost, page, or all
metricenumNoviews or conversions
date_range_presetenumNo24h, 7d, 30d, 90d, ytd, or all
limitintegerNoNumber of items to return (default: 10)

Example Request (MCP)

json
{
  "content_type": "post",
  "metric": "views",
  "date_range_preset": "30d",
  "limit": 10
}

accelerate/get-content-diff

DiscoveryPermission: edit_posts

Compare content performance between two time periods to identify trends and changes.

๐Ÿ’ฌ Ask the AI:

Compare this week's performance to last week

Input Schema

ParameterTypeRequiredDescription
content_idintegerNoSpecific content ID (optional for site-wide)
period_aobjectYesFirst period (start/end dates)
period_bobjectYesSecond period (start/end dates)

Example Request (MCP)

json
{
  "period_a": {"preset": "7d"},
  "period_b": {"preset": "previous_7d"}
}

accelerate/get-traffic-breakdown

DiscoveryPermission: edit_posts

Get traffic breakdown by country, browser, operating system, or referrer source.

๐Ÿ’ฌ Ask the AI:

Where is my traffic coming from by country?

Input Schema

ParameterTypeRequiredDescription
dimensionenumYescountry, browser, os, or referrer
date_range_presetenumNo24h, 7d, 30d, 90d, ytd, or all
limitintegerNoNumber of items to return (default: 10)

Example Request (MCP)

json
{
  "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

ExecutionPermission: edit_posts

Create 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

ParameterTypeRequiredDescription
namestringYesName for the experiment
block_idintegerYesBlock to test
variantsarrayYesArray of variant configurations
traffic_allocationnumberNoPercentage of traffic (default: 100)
goalenumNoconversion, engagement, or click

Example Request (MCP)

json
{
  "name": "Homepage Hero Test",
  "block_id": 456,
  "variants": [
    {"name": "Control", "weight": 50},
    {"name": "New Headline", "weight": 50}
  ],
  "goal": "conversion"
}

accelerate/create-audience

ExecutionPermission: edit_posts

Create 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

ParameterTypeRequiredDescription
namestringYesName for the audience
rulesarrayYesArray of targeting rules
rule_logicenumNoand or or (default: and)

Example Request (MCP)

json
{
  "name": "US Visitors",
  "rules": [
    {
      "field": "location.country",
      "operator": "equals",
      "value": "US"
    }
  ]
}

accelerate/create-personalization-rule

ExecutionPermission: edit_posts

Create a personalization rule that shows specific content to a target audience.

๐Ÿ’ฌ Ask the AI:

Personalize the pricing section for enterprise visitors

Input Schema

ParameterTypeRequiredDescription
namestringYesName for the rule
audience_idintegerYesTarget audience ID
block_idintegerYesBlock to personalize
variant_idintegerYesContent variant to show

Example Request (MCP)

json
{
  "name": "Enterprise Pricing",
  "audience_id": 45,
  "block_id": 789,
  "variant_id": 2
}

accelerate/broadcast-content

ExecutionPermission: manage_options

Broadcast 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

ParameterTypeRequiredDescription
block_idintegerYesBlock to broadcast
target_locationsarrayYesArray of target post IDs or content types
positionenumNobefore_content, after_content, or replace

Example Request (MCP)

json
{
  "block_id": 123,
  "target_locations": ["post"],
  "position": "before_content"
}

accelerate/update-audience

ExecutionPermission: edit_posts

Modify an existing audience's targeting rules or settings.

๐Ÿ’ฌ Ask the AI:

Update my US audience to also include Canada

Input Schema

ParameterTypeRequiredDescription
audience_idintegerYesAudience ID to update
namestringNoNew name for the audience
rulesarrayNoUpdated targeting rules

Example Request (MCP)

json
{
  "audience_id": 45,
  "name": "North America Visitors",
  "rules": [
    {"field": "location.country", "operator": "in", "value": ["US", "CA"]}
  ]
}

accelerate/set-block-goal

ExecutionPermission: edit_posts

Set 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

ParameterTypeRequiredDescription
block_idintegerYesBlock ID to configure
goalenumYesengagement, click, or form_submission

Example Request (MCP)

json
{
  "block_id": 456,
  "goal": "form_submission"
}

accelerate/set-traffic-percentage

ExecutionPermission: edit_posts

Adjust the traffic allocation percentage for an A/B test experiment.

๐Ÿ’ฌ Ask the AI:

Reduce the hero test to 50% of traffic

Input Schema

ParameterTypeRequiredDescription
experiment_idintegerYesExperiment ID to adjust
percentagenumberYesTraffic percentage (1-100)

Example Request (MCP)

json
{
  "experiment_id": 123,
  "percentage": 50
}

Integration Abilities

Integration abilities enable data export for external analysis tools and business intelligence platforms.

accelerate/export-events

IntegrationPermission: manage_options

Export 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

ParameterTypeRequiredDescription
event_typesarrayNoFilter by event types
date_range_presetenumNo24h, 7d, 30d, 90d, ytd, or all
formatenumNojson or csv
limitintegerNoMaximum events (default: 10000)

Example Request (MCP)

json
{
  "event_types": ["conversion"],
  "date_range_preset": "30d",
  "format": "json"
}

accelerate/get-export-status

IntegrationPermission: manage_options

Check 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

ParameterTypeRequiredDescription
export_idstringNoSpecific export job ID to check
datestringNoCheck if data is available for this date

Example Request (MCP)

json
{
  "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

bash
GET /wp-json/wp-abilities/v1/abilities

# Response includes schema, description, and permissions for each ability

Get Ability Schema

bash
GET /wp-json/wp-abilities/v1/abilities/{ability_id}

# Example:
GET /wp-json/wp-abilities/v1/abilities/accelerate%2Fget-performance-summary

Run an Ability

bash
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:

bash
GET /wp-json/wp-abilities/v1/mcp

# Returns MCP-formatted tool list compatible with Claude Desktop

Permission Model

The Abilities API uses WordPress capabilities to control access. Each ability requires a specific capability to execute.

Permission Tiers

CapabilityAccess LevelExample Abilities
edit_postsRead (Authors+)All Discovery abilities, most Execution abilities
publish_postsWrite (Editors+)Create experiments, audiences, rules
manage_optionsAdminExport 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

json
{
  "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

CodeStatusDescription
rest_forbidden403User lacks required capability
invalid_parameter400Parameter value invalid or out of range
missing_parameter400Required parameter not provided
not_found404Requested resource doesn't exist
rate_limit_exceeded429Too many requests

Appendix

Date Range Presets

PresetDescription
24hLast 24 hours
7dLast 7 days
30dLast 30 days
90dLast 90 days
ytdYear to date
allAll time

Goal Types

GoalDescription
conversionForm submissions, signups, purchases
engagementClicks, scrolls, time on page
clickSpecific link or button clicks

Filter Operators

OperatorDescription
equalsExact match
not_equalsDoes not match
containsString contains value
not_containsString does not contain value
starts_withString starts with value
ends_withString ends with value
greater_thanNumeric greater than
less_thanNumeric less than
inValue in array
not_inValue not in array

Further Resources