{
 "slug": "activecampaign",
 "name": "ActiveCampaign",
 "url": "https://activecampaign.com",
 "domain": "activecampaign.com",
 "category": "email-marketing",
 "category_name": "Email marketing",
 "tested_at": "2026-10-06",
 "run": "20261006T054858Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T230717Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261006T054858Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": "0/10",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 90,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 90,
  "security": null,
  "standards": [
   {
    "standard": "MCP",
    "state": "current",
    "behind": null,
    "value": "2026-07-28"
   },
   {
    "standard": "MCP discovery",
    "state": "current",
    "behind": null,
    "value": "ok"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   },
   {
    "standard": "A2A",
    "state": "behind",
    "behind": 1,
    "value": "0.3.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 2,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": null,
  "prompt_sha": "f3d0adeeb256",
  "kb_version": "2+overlay-9e43028a2c",
  "identity": null
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 2,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "start"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare managed challenge (Turnstile)",
  "visible": true,
  "type": "network",
  "human": "",
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "form"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt, markdown pages (Accept: text/markdown), api-catalog with 9 OpenAPI specs (v3.json 3.1.0, 406 ops), docs MCP on the 28 Jul 2026 spec"
  },
  "signup": {
   "status": "human",
   "note": "Trial form leads to a Cloudflare managed challenge (visible Turnstile 'Verify you are human') on /go/; signed headless GET gets 403 cf-mitigated: challenge. auth.md says agents cannot create accounts or start trials.",
   "via": ""
  },
  "verify": {
   "status": "",
   "note": "No account (sign-up stopped at Cloudflare Turnstile).",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "API token / Remote MCP URL only from Settings > Developer in the app; no OAuth, PRM or agent registration (auth.md).",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "No credentials.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "No credentials.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "note": "No 402/x402/MPP/UCP/L402, not in x402 Bazaar or mpp.dev, no billing API in OpenAPI. 14-day trial with no card, but reaching it (and any in-app purchase) needs a human past Cloudflare Turnstile. Checkout vendor not reached (unknown).",
   "reached": false
  },
  "cancel": {
   "status": "",
   "grade": "n/a",
   "note": "No plan or trial was started.",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created; docs list no API to delete one's own account.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-06",
  "source": "drive",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v3, 254 paths / 406 operations, Api-Token header, 5 req/s per account",
  "openapi": "9 specs via api-catalog; v3.json 3.1.0, openapi_public.json 3.1.1 (Segments only)",
  "mcp": "official product MCP (per-user URL) + docs MCP on the 28 Jul 2026 spec",
  "llms_txt": "developers.activecampaign.com/llms.txt; www /llms.txt 404"
 },
 "can_do": [
  "Read the full API reference headless via llms.txt, markdown pages, OpenAPI or the docs MCP server"
 ],
 "cannot_do": [
  {
   "what": "Create an account or start the free trial",
   "why": "Cloudflare managed challenge (Turnstile) on the trial sign-up step; no agent sign-up path (auth.md)"
  },
  {
   "what": "Get an API token or Remote MCP URL",
   "why": "Only from Settings > Developer inside the app; no OAuth or agent provisioning"
  },
  {
   "what": "Drive any product capability (contacts, campaigns, automations, deals)",
   "why": "No account or credentials"
  }
 ],
 "blockers": [
  "Cloudflare Turnstile managed challenge on /go/ (trial sign-up)",
  "No agent credential path: token only from the app UI"
 ],
 "tips_for_owner": [
  "Let signed agents through trial sign-up",
  "Offer agent sign-up with a claimable account",
  "Add OAuth with PRM to the MCP server",
  "Document an account deletion API",
  "Update agent card and rate-limit headers"
 ],
 "tips_for_agents": [
  "Ask the user for the Remote MCP URL or an API token plus account subdomain; verify with GET /api/3/settings/developer",
  "Read docs via developers.activecampaign.com/mcp (2026-07-28) or Accept: text/markdown",
  "Keep under 5 requests/s per account; honour Retry-After on 429"
 ],
 "selfhost": null,
 "summary": "ActiveCampaign's docs are agent-ready (llms.txt, markdown negotiation, OpenAPI 3.1.0, a docs MCP on the 28 Jul 2026 spec, auth.md, AI catalog), but an agent cannot get in: the free-trial sign-up hits a Cloudflare Turnstile challenge and credentials only come from the app UI. No product capability was driven.",
 "wall": "Cloudflare Turnstile on the trial sign-up",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": null,
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Email Marketing",
   "capability": "Create and send an email campaign",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/campaigns, PUT /api/3/campaigns/{id}/schedule",
    "mcp": "list_campaigns / get_campaign (read-only)",
    "cli": null,
    "ui": "Campaigns"
   },
   "check": "GET /api/3/campaigns/{id} shows status scheduled then sent",
   "source": "https://developers.activecampaign.com/reference/create-campaign; https://developers.activecampaign.com/reference/schedule-a-campaign; https://www.activecampaign.com/platform/email-marketing"
  },
  {
   "id": "cap-02",
   "group": "Marketing Automation",
   "capability": "Build a multi-step automation workflow",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "list_automations (read-only)",
    "cli": null,
    "ui": "Automations builder"
   },
   "check": "GET /api/3/automations/{id} returns the automation; UI shows workflow steps",
   "source": "https://www.activecampaign.com/platform/marketing-automation; https://developers.activecampaign.com/reference/list-all-contactautomations-for-automation"
  },
  {
   "id": "cap-03",
   "group": "Marketing Automation",
   "capability": "Enroll or remove a contact from an automation",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "DELETE /api/3/contactAutomations/{id}",
    "mcp": "add_contact_to_automation / remove_contact_from_automation",
    "cli": null,
    "ui": "Contact detail > Automations"
   },
   "check": "GET /api/3/contactAutomations?filters[contact]={id} shows/omits the automation",
   "source": "https://developers.activecampaign.com/reference/remove-a-contact-from-an-automation-by-contact-and-automation.md; https://developers.activecampaign.com/page/mcp-available-tools"
  },
  {
   "id": "cap-04",
   "group": "Contacts",
   "capability": "Create, update, and manage contacts",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/contact/sync, GET /api/3/contacts",
    "mcp": "create_or_update_contact / get_contact / list_contacts",
    "cli": null,
    "ui": "Contacts"
   },
   "check": "GET /api/3/contacts/{id} shows updated fields",
   "source": "https://developers.activecampaign.com/reference/sync-a-contacts-data.md; https://developers.activecampaign.com/reference/list-all-contacts.md"
  },
  {
   "id": "cap-05",
   "group": "SMS Marketing",
   "capability": "Send an SMS broadcast",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/broadcasts (SMS Broadcast API)",
    "mcp": null,
    "cli": null,
    "ui": "SMS > Broadcasts"
   },
   "check": "GET /api/3/broadcasts/{id} shows sent status and metrics",
   "source": "https://developers.activecampaign.com/reference/createbroadcast.md; https://www.activecampaign.com/platform/sms-marketing"
  },
  {
   "id": "cap-06",
   "group": "WhatsApp Messaging",
   "capability": "Send a WhatsApp template message",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/channels/whatsapp/template/send",
    "mcp": null,
    "cli": null,
    "ui": "WhatsApp"
   },
   "check": "Flow execution/conversation record shows the message delivered",
   "source": "https://developers.activecampaign.com/reference/send-a-whatsapp-template-message.md; https://www.activecampaign.com/platform/whatsapp-messaging"
  },
  {
   "id": "cap-07",
   "group": "Sales CRM",
   "capability": "Create and manage deals through a pipeline",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/deals, PUT /api/3/deals/{id}",
    "mcp": "create_deal / update_deal / list_deals / get_deal",
    "cli": null,
    "ui": "Deals pipeline"
   },
   "check": "GET /api/3/deals/{id} shows new stage/status",
   "source": "https://developers.activecampaign.com/reference/create-a-deal-new.md; https://developers.activecampaign.com/page/mcp-available-tools; https://www.activecampaign.com/platform/sales-crm"
  },
  {
   "id": "cap-08",
   "group": "Active Intelligence (AI)",
   "capability": "Generate AI-drafted campaigns and content from a prompt",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/sms/broadcasts/generate (AI SMS broadcast) and UI prompt box",
    "mcp": null,
    "cli": null,
    "ui": "Active Intelligence chat"
   },
   "check": "GET AI broadcast status endpoint returns generated content ready",
   "source": "https://developers.activecampaign.com/reference/createaibroadcast.md; https://www.activecampaign.com/platform/active-intelligence"
  },
  {
   "id": "cap-09",
   "group": "Active Intelligence (AI)",
   "capability": "Run autonomous scheduled tasks (recurring AI-run tasks)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Active Intelligence > Scheduled Tasks"
   },
   "check": "UI task history shows the recurring run and its output email",
   "source": "https://www.activecampaign.com/ (Scheduled Tasks section); https://www.activecampaign.com/platform"
  },
  {
   "id": "cap-10",
   "group": "Landing Pages",
   "capability": "Build and publish a landing page",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Landing Pages builder"
   },
   "check": "Published page is reachable at its public URL",
   "source": "https://www.activecampaign.com/platform/landing-pages; https://www.activecampaign.com/pricing"
  },
  {
   "id": "cap-11",
   "group": "Lists & Subscription",
   "capability": "Create a list and manage contact subscription status",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/lists, POST /api/3/contactLists",
    "mcp": "create_list / add_contact_to_list",
    "cli": null,
    "ui": "Lists"
   },
   "check": "GET /api/3/contactLists shows status Active/Unsubscribed",
   "source": "https://developers.activecampaign.com/reference/create-new-list.md; https://developers.activecampaign.com/page/mcp-available-tools"
  },
  {
   "id": "cap-12",
   "group": "Segmentation",
   "capability": "Build and save audience segments",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/segments",
    "mcp": null,
    "cli": null,
    "ui": "Segments"
   },
   "check": "GET /api/3/segments/{id} returns the saved condition set",
   "source": "https://developers.activecampaign.com/reference/create_segment.md; https://www.activecampaign.com/platform/segmentation"
  },
  {
   "id": "cap-13",
   "group": "Tags",
   "capability": "Tag and untag contacts",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/contactTags, DELETE /api/3/contactTags/{id}",
    "mcp": "create_contact_tag / add_tag_to_contact",
    "cli": null,
    "ui": "Contact detail > Tags"
   },
   "check": "GET /api/3/contacts/{id}/contactTags lists/omits the tag",
   "source": "https://developers.activecampaign.com/reference/add-tags-to-a-contact.md; https://developers.activecampaign.com/page/mcp-available-tools"
  },
  {
   "id": "cap-14",
   "group": "Custom Fields",
   "capability": "Define and set custom field values on contacts and deals",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/fields, POST /api/3/fieldValues",
    "mcp": "create_contact_custom_field / create_contact_field_value",
    "cli": null,
    "ui": "Settings > Manage Fields"
   },
   "check": "GET /api/3/fieldValues/{id} returns the stored value",
   "source": "https://developers.activecampaign.com/reference/create-a-contact-custom-field.md; https://developers.activecampaign.com/reference/create-fieldvalue.md"
  },
  {
   "id": "cap-15",
   "group": "Forms",
   "capability": "Build an embeddable lead capture form",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/forms, GET /forms/{id} embed html",
    "mcp": null,
    "cli": null,
    "ui": "Forms builder"
   },
   "check": "GET /api/3/forms/{id}/embedHtml returns working embed markup",
   "source": "https://developers.activecampaign.com/reference/create-a-new-form.md; https://www.activecampaign.com/platform/forms"
  },
  {
   "id": "cap-16",
   "group": "Templates",
   "capability": "Create and manage reusable email templates",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/templates",
    "mcp": null,
    "cli": null,
    "ui": "Campaigns > Templates"
   },
   "check": "GET /api/3/templates/{id} returns the saved template",
   "source": "https://developers.activecampaign.com/reference/create-a-template.md"
  },
  {
   "id": "cap-17",
   "group": "Split Testing",
   "capability": "A/B split test campaign variations",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "PUT split percentages on a campaign",
    "mcp": null,
    "cli": null,
    "ui": "Campaign builder > Split test"
   },
   "check": "GET campaign split percentages endpoint returns configured variants",
   "source": "https://developers.activecampaign.com/reference/set-the-split-percentages-of-a-campaign.md; https://www.activecampaign.com/platform/split-testing"
  },
  {
   "id": "cap-18",
   "group": "Site & Event Tracking",
   "capability": "Track site visits and custom events tied to a contact",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "PUT /api/3/siteTracking, POST tracking domain whitelist",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Tracking"
   },
   "check": "GET /api/3/contacts/{id}/contactActivities shows site events",
   "source": "https://developers.activecampaign.com/reference/add-a-site-tracking-domain.md; https://www.activecampaign.com/platform/predictive-sending"
  },
  {
   "id": "cap-19",
   "group": "Analytics & Reporting",
   "capability": "View campaign and deal performance reports",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/3/campaigns/{id}/reportTotals, /dealReporting",
    "mcp": "list_email_activities / list_deal_activities",
    "cli": null,
    "ui": "Reports dashboard"
   },
   "check": "GET reportTotals endpoint returns open/click/bounce counts matching UI",
   "source": "https://developers.activecampaign.com/reference/retrieve-a-campaign-report-totals.md; https://www.activecampaign.com/platform/analytics-and-reporting"
  },
  {
   "id": "cap-20",
   "group": "Lead Scoring",
   "capability": "Auto-score contacts and deals",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Contact/Deal detail score badge"
   },
   "check": "Contact or deal record shows a numeric score that changes with activity",
   "source": "https://www.activecampaign.com/platform/lead-scoring"
  },
  {
   "id": "cap-21",
   "group": "Sales CRM",
   "capability": "Automate sales routing / lead assignment rules",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "PATCH deal_owner_bulk_update",
    "mcp": "deal_owner_bulk_update",
    "cli": null,
    "ui": "Pipeline settings > Routing"
   },
   "check": "GET /api/3/deals/{id} shows new owner after routing rule fires",
   "source": "https://developers.activecampaign.com/page/mcp-available-tools; https://www.activecampaign.com/platform/sales-crm"
  },
  {
   "id": "cap-22",
   "group": "Sales CRM",
   "capability": "Create deal tasks and reminders",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/3/tasks, POST taskNotification",
    "mcp": null,
    "cli": null,
    "ui": "Deal detail > Tasks"
   },
   "check": "GET /api/3/tasks lists the created task with due date",
   "source": "https://developers.activecampaign.com/reference/list-all-tasks.md; https://developers.activecampaign.com/reference/create-a-task-reminder.md"
  },
  {
   "id": "cap-23",
   "group": "Sales CRM",
   "capability": "Add notes to a deal or contact",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/notes, create-a-contact-note",
    "mcp": "create_deal_note / update_deal_note",
    "cli": null,
    "ui": "Deal/Contact detail > Notes"
   },
   "check": "GET note by id returns the saved text",
   "source": "https://developers.activecampaign.com/reference/create-a-contact-note.md; https://developers.activecampaign.com/page/mcp-available-tools"
  },
  {
   "id": "cap-24",
   "group": "Custom Objects",
   "capability": "Define and populate custom object schemas/records",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GraphQL/custom objects API",
    "mcp": "create_custom_object_schema / create_or_update_custom_object_record",
    "cli": null,
    "ui": "Settings > Custom Objects"
   },
   "check": "list_custom_object_records returns the created record",
   "source": "https://developers.activecampaign.com/reference/paging-ordering-sorting-and-filtering.md; https://developers.activecampaign.com/page/mcp-available-tools"
  },
  {
   "id": "cap-25",
   "group": "Ecommerce",
   "capability": "Sync orders, products, and abandoned carts from a store",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "Ecommerce GraphQL API (orders, products, browse abandonment)",
    "mcp": null,
    "cli": null,
    "ui": "Ecommerce dashboard"
   },
   "check": "GraphQL orders query returns synced order linked to a contact",
   "source": "https://developers.activecampaign.com/reference/orders-1.md; https://developers.activecampaign.com/reference/browse-abandonment.md"
  },
  {
   "id": "cap-26",
   "group": "Webhooks",
   "capability": "Configure webhooks for account events",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/webhooks",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Developer > Webhooks"
   },
   "check": "Triggering the event delivers a POST to the configured endpoint",
   "source": "https://developers.activecampaign.com/reference/webhooks.md; https://developers.activecampaign.com/page/webhooks.md"
  },
  {
   "id": "cap-28",
   "group": "AI Content",
   "capability": "Build a brand kit the AI uses for content generation",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Brand Kit"
   },
   "check": "Generated campaign content reuses uploaded brand colors/logo/voice",
   "source": "https://www.activecampaign.com/platform/ai-brand-kit"
  },
  {
   "id": "cap-29",
   "group": "AI Memory",
   "capability": "Set custom instructions / memory for Active Intelligence",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "Partners API: AI customization profiles/instructions endpoints",
    "mcp": null,
    "cli": null,
    "ui": "Active Intelligence > Custom Instructions"
   },
   "check": "GET ai_customizations instructions list returns the saved instruction, reused in next generation",
   "source": "https://developers.activecampaign.com/reference/post_ai_customizations_instructions_create.md; https://www.activecampaign.com/"
  },
  {
   "id": "cap-30",
   "group": "Browser Extensions",
   "capability": "Manage contacts and deals from a Gmail/Outlook inbox extension",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Chrome/Outlook extension sidebar"
   },
   "check": "Deal created in extension appears in GET /api/3/deals",
   "source": "https://www.activecampaign.com/platform/sales-crm (FAQ: Chrome and Outlook extensions)"
  },
  {
   "id": "cap-31",
   "group": "Contact Import",
   "capability": "Bulk import or merge contacts",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/3/import/bulk_import, POST merge contacts",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Import"
   },
   "check": "GET /api/3/import/info?batchId= shows import completed with contact count",
   "source": "https://developers.activecampaign.com/reference/bulk-import-contacts.md; https://developers.activecampaign.com/reference/merge-contacts.md"
  },
  {
   "id": "cap-32",
   "group": "Account Admin",
   "capability": "Manage users, groups, and SSO access",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/3/users, create-a-single-sign-on-token, bulk-delete-groups",
    "mcp": "list_groups / create_list_group_permission",
    "cli": null,
    "ui": "Settings > Users"
   },
   "check": "GET /api/3/users lists the new user with assigned group",
   "source": "https://developers.activecampaign.com/reference/create-a-single-sign-on-token.md; https://www.activecampaign.com/pricing (SSO feature)"
  },
  {
   "id": "cap-33",
   "group": "App Integrations",
   "capability": "Connect third-party apps (Shopify, Salesforce, Stripe, Zapier, etc.)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "DeepData Integrations: POST /api/3/connections",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Apps"
   },
   "check": "GET /api/3/connections lists the connected app",
   "source": "https://developers.activecampaign.com/reference/create-connection.md; https://www.activecampaign.com/apps"
  },
  {
   "id": "cap-34",
   "group": "Deliverability",
   "capability": "Manage sending domains and deliverability settings",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Domains"
   },
   "check": "Domain verification status shows verified in settings",
   "source": "https://www.activecampaign.com/use-cases/improve-deliverability"
  },
  {
   "id": "cap-35",
   "group": "Partner/Agency Admin",
   "capability": "Create and manage child (sub) accounts for agencies/resellers",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/partner child-accounts create, GET child accounts list",
    "mcp": null,
    "cli": null,
    "ui": "Partner Portal"
   },
   "check": "GET child accounts list endpoint shows the new sub-account",
   "source": "https://developers.activecampaign.com/reference/post_child_accounts_create.md; https://developers.activecampaign.com/reference/get_child_accounts_get_list.md"
  },
  {
   "id": "cap-36",
   "group": "Partner/Agency Admin",
   "capability": "Clone an account via snapshot for reseller provisioning",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST child_account_snapshots create-snapshot",
    "mcp": null,
    "cli": null,
    "ui": "Partner Portal > Snapshots"
   },
   "check": "GET snapshots list shows the new snapshot and its cloning status",
   "source": "https://developers.activecampaign.com/reference/post_child_account_snapshots_create_snapshot.md; https://developers.activecampaign.com/reference/get_child_account_snapshots_get_list.md"
  }
 ],
 "attempts": [
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "robots.txt / aipref",
   "task": "fetch robots.txt",
   "evidence": "200 text/plain; 'User-agent: *' group has 'Content-Signal: ai-train=no, search=yes, ai-input=no' (Cloudflare Content Signals scheme, parses); no Content-Usage line; no Disallow for our agent beyond site paths; Crawl-Delay: 1",
   "documented": true
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "llms.txt",
   "task": "fetch llms.txt",
   "evidence": "www.activecampaign.com/llms.txt 404; developers.activecampaign.com/llms.txt 200 text/plain, 287 lines, H1 'ActiveCampaign Documentation', links to .md pages",
   "documented": true
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "markdown docs",
   "task": "Accept: text/markdown on reference page",
   "evidence": "developers.activecampaign.com/reference/create-a-new-contact with Accept: text/markdown -> 200 content-type text/markdown, Vary: Accept, Accept-Encoding; .md URL also 200 text/markdown",
   "documented": true
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "OpenAPI",
   "task": "fetch api-catalog and specs",
   "evidence": "developers /.well-known/api-catalog (linkset+json) lists 9 specs; v3.json declares openapi 3.1.0, 254 paths / 406 operations; openapi_public.json 3.1.1 (Segments only); no x-payment-info",
   "documented": true
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "A2A agent card",
   "task": "fetch /.well-known/agent-card.json and agent.json",
   "evidence": "www /.well-known/agent-card.json 200 application/json, protocolVersion '0.3.0', says agent integration is via MCP not A2A JSON-RPC, url points to docs page; legacy /.well-known/agent.json 200 application/json protocolVersion '1.0'",
   "documented": true
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "AI catalog / MCP server card",
   "task": "fetch ai-catalog.json and server cards",
   "evidence": "www /.well-known/ai-catalog.json 200 JSON (specVersion 1.0) -> www /.well-known/mcp/server-card.json: product MCP is streamable-http, endpoint 'user-provided' (per-user URL with key embedded, from Settings > Developer); developers /.well-known/mcp/server-card.json -> docs MCP https://developers.activecampaign.com/mcp",
   "documented": true
  },
  {
   "t": "01:40",
   "cap": "discovery",
   "route": "mcp",
   "result": "done",
   "verified": true,
   "capability": "MCP server/discover (docs MCP)",
   "task": "POST server/discover to developers.activecampaign.com/mcp",
   "evidence": "200 application/json result.supportedVersions ['2026-07-28'], serverInfo ActiveCampaign v3 (ReadMe docs MCP); tools/list returns list-endpoints, get-endpoint etc. (docs-only tools)",
   "documented": true
  },
  {
   "t": "01:40",
   "cap": "discovery",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "auth discovery",
   "task": "auth.md, oauth well-knowns",
   "evidence": "www.activecampaign.com/auth.md 200 text/markdown: 'There is no OAuth', 'You cannot self-provision... cannot create an account, mint a token, or start a trial programmatically'; credential = per-user API token or Remote MCP URL from Settings > Developer. /.well-known/oauth-protected-resource and oauth-authorization-server 404 (HTML)",
   "documented": true
  },
  {
   "t": "01:40",
   "cap": "pay",
   "route": "api",
   "result": "done",
   "verified": true,
   "capability": "pay step probes",
   "task": "402/ucp/registries",
   "evidence": "/.well-known/ucp 404; x402./mpp./agents. subdomains do not resolve; unauthenticated API call returns 404 text/plain not 402; no x-payment-info in OpenAPI; not listed in x402 Bazaar or mpp.dev/api/services",
   "documented": true
  },
  {
   "t": "03:05",
   "cap": "signup",
   "capability": "sign up for free trial",
   "task": "submit trial email form at /free",
   "route": "browser",
   "result": "blocked",
   "verified": false,
   "evidence": "Browser: filled email on https://www.activecampaign.com/free, clicked Get started -> navigated to /go/?om_e=...; Cloudflare managed challenge page 'Performing security verification' with visible 'Verify you are human' Turnstile checkbox (Ray a462658d9fd6986b), did not clear after ~25s. Headless: no documented signup API; auth.md says agents cannot create an account or start a trial programmatically.",
   "notes": "Cloudflare interstitial with visible Turnstile on the trial sign-up step; our signed agent (Web Bot Auth) was not let through. Not solved by us; handing off to a human in their own browser.",
   "quality": {
    "error_legibility": "vague",
    "recoverable": "no"
   },
   "documented": true
  },
  {
   "t": "04:13",
   "cap": "signup",
   "capability": "human handoff for sign-up",
   "task": "ask a human to start the trial in their own browser (Cloudflare Turnstile)",
   "route": "none",
   "result": "blocked",
   "evidence": "Inbox the agent's inbox received no mail after the attempt (account not created).",
   "notes": "Cloudflare managed challenge (Turnstile) on the trial sign-up step.",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "docs",
   "capability": "find docs",
   "task": "read API docs, OpenAPI, llms.txt headless",
   "route": "api",
   "result": "done",
   "verified": true,
   "evidence": "developers.activecampaign.com: llms.txt, .md pages and Accept: text/markdown, 9 OpenAPI specs via api-catalog (v3.json 3.1.0, 406 ops), docs MCP with 2026-07-28 server/discover; rate limits page: 5 req/s per account, 429 with Retry-After, RateLimit-Limit/RateLimit-Remaining headers (older draft names)",
   "quality": {
    "docs_match": "match"
   },
   "documented": true
  },
  {
   "t": "04:13",
   "cap": "verify",
   "capability": "verify email",
   "task": "verify email",
   "route": "none",
   "result": "blocked",
   "evidence": "No account: sign-up stopped at Cloudflare Turnstile. Auth.md: API token and Remote MCP URL only from Settings > Developer in the app; no OAuth, no agent provisioning.",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "credentials",
   "capability": "get API token / Remote MCP URL",
   "task": "get API token / Remote MCP URL",
   "route": "none",
   "result": "blocked",
   "evidence": "No account: sign-up stopped at Cloudflare Turnstile. Auth.md: API token and Remote MCP URL only from Settings > Developer in the app; no OAuth, no agent provisioning.",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "first_call",
   "capability": "first API call",
   "task": "first API call",
   "route": "none",
   "result": "blocked",
   "evidence": "No account: sign-up stopped at Cloudflare Turnstile. Auth.md: API token and Remote MCP URL only from Settings > Developer in the app; no OAuth, no agent provisioning.",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "first_action",
   "capability": "first create",
   "task": "first create",
   "route": "none",
   "result": "blocked",
   "evidence": "No account: sign-up stopped at Cloudflare Turnstile. Auth.md: API token and Remote MCP URL only from Settings > Developer in the app; no OAuth, no agent provisioning.",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-01",
   "capability": "Create and send an email campaign",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/campaigns, PUT /api/3/campaigns/{id}/schedule",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-02",
   "capability": "Build a multi-step automation workflow",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-03",
   "capability": "Enroll or remove a contact from an automation",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: DELETE /api/3/contactAutomations/{id}",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-04",
   "capability": "Create, update, and manage contacts",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/contact/sync, GET /api/3/contacts",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-05",
   "capability": "Send an SMS broadcast",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/broadcasts (SMS Broadcast API)",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-06",
   "capability": "Send a WhatsApp template message",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/channels/whatsapp/template/send",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-07",
   "capability": "Create and manage deals through a pipeline",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/deals, PUT /api/3/deals/{id}",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-08",
   "capability": "Generate AI-drafted campaigns and content from a prompt",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/sms/broadcasts/generate (AI SMS broadcast) and UI prompt box",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-09",
   "capability": "Run autonomous scheduled tasks (recurring AI-run tasks)",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-10",
   "capability": "Build and publish a landing page",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-11",
   "capability": "Create a list and manage contact subscription status",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/lists, POST /api/3/contactLists",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-12",
   "capability": "Build and save audience segments",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/segments",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-13",
   "capability": "Tag and untag contacts",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/contactTags, DELETE /api/3/contactTags/{id}",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-14",
   "capability": "Define and set custom field values on contacts and deals",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/fields, POST /api/3/fieldValues",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-15",
   "capability": "Build an embeddable lead capture form",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/forms, GET /forms/{id} embed html",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-16",
   "capability": "Create and manage reusable email templates",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/templates",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-17",
   "capability": "A/B split test campaign variations",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: PUT split percentages on a campaign",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-18",
   "capability": "Track site visits and custom events tied to a contact",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: PUT /api/3/siteTracking, POST tracking domain whitelist",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-19",
   "capability": "View campaign and deal performance reports",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: GET /api/3/campaigns/{id}/reportTotals, /dealReporting",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-20",
   "capability": "Auto-score contacts and deals",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-21",
   "capability": "Automate sales routing / lead assignment rules",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: PATCH deal_owner_bulk_update",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-22",
   "capability": "Create deal tasks and reminders",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: GET /api/3/tasks, POST taskNotification",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-23",
   "capability": "Add notes to a deal or contact",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/notes, create-a-contact-note",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-24",
   "capability": "Define and populate custom object schemas/records",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: GraphQL/custom objects API",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-25",
   "capability": "Sync orders, products, and abandoned carts from a store",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: Ecommerce GraphQL API (orders, products, browse abandonment)",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-26",
   "capability": "Configure webhooks for account events",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/webhooks",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-28",
   "capability": "Build a brand kit the AI uses for content generation",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-29",
   "capability": "Set custom instructions / memory for Active Intelligence",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: Partners API: AI customization profiles/instructions endpoints",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-30",
   "capability": "Manage contacts and deals from a Gmail/Outlook inbox extension",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-31",
   "capability": "Bulk import or merge contacts",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/import/bulk_import, POST merge contacts",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-32",
   "capability": "Manage users, groups, and SSO access",
   "task": "drive via MCP",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/3/users, create-a-single-sign-on-token, bulk-delete-groups",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-33",
   "capability": "Connect third-party apps (Shopify, Salesforce, Stripe, Zapier, etc.)",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: DeepData Integrations: POST /api/3/connections",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-34",
   "capability": "Manage sending domains and deliverability settings",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: None",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-35",
   "capability": "Create and manage child (sub) accounts for agencies/resellers",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST /api/partner child-accounts create, GET child accounts list",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cap-36",
   "capability": "Clone an account via snapshot for reseller provisioning",
   "task": "drive via API",
   "route": "none",
   "result": "blocked",
   "evidence": "Not attempted against the product: no account/credentials (trial sign-up behind Cloudflare Turnstile). Documented route exists in docs: POST child_account_snapshots create-snapshot",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "pay",
   "capability": "buy a plan",
   "task": "find an agent-usable purchase path",
   "route": "none",
   "result": "blocked",
   "evidence": "No 402/x402/MPP/UCP anywhere; no billing endpoints in v3 OpenAPI (no paths matching bill/plan/subscri/upgrade); pricing page: 14-day free trial, 'No credit card needed'; purchase happens in the app after login, which needs the human-gated sign-up. Checkout vendor unknown (not reached).",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "cancel",
   "capability": "cancel plan",
   "task": "cancel",
   "route": "none",
   "result": "skipped",
   "evidence": "No plan or trial started (sign-up blocked).",
   "documented": true,
   "verified": false
  },
  {
   "t": "04:13",
   "cap": "delete",
   "capability": "delete account",
   "task": "delete account",
   "route": "none",
   "result": "skipped",
   "evidence": "No account created. Docs list no API to delete one's own account (only 'Bulk delete accounts' = CRM account records, and partner child accounts).",
   "documented": true,
   "verified": false
  }
 ],
 "stale": false,
 "icon": "/logos/activecampaign.png",
 "monitored": false,
 "verdict": "Needs a person: our agent reached the trial form but could not sign up on its own. A Cloudflare managed challenge, a visible Turnstile check, stopped it at signup, and the vendor's own agent guidance says accounts cannot be created or trials started this way. With no account, our agent never reached verification or the Settings page where a token or MCP URL is issued, so no call and no work through the API, CLI or MCP server. Docs are agent-ready: llms.txt, markdown pages, OpenAPI specs and a docs MCP all worked. Paying needs a human past that same challenge first, and there is no delete-account API.",
 "page": "https://agentdrives.com/tools/activecampaign?via=api"
}