{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m57vgth0s6s1brv0bqkjz85v",
 "ids": {
  "org": "org_01m57vgth0g3jpyad664v5fe5g",
  "surfaces": {
   "web": "srf_01m6avs5krymdf41xb17jttce2",
   "api": "srf_01m6avs5krtygdt7wjr83yxsaj",
   "mcp": "srf_01m6avs5krsp01sp6j86wmg11v",
   "sdk": "srf_01m6avs5kr9tzyfmmjtkbcmmkw"
  },
  "slugs": [
   "constantcontact"
  ],
  "domain": "constantcontact.com",
  "wikidata": "Q5163620"
 },
 "slug": "constantcontact",
 "name": "Constant Contact",
 "url": "https://www.constantcontact.com",
 "domain": "constantcontact.com",
 "category": "email-marketing",
 "category_name": "Email marketing",
 "tested_at": "2026-11-01",
 "run": "20261031T234104Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261031T234104Z",
   "date": "2026-11-01",
   "level": 4,
   "engine": {
    "model": "anthropic/opus",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.11.01",
    "commit": "965bf1d3244d882c5570a638261feedad34c8e10",
    "prompts": {
     "version": "2026.10.31",
     "commit": "89bf772fa7ebc3254cfd6313591a49f5c52a28b7"
    },
    "rules": {
     "version": "2026.10.31",
     "commit": "035d6752f8e8b4dfd75b95d48b7890d0101c6352"
    }
   },
   "stop": "delete",
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 4,
 "level_name": "Runs on its own",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 1,
  "tries": 1,
  "self_start": true
 },
 "badges": [],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: sign-up in a browser",
   "way": "email_password"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 89% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Reaches the checkout: stopped at the €12 a month charge",
   "value": "checkout",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; deletes its data, but the login stays",
   "at": "delete",
   "left": "data_only",
   "delete": {
    "state": "part",
    "text": "Deletes its data, but the login stays",
    "why": "Account deletion is only by phone (constantcontact.com/cancel/account: \"you can do so by calling our Support team\"); Settings > Billing has no cancel or delete."
   }
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "yes",
   "text": "Docs it can act on: llms.txt and an OpenAPI",
   "have": [
    "llms_txt",
    "openapi"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: sign-up in a browser",
   "way": "email_password",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 89% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Reaches the checkout: stopped at the €12 a month charge",
   "value": "checkout",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; deletes its data, but the login stays",
   "at": "delete",
   "left": "data_only",
   "delete": {
    "state": "part",
    "text": "Deletes its data, but the login stays",
    "why": "Account deletion is only by phone (constantcontact.com/cancel/account: \"you can do so by calling our Support team\"); Settings > Billing has no cancel or delete."
   },
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "browser_signup",
   "label": "Sign-up in a browser",
   "routes": [
    "email_password",
    "device_login"
   ],
   "minutes": 2,
   "core": "8/9",
   "by_route": {
    "email_password": "8/9",
    "device_login": "0/9"
   }
  }
 ],
 "minutes": 2,
 "next": {
  "to": 5,
  "text": "Next: pay without a person"
 },
 "stop": "delete",
 "core": "8/9",
 "scores": {
  "coverage": 85,
  "reliability": 64,
  "resilience": 92,
  "setup": 85,
  "surface_coverage": 91,
  "docs_accuracy": 89,
  "docs_completeness": 50
 },
 "parts": {
  "holds_up": 78,
  "docs_match": 77,
  "setup": 85,
  "security": "private",
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 3,
    "value": "2.0"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 76,
   "recovery": 100,
   "idempotency": 100
  },
  "summary": {
   "error_legibility": "mixed",
   "recovery": "good",
   "idempotency": "safe",
   "rate_limits": "none-seen",
   "notes": "Most errors name the field (409 on duplicates, clear 401); automation and segment validation come back as 502/500 and social posts as a bare \"400\"; a 15-call burst saw no 429 or rate headers."
  }
 },
 "stress": [
  {
   "capability": "Add a contact",
   "probe": "create a contact with no email_address",
   "outcome": "400 [{\"error_key\":\"contacts.api.validation.error\",\"error_message\":\"create_source is missing, create_source does not have a valid value\"}]",
   "grade": "vague",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Add a contact",
   "probe": "read a well-formed contact id that does not exist",
   "outcome": "404 [{\"error_key\":\"contacts.api.not_found\",\"error_message\":\"We could not find the resource you are looking for (or the query parameters are not correct).\"}]",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a list and add contacts to it",
   "probe": "repeat the same list create",
   "outcome": "409 [{\"error_key\":\"contacts.api.conflict\",\"error_message\":\"Validation failed: List is not unique\"}]",
   "grade": "clear",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "Add a contact",
   "probe": "repeat the same contact create (same email)",
   "outcome": "409 [{\"error_key\":\"contacts.api.conflict\",\"error_message\":\"Validation failed: Email already exists for contact 83bfeb30-d58c-11f1-b5db-02420a320002\"}]",
   "grade": "clear",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "Create a list and add contacts to it",
   "probe": "call with a wrong bearer token",
   "outcome": "401 {\"error_key\":\"unauthorized\",\"error_message\":\"Unauthorized\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an email campaign",
   "probe": "bad enum value format_type 99",
   "outcome": "400 [{\"error_key\":\"validation.error.emailcampaignactivity.format.type\",\"error_message\":\"EmailCampaignActivity Format type is not supported, please include a valid EmailCampaignActivity Format type\"}]",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a list and add contacts to it",
   "probe": "burst of 15 quick reads",
   "outcome": "statuses [200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200]; rate headers {}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  }
 ],
 "surface_audit": {
  "totals": {
   "items": 144,
   "documented": 143,
   "safe": 119,
   "exercised": 112,
   "passed": 108,
   "skipped": 24,
   "blocked": 2,
   "not_run": 5,
   "match": 100,
   "drift": 12,
   "broken_doc": 0,
   "docs_complete": 0,
   "docs_partial": 143,
   "docs_missing": 0,
   "errors_clear": 13,
   "errors_vague": 0,
   "errors_silent": 0
  }
 },
 "coverage_core": 89,
 "coverage_own": 89,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "anthropic/opus",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "anthropic/opus",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.11.01",
  "commit": "965bf1d3244d882c5570a638261feedad34c8e10",
  "prompts": {
   "version": "2026.10.31",
   "commit": "89bf772fa7ebc3254cfd6313591a49f5c52a28b7"
  },
  "rules": {
   "version": "2026.10.31",
   "commit": "035d6752f8e8b4dfd75b95d48b7890d0101c6352"
  }
 },
 "same_level_drives": 1,
 "drives": 1,
 "same_stop_drives": 1,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": {
  "rung": "signup",
  "vendor": "reCAPTCHA (invisible)",
  "signed": true
 },
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-11-01"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "verified",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "Developer llms.txt, Swagger 2.0 spec at api.cc.email/v3/swagger.yaml, guides per endpoint, SDK pages."
  },
  "signup": {
   "status": "browser",
   "note": "www.constantcontact.com/signup (email, password, name); invisible reCAPTCHA let our signed agent through; 30-day trial, no card, no phone.",
   "way": "email_password"
  },
  "verify": {
   "status": "browser",
   "note": "Verification link mail arrived within a minute; the link works after login (Cloudflare interstitial on login cleared by itself)."
  },
  "credentials": {
   "status": "browser",
   "note": "Developer Portal app creation first answered 400 \"Users must be enrolled in MFA to create applications.\" (silent in the UI); after enrolling Google Authenticator (TOTP, no phone) the app was created; token through the documented OAuth2 Device Flow (browser-free calls, one browser activation with password, TOTP and consent)."
  },
  "first_call": {
   "status": "headless",
   "note": "GET /v3/account/summary 200.",
   "route": "account"
  },
  "first_action": {
   "status": "headless",
   "note": "POST /v3/contact_lists 201, read back."
  },
  "pay": {
   "status": "browser",
   "grade": "P2",
   "rails": [
    "Stripe Elements card checkout"
   ],
   "rail_ids": [
    "stripe-elements"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "route": "card_checkout",
   "checkout": {
    "reached": "card_form",
    "processor": "stripe_elements",
    "captcha": "invisible",
    "three_ds": "not_seen",
    "card_form": true,
    "phone_field": "optional",
    "wallets": [
     "google_pay",
     "paypal",
     "other"
    ],
    "rail_offer": "none",
    "price": "12.00",
    "currency": "EUR",
    "period": "month",
    "plan": "Lite",
    "last_button": "Pay €12.00 now"
   },
   "person": null,
   "ours": "no_card",
   "note": "No 402/x402/MPP and no billing API for normal accounts (nothing paid). In-app Plans and pricing > Monthly > Lite opened secure.constantcontact.com/purchase/checkout; billing address filled with our test details; stopped at the pay button because this drive has no card."
  },
  "cancel": {
   "status": "n/a",
   "note": "Nothing to cancel: our agent started no paid plan.",
   "docs_note": "Nothing to cancel: the drive used the no-card trial. The cancel page says accounts are cancelled by calling support (855-229-5506).",
   "docs_grade": "",
   "nothing": "no_plan"
  },
  "delete": {
   "status": "blocked",
   "note": "Account deletion is only by phone (constantcontact.com/cancel/account: \"you can do so by calling our Support team\"); Settings > Billing has no cancel or delete. We deleted our data: campaigns, contacts, lists (except the last one, which the API refuses: \"Cannot delete last list on account\"), tags, fields and segments through the API, and the events, automations, social drafts and landing pages in the web app (each row's menu > Delete; the bulk Actions menu has none). The API app is deactivated and its token is refused (403 \"Application Key is not active.\"), but the login still works.",
   "cause": "other",
   "left": "data_only",
   "after_hours": null,
   "account": true
  }
 },
 "routes": [
  {
   "route": "api_signup",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": null,
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0.1,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 4,
   "browser": true
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 2,
   "browser": true
  }
 ],
 "checkout": {
  "reached": "card_form",
  "processor": "stripe_elements",
  "captcha": "invisible",
  "three_ds": "not_seen",
  "phone_field": "optional",
  "wallets": [
   "google_pay",
   "paypal",
   "other"
  ],
  "rail_offer": "none",
  "period": "month",
  "card_form": true,
  "price": "12.00",
  "currency": "EUR",
  "plan": "Lite",
  "last_button": "Pay €12.00 now"
 },
 "docs": {
  "at": "2026-10-31",
  "read": 200,
  "listed": 208,
  "sampled": false,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-10-29",
  "core_pages": "10 of 10",
  "capabilities": "covered",
  "label": "No gaps in what we read"
 },
 "claims": {
  "claimed": 8,
  "tried": 7,
  "held": 7,
  "broken": 0,
  "unclear": 0,
  "not_tried": 1,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-10-31",
  "source": "probe",
  "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": true,
  "mcp": "none",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "urls": {
  "docs": "https://www.constantcontact.com/partners/business",
  "llms_txt": "https://www.constantcontact.com/llms.txt",
  "mcp": null
 },
 "surface_notes": {
  "api": "REST V3, 131 operations",
  "openapi": "Swagger 2.0",
  "sdk": "official SDKs: C#, PHP, Python, Ruby, TypeScript (ctct-api-client 1.23.0)",
  "webhooks": "technology-partner webhooks only",
  "mcp": "none official"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 131,
   "tested": 109
  },
  {
   "kind": "sdk",
   "listed": 5,
   "tested": 1
  }
 ],
 "can_do": [
  "Sign up for the free trial and verify the email in a browser, with no card or phone",
  "Get an API token through the OAuth2 Device Flow after enrolling an authenticator-app MFA",
  "Create, update, delete and list contacts and contact lists",
  "Create an email campaign, change its content and recipients, and test-send it",
  "Schedule, unschedule and send an email campaign to its own list",
  "Read campaign stats and per-contact send reports",
  "Create and rename an automation workflow by API",
  "Create events, segments, tags, custom fields and A/B tests; import and export contacts",
  "Draft a social post in the web app",
  "Create, publish and delete a sign-up landing page in the web app"
 ],
 "cannot_do": [
  {
   "what": "Send an SMS campaign",
   "why": "paid add-on for US customers only"
  },
  {
   "what": "Publish or schedule a social post",
   "why": "needs a connected Instagram, LinkedIn, TikTok or Facebook account"
  },
  {
   "what": "Subscribe partner webhooks or create client accounts",
   "why": "technology partners only"
  },
  {
   "what": "Create an API app without a browser",
   "why": "apps are made only in the Developer Portal UI, after MFA enrolment"
  },
  {
   "what": "Delete the account",
   "why": "only by calling support (our data could be deleted: API and web app)"
  }
 ],
 "blockers": [
  "API apps need browser MFA enrolment and the Developer Portal UI",
  "Account deletion only by phone"
 ],
 "tips_for_agents": [
  "Enrol MFA with Google Authenticator: the secret key is under \"Can't scan?\"; compute the TOTP yourself, then create a Device Authorization Flow app in My Applications",
  "Use the device flow: POST authz.constantcontact.com/oauth2/default/v1/device/authorize, approve at the returned verification_uri_complete, poll /v1/token",
  "Set physical_address_in_footer on the email activity (PUT /v3/emails/activities/{id}) before scheduling",
  "Send segment_criteria as a JSON object, and the segment rename as ?name=",
  "Deleted lists and contacts still answer GET with deleted_at: check that field, not a 404"
 ],
 "selfhost": null,
 "edge_case": "none",
 "summary": "An agent can sign up for Constant Contact's no-card trial in a browser. After enrolling an authenticator-app MFA and registering a Developer Portal app, it gets a token through the documented OAuth2 Device Flow. With that token the V3 API handled contacts, lists, email campaigns and automations. Contacts, lists, campaign create, update, test send and schedule were repeated three times. A real send to its own list and the stats were done once. Sign-up landing pages and social drafts work in the web app. SMS is a paid US-only add-on, publishing a social post needs a connected social account, and the account can be deleted only by calling support.",
 "wall": "API apps need browser MFA; delete by phone",
 "plan_scope": "no-card trial",
 "robots_stop": null,
 "robots": null,
 "terms": null,
 "terms_read": "2026-10-31",
 "email_gate": null,
 "plain": {
  "summary": "Constant Contact is an email marketing service. An agent can open a free trial and, after a one-time authenticator setup, use its API to manage contacts, lists, campaigns and automations. It stopped at text messages, publishing social posts and deleting the account.",
  "can_do": [
   "Sign up for the free trial and confirm the email in a browser, with no card or phone",
   "Get an API token through the device sign-in flow after setting up an authenticator app",
   "Create, update and delete contacts and lists",
   "Create an email campaign, edit it, send a test, schedule it and send it to its own list",
   "Read campaign results",
   "Create and rename an automation",
   "Draft a social post and build a sign-up landing page in the web app"
  ],
  "cannot_do": [
   {
    "what": "Send a text message campaign",
    "why": "Paid add-on for US customers only."
   },
   {
    "what": "Schedule or publish a social post",
    "why": "Needs a connected social media account."
   },
   {
    "what": "Create an API app without a browser",
    "why": "Apps can only be made in the Developer Portal, after MFA setup."
   },
   {
    "what": "Delete the account",
    "why": "Only by phoning support; our data could be removed."
   },
   {
    "what": "Subscribe to partner webhooks",
    "why": "Technology partners only."
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "",
   "plan": "SMS add-on (paid plans, US customers only)",
   "evidence": "https://www.constantcontact.com/pricing: \"SMS Marketing (US Customers Only)\", \"$10/month add-on\"; the trial app offers no SMS channel"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Create an email campaign",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create an Email Campaign (email-campaigns/email-campaign-create)",
    "mcp": null,
    "cli": null,
    "ui": "Campaigns > Create > Email"
   },
   "check": "Get the campaign; it shows the name and a draft activity",
   "capability_id": "cap_dy157y6d",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/email-campaigns/email-campaign-create; https://www.constantcontact.com/features/email-marketing",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-02",
   "capability": "Edit an email campaign's content",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Update an Email Campaign Activity (email-campaigns/email-campaign-activity-update)",
    "mcp": null,
    "cli": null,
    "ui": "Email editor"
   },
   "check": "Get the activity; the content shows the change",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://v3.developer.constantcontact.com/api_guide/email-campaigns/email-campaign-activity-update; https://www.constantcontact.com/features/email-templates",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-03",
   "capability": "Send a test email of a campaign",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Test Send an Email Campaign Activity (email-campaigns/email-campaign-activity-test-send)",
    "mcp": null,
    "cli": null,
    "ui": "Email editor > Preview and test"
   },
   "check": "The test address receives the mail",
   "capability_id": "cap_9mca2sxt",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/email-campaigns/email-campaign-activity-test-send",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-04",
   "capability": "Schedule an email campaign",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Schedule an Email Campaign Activity (email-campaigns/email-campaign-create-schedule)",
    "mcp": null,
    "cli": null,
    "ui": "Email editor > Schedule"
   },
   "check": "Get the schedule of the activity; it shows the time and status scheduled",
   "capability_id": "cap_xhr02x42",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/email-campaigns/email-campaign-create-schedule",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-05",
   "capability": "Add a contact",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a Single Contact (contacts/contacts-post-one)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Add contact"
   },
   "check": "Get the contact by id; it shows the address",
   "capability_id": "cap_d1321zz7",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contacts/contacts-post-one; https://www.constantcontact.com/features/list-building",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-06",
   "capability": "Create a list and add contacts to it",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a Contact List (contact-lists/lists-create)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Lists"
   },
   "check": "Get the list; get contacts filtered by list",
   "capability_id": "cap_kwp65xfm",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contact-lists/lists-create",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-07",
   "capability": "Read email campaign performance",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Get an Email Campaign Stats Report (email-reporting/email-reporting-campaign-stats)",
    "mcp": null,
    "cli": null,
    "ui": "Reporting"
   },
   "check": "Stats report shows sends, opens, clicks for the campaign",
   "capability_id": "cap_17gywz87",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/email-reporting/email-reporting-campaign-stats; https://www.constantcontact.com/features/reporting",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-08",
   "capability": "Build an email automation",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Automations"
   },
   "check": "The automation shows in the Automations list as active",
   "capability_id": "cap_zhyba8bd",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/automation",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-09",
   "capability": "Send an SMS campaign",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "SMS campaigns"
   },
   "check": "The SMS campaign shows as sent in reports",
   "capability_id": "cap_m7z1vwx8",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/sms-marketing",
   "result": "plan_gated",
   "via": "browser",
   "counted": false
  },
  {
   "id": "cap-10",
   "capability": "Create and schedule a social media post",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a Social Media Post (social/social-create-post)",
    "mcp": null,
    "cli": null,
    "ui": "Social > Create post"
   },
   "check": "The post shows in the social calendar as scheduled",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://v3.developer.constantcontact.com/api_guide/social/social-create-post; https://www.constantcontact.com/features/social-media-marketing",
   "result": "partial",
   "via": "api"
  },
  {
   "id": "cap-11",
   "capability": "Create and promote an event",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a New Event (events/events-create)",
    "mcp": null,
    "cli": null,
    "ui": "Events"
   },
   "check": "Get the event; it shows title and date",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://v3.developer.constantcontact.com/api_guide/events/events-create; https://www.constantcontact.com/features/event-marketing",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-12",
   "capability": "Read an event's registrations",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Get All Registration Details for an Event (events/events-get-registrations-all)",
    "mcp": null,
    "cli": null,
    "ui": "Events > Registrations"
   },
   "check": "Registrations list shows the registrant",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://v3.developer.constantcontact.com/api_guide/events/events-get-registrations-all",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-13",
   "capability": "Update a contact",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Update a Single Contact's Details (contacts/contacts-put)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts"
   },
   "check": "Get the contact; the field shows the new value",
   "capability_id": "cap_1tb0z82p",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contacts/contacts-put",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-14",
   "capability": "Delete a contact",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Delete a Contact (contacts/contacts-delete)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Delete"
   },
   "check": "Get the contact; it is gone or deleted",
   "capability_id": "cap_8q9mtqpg",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contacts/contacts-delete",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-15",
   "capability": "Read a contact's activity",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Get Activity Details (contact-reporting/activity-details)",
    "mcp": null,
    "cli": null,
    "ui": "Contact profile"
   },
   "check": "Activity details list the contact's opens and clicks",
   "capability_id": "cap_fbf8znxp",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contact-reporting/activity-details",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-16",
   "capability": "Create a custom contact field",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create and Update Custom Fields (contact-custom-fields/custom-fields-create-or-update)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Fields"
   },
   "check": "Get custom fields; the new one is listed",
   "capability_id": "cap_dmgwrw28",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contact-custom-fields/custom-fields-create-or-update",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-17",
   "capability": "Create a segment",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a Segment (segments/segments-create)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Segments"
   },
   "check": "Get the segment; it shows the criteria",
   "capability_id": "cap_ynachpeg",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/segments/segments-create",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-18",
   "capability": "Tag a contact",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a Tag; Add Tags to Contacts Bulk Activity (contact-tags/tags-create)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Tags"
   },
   "check": "Get the contact; it carries the tag",
   "capability_id": "cap_jsgd63bj",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/contact-tags/tags-create; https://v3.developer.constantcontact.com/api_guide/bulk-activity-endpoints/bulk-activities-add-tags",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-19",
   "capability": "Import contacts from a file",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Import Contacts (bulk-activity-endpoints/bulk-activities-import-contacts)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Add contacts > Upload"
   },
   "check": "Bulk activity status completed; contacts are listed",
   "capability_id": "cap_a8damn1w",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/bulk-activity-endpoints/bulk-activities-import-contacts",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-20",
   "capability": "Export contacts to a CSV file",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Export Contacts to a CSV File (bulk-activity-endpoints/bulk-activities-export-contacts)",
    "mcp": null,
    "cli": null,
    "ui": "Contacts > Export"
   },
   "check": "Bulk activity status completed with a file URL",
   "capability_id": "cap_8zwmj5wn",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/bulk-activity-endpoints/bulk-activities-export-contacts",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-21",
   "capability": "Run an A/B test on a campaign",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create an A/B Test for an Email Campaign Activity (email-campaigns-a-b-tests/ab-tests-create)",
    "mcp": null,
    "cli": null,
    "ui": "Email editor > A/B test"
   },
   "check": "Get the A/B test of the activity",
   "capability_id": "cap_hc8wcqjq",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/email-campaigns-a-b-tests/ab-tests-create",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-22",
   "capability": "Delete an email campaign",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Delete an Email Campaign (email-campaigns/email-campaigns-delete)",
    "mcp": null,
    "cli": null,
    "ui": "Campaigns > Delete"
   },
   "check": "Get the campaign; it is gone",
   "capability_id": "cap_j8q36gb7",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/email-campaigns/email-campaigns-delete",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-23",
   "capability": "Create a signup form or landing page",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Sign-up forms; Landing pages"
   },
   "check": "Form or page is listed and has a public URL",
   "capability_id": "cap_s7gkpaab",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/list-building",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-24",
   "capability": "Start an email from a template",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Email templates library"
   },
   "check": "New campaign opens with the template content",
   "capability_id": "cap_wyk7y3sg",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/email-templates",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-25",
   "capability": "Sync store orders and products from an ecommerce platform",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Integrations > Ecommerce"
   },
   "check": "Synced products show in the account",
   "capability_id": "cap_dxcze6t0",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/ecommerce",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-26",
   "capability": "Generate content with AI",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "AI content in the editor"
   },
   "check": "The generated text appears in the editor",
   "capability_id": "cap_1vwp1jc5",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/ai",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-27",
   "capability": "Subscribe a webhook (partner)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "API: Subscribe (PUT) to a Partner Webhook (technology-partner-webhooks/webhooks-subscribe)",
    "mcp": null,
    "cli": null,
    "ui": "Not in the app"
   },
   "check": "Get a Partner Webhook shows the callback URI",
   "capability_id": "cap_977hxacb",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/technology-partner-webhooks/webhooks-subscribe",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-28",
   "capability": "Invite a team member / manage sub-accounts",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "API: Create a new Partner Client Account (technology-partners/partners-create-client-account)",
    "mcp": null,
    "cli": null,
    "ui": "Account > Users; multi-account"
   },
   "check": "The user or account is listed",
   "capability_id": "cap_3w8sjh12",
   "unmapped": null,
   "source": "https://www.constantcontact.com/solutions/teams",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-29",
   "capability": "Read account details",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "API: Get Account Summary Details (account-services/account-get-details)",
    "mcp": null,
    "cli": null,
    "ui": "Account settings"
   },
   "check": "Summary returns the account fields",
   "capability_id": "cap_q235vpxt",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/account-services/account-get-details",
   "result": "done",
   "via": "api",
   "done_on": [
    "api",
    "sdk"
   ]
  },
  {
   "id": "cap-30",
   "capability": "Connect a third-party integration",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Integrations"
   },
   "check": "Integration shows connected",
   "capability_id": "cap_x4n6bnwy",
   "unmapped": null,
   "source": "https://www.constantcontact.com/features/integrations",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-31",
   "capability": "Register an OAuth app and get an API key",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "API: OAuth2 Overview (oauth2-authorization/auth-overview)",
    "mcp": null,
    "cli": null,
    "ui": "Developer portal > My Applications"
   },
   "check": "Application is listed with a key",
   "capability_id": "cap_rw58zb2y",
   "unmapped": null,
   "source": "https://v3.developer.constantcontact.com/api_guide/oauth2-authorization/auth-overview",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/constantcontact.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [
    "signup",
    "verify",
    "first_action"
   ],
   "stop": "pay",
   "why": "reaches the checkout, stopped at the €12 a month charge",
   "tone": "warn",
   "text": "Signs up, confirms its email and does 89% of the core work. Payment: reaches the checkout, stopped at the €12 a month charge."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "signup",
   "why": "it works only in a browser",
   "tone": "wall",
   "text": "Stops at sign-up: it works only in a browser."
  }
 },
 "sdk": {
  "packages": [
   {
    "ecosystem": "pypi",
    "name": "constant_contact_api_client",
    "url": "https://pypi.org/project/constant_contact_api_client/",
    "source": "https://raw.githubusercontent.com/constantcontact/constant-contact-v3api-client-python/HEAD/pyproject.toml"
   },
   {
    "ecosystem": "npm",
    "name": "ctct-api-client",
    "url": "https://www.npmjs.com/package/ctct-api-client",
    "source": "https://raw.githubusercontent.com/constantcontact/constant-contact-v3api-client-typescript/HEAD/package.json"
   }
  ],
  "read_at": "2026-11-01T20:56:13Z"
 },
 "surface_reach": null,
 "connect": {
  "signup": {
   "url": "https://guruconference.com/",
   "state": "tested"
  },
  "docs": {
   "url": "https://www.constantcontact.com/partners/business",
   "state": "tested"
  }
 },
 "surface_sources": {
  "docs": "https://www.constantcontact.com/partners/business",
  "llms_txt": "https://www.constantcontact.com/llms.txt",
  "api": "https://v3.developer.constantcontact.com/api_reference/index",
  "sdk": "https://v3.developer.constantcontact.com/api_guide/sdks/csharp-sdk",
  "openapi": "https://api.cc.email/v3/swagger.yaml"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": {
  "at": "delete",
  "date": "2026-11-01",
  "line": "Account deletion is only by phone (constantcontact.com/cancel/account: \"you can do so by calling our Support team\"); Settings > Billing has no cancel or delete."
 },
 "wall_vendor": null,
 "mcp_sign_in": null,
 "safety_issues": 0,
 "fix_counts": {
  "small": 3,
  "medium": 3,
  "large": 1,
  "total": 7
 },
 "evidence_sha256": "1c44837458344acc37ce9e3de5388993268a2df145081e47c4df2c393831f794",
 "first_seen": "2026-11-01",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": null,
 "confirmation": {
  "state": "awaiting",
  "drives": 1,
  "agree": 1,
  "review": null,
  "text": "1 drive, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 191,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Constant Contact is an email marketing service.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": {
  "holds_up": {
   "median": 78,
   "n": 5
  },
  "docs_match": {
   "median": 81,
   "n": 5
  }
 },
 "peers": {
  "API-03": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 4
  },
  "API-04": {
   "basis": "category",
   "n": 6,
   "below": 0,
   "above": 4
  },
  "API-07": {
   "basis": "category",
   "n": 7,
   "below": 3,
   "above": 0
  },
  "DOCS-08": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 2
  },
  "DOCS-10": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 3
  },
  "DOCS-11": {
   "basis": "category",
   "n": 7,
   "below": 3,
   "above": 0
  },
  "ERR-01": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 0
  },
  "ERR-02": {
   "basis": "category",
   "n": 6,
   "below": 2,
   "above": 0
  },
  "ERR-03": {
   "basis": "category",
   "n": 6,
   "below": 0,
   "above": 5
  },
  "ERR-04": {
   "basis": "all",
   "n": 36,
   "below": 0,
   "above": 12,
   "percentile": 33
  },
  "ERR-07": {
   "basis": "category",
   "n": 5,
   "below": 2,
   "above": 0
  },
  "FIND-06": {
   "basis": "all",
   "n": 106,
   "below": 25,
   "above": 0,
   "percentile": 62
  },
  "IN-03": {
   "basis": "category",
   "n": 5,
   "below": 0,
   "above": 4
  },
  "IN-08": {
   "basis": "all",
   "n": 120,
   "below": 55,
   "above": 0,
   "percentile": 73
  },
  "IN-11": {
   "basis": "category",
   "n": 7,
   "below": 2,
   "above": 4
  },
  "IN-12": {
   "basis": "category",
   "n": 7,
   "below": 2,
   "above": 1
  },
  "LEAVE-03": {
   "basis": "category",
   "n": 7,
   "below": 6,
   "above": 0
  },
  "LIM-02": {
   "basis": "all",
   "n": 48,
   "below": 0,
   "above": 21,
   "percentile": 28
  },
  "PAY-05": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 1
  },
  "PROTO-02": {
   "basis": "category",
   "n": 6,
   "below": 0,
   "above": 0
  }
 },
 "probe": null,
 "probe_history": [],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": null,
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261031T234104Z",
    "date": "2026-10-31",
    "level": 4,
    "stop": "delete",
    "entry": "self-start",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/constantcontact/changes.json"
 },
 "agreement": null,
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 2,
  "surface_issues": 12
 },
 "agent_surfaces": {
  "api": {
   "state": "tested",
   "reachable": true,
   "documented": 131,
   "tested": 109,
   "source": "https://v3.developer.constantcontact.com/api_reference/index"
  },
  "mcp": {
   "state": "none_found",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": null
  },
  "cli": {
   "state": "none_found",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": null
  },
  "sdk": {
   "state": "tested",
   "documented": 5,
   "tested": 1,
   "source": "https://v3.developer.constantcontact.com/api_guide/sdks/csharp-sdk"
  },
  "docs": {
   "state": "tested",
   "documented": 208,
   "tested": 200,
   "source": "https://www.constantcontact.com/partners/business"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  }
 },
 "issues_found": 14,
 "rank": 4,
 "rank_of": 4,
 "rank_change": -1,
 "rank_since": "2026-11-01",
 "links": {
  "category": [
   {
    "label": "Marketing",
    "href": "https://agentdrives.com/categories/marketing"
   },
   {
    "label": "Email marketing",
    "href": "https://agentdrives.com/categories/email-marketing"
   }
  ],
  "tasks": [
   {
    "label": "Export data to a file",
    "href": "https://agentdrives.com/tasks/export-data-to-a-file"
   },
   {
    "label": "Import data from a file or another tool",
    "href": "https://agentdrives.com/tasks/import-data-from-a-file-or-another-tool"
   },
   {
    "label": "Start from a template",
    "href": "https://agentdrives.com/tasks/start-from-a-template"
   },
   {
    "label": "Register an OAuth app",
    "href": "https://agentdrives.com/tasks/register-an-oauth-app"
   },
   {
    "label": "Change account settings",
    "href": "https://agentdrives.com/tasks/change-account-settings"
   },
   {
    "label": "Add a contact or subscriber",
    "href": "https://agentdrives.com/tasks#add-a-contact-or-subscriber"
   }
  ],
  "walls": [
   {
    "label": "Phone number at sign-up",
    "href": "https://agentdrives.com/access/get-in/sign-up",
    "note": "our agent got in another way"
   },
   {
    "label": "Let AI agents sign up without a phone number",
    "href": "https://agentdrives.com/guides/sign-up-without-a-phone-number",
    "note": "fix guide"
   }
  ],
  "vendors": [
   {
    "label": "Google reCAPTCHA",
    "href": "https://agentdrives.com/vendors/recaptcha",
    "note": "let our agent through",
    "slug": "recaptcha"
   }
  ],
  "standards": [
   {
    "label": "OpenAPI",
    "href": "https://agentdrives.com/standards/openapi",
    "note": "its API, described"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [
   {
    "label": "Buttondown",
    "href": "https://agentdrives.com/tools/buttondown",
    "slug": "buttondown",
    "level": 4
   },
   {
    "label": "Kit",
    "href": "https://agentdrives.com/tools/kit",
    "slug": "kit",
    "level": 4
   },
   {
    "label": "listmonk",
    "href": "https://agentdrives.com/tools/listmonk",
    "slug": "listmonk",
    "level": 5
   }
  ],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Create an email campaign",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Edit an email campaign's content",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Send a test email of a campaign",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "Schedule an email campaign",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Add a contact",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Create a list and add contacts to it",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-07",
   "name": "Read email campaign performance",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-08",
   "name": "Build an email automation",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Send an SMS campaign",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "plan"
   }
  },
  {
   "id": "cap-10",
   "name": "Create and schedule a social media post",
   "core": true,
   "result": "partial",
   "surfaces": {
    "api": "partial",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Create and promote an event",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-12",
   "name": "Read an event's registrations",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Update a contact",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Delete a contact",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-15",
   "name": "Read a contact's activity",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "Create a custom contact field",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-17",
   "name": "Create a segment",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Tag a contact",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-19",
   "name": "Import contacts from a file",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-20",
   "name": "Export contacts to a CSV file",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-21",
   "name": "Run an A/B test on a campaign",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Delete an email campaign",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-23",
   "name": "Create a signup form or landing page",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-24",
   "name": "Start an email from a template",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-25",
   "name": "Sync store orders and products from an ecommerce platform",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-26",
   "name": "Generate content with AI",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-27",
   "name": "Subscribe a webhook (partner)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-28",
   "name": "Invite a team member / manage sub-accounts",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-29",
   "name": "Read account details",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-30",
   "name": "Connect a third-party integration",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-31",
   "name": "Register an OAuth app and get an API key",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  }
 ],
 "category_place": {
  "category": "email-marketing",
  "products": 10,
  "higher": 1,
  "same_level": 2,
  "as_of": "2026-11-01",
  "stop": "delete",
  "rivals_by": "stop",
  "rivals": [
   "brevo"
  ]
 },
 "page": "https://agentdrives.com/tools/constantcontact?via=api"
}