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)
Content Analytics
- get-performance-summary โ Site/post/block/experiment analytics with time series
- get-post-performance โ Detailed metrics for a single post with period comparison
- get-top-content โ Top performing posts by views/conversions
- get-content-diff โ Compare content performance across periods
- get-taxonomy-performance โ Analytics grouped by category, tag, or custom taxonomy
Traffic & Attribution
- get-traffic-breakdown โ Traffic by country/browser/OS/referrer
- get-source-breakdown โ Traffic source analysis by source/medium/campaign/domain
- get-utm-performance โ UTM parameter performance metrics
- get-landing-pages โ Entry page analysis with engagement and conversion metrics
- get-attribution-comparison โ Compare first-touch vs last-touch attribution
Real-time
- get-trending-content โ Content ranked by current momentum/velocity
- get-concurrent-visitors โ Real-time concurrent visitor count with breakdown
Authors
- get-author-performance โ Performance metrics per author or compare all authors
- get-author-content โ All content by an author with per-post velocity
Engagement
- get-engagement-metrics โ Bounce rate, scroll depth, time on page, recirculation
Experiments & Audiences
- list-active-experiments โ List running A/B tests and personalizations
- get-experiment-results โ Statistical results with p-values and recommendations
- get-variants โ Inspect all variants in a synced pattern
- get-audience-segments โ List defined audiences with optional size estimates
- get-audience-fields โ Available targeting fields (country, browser, etc.)
Site & Search
- get-site-context โ Site design system (colors, fonts, spacing) for brand-consistent AI content
- search-content โ Find WordPress content by title, URL, or text
Execution (Create/Modify)
A/B Tests
- create-ab-test โ Create A/B test on a Synced Pattern
- stop-experiment โ Pause, resume, stop, or declare winner (destructive)
Variants
- add-variant โ Append a new variant to a synced pattern
- update-variant โ Update variant content or attributes
- remove-variant โ Remove a variant (destructive)
Personalization
- create-personalization-rule โ Show specific content to an audience
Audiences
- create-audience โ Create new audience segment
- update-audience โ Modify existing audience
Goals & Traffic
- set-block-goal โ Set conversion goal (engagement/click/form)
- set-traffic-percentage โ Adjust experiment traffic allocation
Broadcast
- broadcast-content โ Broadcast blocks to multiple locations (destructive, admin-only)
Integration (Query & Export)
Query & Aggregation
- query-events โ Raw event queries with custom filters
- get-event-schema โ Discover available event fields and types
- aggregate โ Custom aggregations with flexible dimensions and metrics
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)
Companion tool
ExperimentalAccelerate AI Toolkit
A Claude Code plugin that wraps the Abilities API into ten marketer-friendly workflows: diagnosis, A/B testing, personalization, content planning, and more. It is the fastest way to use Abilities without writing JSON config, and it sits cleanly on top of the MCP / REST access described above. Experimental; from-source install today.
Install from source
The plugin is not yet approved in the Claude plugin directory. Install from the repository for now:
git clone https://github.com/humanmade/accelerate-ai-toolkit.git
cd accelerate-ai-toolkit
claude plugin install ./A one-command install is coming once Anthropic approves the plugin. For Codex CLI, run codex, open /plugins, and choose "Install from local path".
Connect your site
After install, run /accelerate-connect. The command walks you through generating a WordPress Application Password and saving it securely. Verify with /accelerate-status, then ask your first question.
What the workflows do
- Review: a weekly performance snapshot in 60 seconds.
- Diagnose: root-cause analysis for a page that is underperforming.
- Opportunities: three ranked next actions, backed by your data.
- Optimize landing page: a deep-dive that ends with testable improvements.
- Test: the full A/B lifecycle. Plan, create, monitor, declare a winner.
- Personalize: audience creation and content personalization.
- Content plan: upcoming posts proposed from what is working now.
- Realtime: live visitors, trending content, spike investigation.
- Campaigns: UTM breakdowns and attribution comparison.
- Learn: reads past test results and tailors future suggestions.
Every workflow that creates or changes something asks for your explicit confirmation before publishing.
Further reading
- Toolkit README: full overview and roadmap.
- Installation guide: prerequisites and troubleshooting.
- Authentication & security
- Ability reference: every ability the toolkit uses.
- Adding your own skills
Prefer raw MCP or REST? Jump back to Quick Start.
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 with optional time series data.
๐ฌ 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 | 1h, 4h, 12h, 24h, 7d, 30d, 90d, ytd, or all |
date_range | object | No | Custom date range with start/end (ignored if preset is set) |
granularity | enum | No | 5min, 15min, 30min, 1h, hourly, daily, weekly, aggregate, or auto (default: auto) |
compare_to_previous | boolean | No | Include comparison period |
Example Request (MCP)
{
"entity_type": "site",
"date_range_preset": "7d",
"granularity": "auto",
"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
}Content Analytics
accelerate/get-post-performance
edit_postsDetailed performance metrics for a single post, page, or synced pattern. Returns views, visitors, conversions, velocity (momentum), and automatic period-over-period comparison. Also surfaces any active experiments on the content.
๐ฌ Ask the AI:
How is my latest blog post performing compared to last week?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
post_id | integer | Yes | The post, page, or synced pattern ID |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
date_range | object | No | Custom date range with start/end |
Example Request (MCP)
{
"post_id": 42,
"date_range_preset": "7d"
}accelerate/get-taxonomy-performance
edit_postsAnalytics grouped by WordPress taxonomy โ categories, tags, or custom taxonomies. Returns per-term views, conversions, and an underserved score that identifies high-demand, low-supply topics.
๐ฌ Ask the AI:
Which categories are getting the most traffic but have the fewest posts?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
taxonomy | string | No | Taxonomy to analyze (default: category) |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
limit | integer | No | Maximum terms to return (max 100) |
Example Request (MCP)
{
"taxonomy": "category",
"date_range_preset": "30d",
"limit": 20
}Traffic & Attribution
accelerate/get-source-breakdown
edit_postsTraffic source analysis with flexible grouping. Group by source (Google, Bing, Facebook, etc.), medium, campaign, or referrer domain to understand where your traffic comes from.
๐ฌ Ask the AI:
Break down my traffic by source for the last 30 days
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
group_by | enum | No | source, medium, campaign, or referrer_domain |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
limit | integer | No | Maximum sources to return (max 100) |
Example Request (MCP)
{
"group_by": "source",
"date_range_preset": "30d",
"limit": 20
}accelerate/get-utm-performance
edit_postsUTM parameter performance metrics. Analyze how your marketing campaigns are performing by grouping traffic by campaign, source, medium, term, or content UTM parameters.
๐ฌ Ask the AI:
How are my UTM campaigns performing this month?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
group_by | enum | No | campaign, source, medium, term, or content |
campaign | string | No | Filter to a specific campaign name |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
Example Request (MCP)
{
"group_by": "campaign",
"date_range_preset": "30d"
}accelerate/get-landing-pages
edit_postsEntry page analysis showing which pages visitors land on first. Returns bounce rate, average time on page, session depth, and conversion rate for each landing page.
๐ฌ Ask the AI:
What are my top landing pages and their bounce rates?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
limit | integer | No | Maximum pages to return (max 100) |
Example Request (MCP)
{
"date_range_preset": "30d",
"limit": 20
}accelerate/get-attribution-comparison
edit_postsCompare first-touch vs last-touch attribution models to understand which channels introduce visitors versus which channels close conversions. Includes insights on best introducer, best closer, and most undervalued channel.
๐ฌ Ask the AI:
Compare first-touch and last-touch attribution for my conversions
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
conversion_goal | string | No | Filter to a specific conversion goal |
Example Request (MCP)
{
"date_range_preset": "30d"
}Real-time
accelerate/get-trending-content
edit_postsContent ranked by current momentum and velocity. Compares the current time window to the previous window to identify what's rising, stable, or falling in popularity.
๐ฌ Ask the AI:
What content is trending right now?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
window | enum | No | 1h, 4h, 12h, or 24h (default: 1h) |
metric | enum | No | views, conversions, or visitors |
content_type | enum | No | post, page, block, or all |
limit | integer | No | Maximum items to return (max 50) |
min_threshold | integer | No | Minimum metric value to include (default: 10) |
Example Request (MCP)
{
"window": "1h",
"metric": "views",
"content_type": "post",
"limit": 10
}accelerate/get-concurrent-visitors
edit_postsReal-time concurrent visitor count. Shows how many unique visitors are currently active on your site or a specific post, with comparison to the same time yesterday. Optionally includes device and source breakdown.
๐ฌ Ask the AI:
How many people are on my site right now?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
post_id | integer | No | Specific post ID (omit for site-wide) |
active_window_minutes | integer | No | Minutes to consider as active (1-15, default: 5) |
include_breakdown | boolean | No | Include device and source breakdown |
Example Request (MCP)
{
"active_window_minutes": 5,
"include_breakdown": true
}Authors
Engagement
accelerate/get-engagement-metrics
edit_postsQuality engagement metrics beyond simple view counts. Returns average time on page, bounce rate, pages per session, recirculation rate, return visitor rate, scroll depth percentiles, and exit pages.
๐ฌ Ask the AI:
What's the engagement quality like on my site? Show me bounce rate and scroll depth.
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
entity_type | enum | No | post or site |
entity_id | integer | No | Post ID (required when entity_type is post) |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
Example Request (MCP)
{
"entity_type": "site",
"date_range_preset": "30d"
}Experiments & Audiences
accelerate/get-experiment-results
edit_postsDetailed statistical results for running or completed experiments. Returns per-variant impressions, conversions, conversion rate, p-value, probability to beat control, and an AI recommendation (continue, declare winner, no winner, etc.).
๐ฌ Ask the AI:
What are the results of my hero section A/B test? Is there a winner yet?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Synced pattern ID with the experiment |
refresh | boolean | No | Force refresh cached results |
Example Request (MCP)
{
"block_id": 456,
"refresh": true
}accelerate/get-variants
edit_postsInspect all variants in a synced pattern. Returns each variant's title, content preview, raw markup, inner block types, percentage, audience, and fallback status. Also shows experiment state if one is running.
๐ฌ Ask the AI:
Show me the variants in my homepage hero block
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Synced pattern (wp_block) post ID |
Example Request (MCP)
{
"block_id": 456
}Site & Search
accelerate/get-site-context
edit_postsReturns your site's design system โ color palette, typography, spacing, and optionally registered block types โ so AI agents can create brand-consistent content. Uses theme.json data from your WordPress installation.
๐ฌ Ask the AI:
What colors and fonts does my site use?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
include_blocks | boolean | No | Include registered block types with style variations (default: false) |
Example Request (MCP)
{
"include_blocks": false
}accelerate/search-content
edit_postsFind WordPress content by title, URL, or text content. Returns matching posts with their ID, title, URL, type, and excerpt โ useful for looking up content before running analytics or creating experiments.
๐ฌ Ask the AI:
Find all posts with 'pricing' in the title
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search term |
search_in | enum | No | title, url, or content |
post_type | string | No | Filter by post type (e.g., post, page, wp_block) |
limit | integer | No | Maximum results to return (max 100) |
Example Request (MCP)
{
"query": "pricing",
"search_in": "title",
"post_type": "page",
"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. Available via REST API only โ not exposed in MCP tool discovery.
๐ฌ 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
}Variants
accelerate/add-variant
edit_postsAppend a new variant to an existing synced pattern. Accepts block markup or plain text (plain text is automatically wrapped in paragraph blocks). Optionally assign a title, traffic percentage, or audience.
๐ฌ Ask the AI:
Add a new variant to my hero block with a different headline
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Synced pattern (wp_block) post ID |
content | string | Yes | Block markup or plain text for the variant |
title | string | No | Display name for the variant |
percentage | integer | No | Traffic percentage (1-100) |
audience_id | integer | No | Audience to target this variant to |
Example Request (MCP)
{
"block_id": 456,
"content": "<!-- wp:heading --><h2>New Headline</h2><!-- /wp:heading -->",
"title": "Bold Headline Variant",
"percentage": 50
}accelerate/update-variant
edit_postsUpdate an existing variant's content and/or attributes. Provide at least one field to update โ content, title, percentage, or audience. Variant index is zero-based.
๐ฌ Ask the AI:
Change the content of variant 1 in my hero block
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Synced pattern (wp_block) post ID |
variant_index | integer | Yes | Zero-based variant index |
content | string | No | New block markup or plain text |
title | string | No | New display name |
percentage | integer | No | New traffic percentage |
audience_id | integer | No | New audience to target |
Example Request (MCP)
{
"block_id": 456,
"variant_index": 1,
"content": "<!-- wp:paragraph --><p>Updated content</p><!-- /wp:paragraph -->",
"title": "Updated Variant"
}accelerate/remove-variant
edit_postsRemove a variant from a synced pattern by index. Cannot remove the last remaining variant. This is a destructive action that requires confirmation.
๐ฌ Ask the AI:
Remove variant 2 from my hero block
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Synced pattern (wp_block) post ID |
variant_index | integer | Yes | Zero-based index of the variant to remove |
Example Request (MCP)
{
"block_id": 456,
"variant_index": 2
}Experiment Management
accelerate/stop-experiment
manage_optionsEnd, pause, resume, or declare a winner for an experiment. When declaring a winner, specify the winning variant index. This is a destructive action that requires confirmation.
๐ฌ Ask the AI:
Declare variant 0 as the winner of my hero test
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
block_id | integer | Yes | Synced pattern (wp_block) post ID |
action | enum | Yes | pause, resume, stop, or declare_winner |
winner_variant_index | integer | No | Variant index to declare as winner (required for declare_winner) |
Example Request (MCP)
{
"block_id": 456,
"action": "declare_winner",
"winner_variant_index": 0
}Integration Abilities
Integration abilities enable direct event querying, custom aggregations, and data export for external analysis tools and business intelligence platforms.
Query & Aggregation
accelerate/query-events
edit_postsRun raw event queries with custom filters and field selection. Supports operators like eq, neq, contains, gt, lt, and in for flexible filtering. Returns matching events with total count and query execution time.
๐ฌ Ask the AI:
Show me all conversion events from mobile devices in the last 7 days
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
filters | array | No | Array of {field, operator, value} filter objects |
fields | array | No | Specific fields to return (omit for all) |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
limit | integer | No | Maximum events (max 10,000) |
offset | integer | No | Pagination offset |
Example Request (MCP)
{
"filters": [
{"field": "event_type", "operator": "eq", "value": "conversion"},
{"field": "endpoint_demographic_platform", "operator": "contains", "value": "Android"}
],
"date_range_preset": "7d",
"limit": 100
}accelerate/get-event-schema
edit_postsDiscover all available analytics event fields with their types, descriptions, and example values. Use this to understand what data is available before running queries or aggregations.
๐ฌ Ask the AI:
What event fields are available for querying?
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
refresh | boolean | No | Force refresh the schema cache |
Example Request (MCP)
{
"refresh": false
}accelerate/aggregate
edit_postsRun custom aggregations with flexible dimensions and metrics. Group data by any event field and apply aggregation functions: count, countDistinct, sum, avg, min, max. Perfect for building custom reports.
๐ฌ Ask the AI:
Count unique visitors by country for the last 30 days
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
dimensions | array | No | Fields to GROUP BY (e.g., endpoint_location_country) |
metrics | array | Yes | Array of {field, function} objects |
filters | array | No | Array of {field, operator, value} filter objects |
date_range_preset | enum | No | 1h, 4h, 12h, 24h, 7d, 30d, or 90d |
limit | integer | No | Maximum rows (max 1,000) |
Example Request (MCP)
{
"dimensions": ["endpoint_location_country"],
"metrics": [
{"field": "endpoint_id", "function": "countDistinct"},
{"field": "event_type", "function": "count"}
],
"date_range_preset": "30d",
"limit": 20
}Data Export
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
edit_postsCheck 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 | View & Create (Authors+) | All Discovery abilities, most Execution abilities, Query & Aggregation |
manage_options | Admin | stop-experiment, broadcast-content, export-events |
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: 1h, 4h, 12h, 24h, 7d, 30d, 90d",
"data": {
"status": 400,
"param": "date_range_preset",
"provided": "1w",
"allowed": ["1h", "4h", "12h", "24h", "7d", "30d", "90d"]
}
}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 |
Destructive Actions
Some abilities are marked as Destructive โ these modify or delete data irreversibly and require explicit confirmation from the user before an AI agent can execute them. Currently, remove-variant, stop-experiment, and broadcast-content are flagged as destructive.
Appendix
Date Range Presets
| Preset | Description |
|---|---|
1h | Last 1 hour |
4h | Last 4 hours |
12h | Last 12 hours |
24h | Last 24 hours |
7d | Last 7 days |
30d | Last 30 days |
90d | Last 90 days |
ytd | Year to date |
all | All time |
Granularity Options
When using auto granularity (the default), the system automatically selects the best granularity based on the time range.
| Granularity | Description | Auto-selected for |
|---|---|---|
5min | 5-minute intervals | 1h preset |
15min | 15-minute intervals | 4h preset |
30min | 30-minute intervals | 12h preset |
1h | Hourly intervals | 24h preset |
hourly | Hourly intervals (alias) | โ |
daily | Daily intervals | 7d, 30d presets |
weekly | Weekly intervals | 90d preset |
aggregate | Single total (no time series) | โ |
auto | Automatically selects based on range | Default |
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