{
  "data": {
    "a": {
      "slug": "activecampaign",
      "name": "ActiveCampaign",
      "vendor": "ActiveCampaign, LLC",
      "vendorUrl": "https://www.activecampaign.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "ActiveCampaign is a hosted marketing automation platform for email, SMS and WhatsApp with a built-in CRM. Its v3 REST API and an official remote MCP server cover contacts, lists, tags, segments, campaigns, automations and deals.",
      "url": "https://www.anchorterminal.com/tools/activecampaign",
      "markdownUrl": "https://www.anchorterminal.com/tools/activecampaign.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/activecampaign.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/activecampaign.json",
      "dns": "activecampaign.grade.anchorterminal.com",
      "license": "Proprietary service under ActiveCampaign's terms of service and API licence agreement",
      "transports": [
        "http",
        "streamable-http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve. The REST API takes an `Api-Token` header, and each user has one key, shown under Settings, Developer with the account's base URL. No scopes, read-only keys or OAuth for the REST API were found in the reviewed documentation. The remote MCP server uses an account-specific URL from the same page, and the user signs in to ActiveCampaign and approves the connection. Event tracking posts an event key and account ID in the request body.",
      "pricing": "paid",
      "pricingNotes": "14-day trial with no card, and a free developer sandbox on request by form (1,000 contacts, 100 email sends, 5 users, two years), per the 8 October check. No free plan. Plans are priced by contact count. The 8 October prices came from a data file the pricing page loads, which this benchmark no longer reads, and the page wasn't re-read on 4 November 2026 because the terms bar automated access.",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or on the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 50,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.activecampaign.com/reference/overview",
      "llmsTxt": "https://developers.activecampaign.com/llms.txt",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.segments",
        "marketing.campaigns",
        "marketing.journeys",
        "crm.records",
        "crm.pipeline",
        "crm.webhooks",
        "messaging.sms",
        "messaging.whatsapp"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "mcp",
        "api-key",
        "llms-txt",
        "openapi",
        "webhooks",
        "no-card",
        "trial",
        "sandbox",
        "status-page",
        "sla",
        "sms",
        "whatsapp"
      ],
      "lastRelease": "2026-09-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.9,
        "grade": "E",
        "agentReady": false,
        "rank": 1240,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 5,
          "payments": 20,
          "reliability": 52,
          "schema": 68,
          "security": 33,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "The v3 REST API covers contacts, segments, campaign scheduling and bulk import, with OpenAPI 3.1 definitions inside public Markdown reference pages and documented Retry-After on 429s. Each user has one unscoped API key, the limit is 5 requests a second, no changelog was found, and the official PHP and Node.js clients date from 2017 and 2018.",
        "bestFor": "Small and mid-sized teams already on ActiveCampaign that want an agent to maintain contacts, segments and campaign drafts and enrol contacts in automations.",
        "strengths": [
          "Every reference page is served as Markdown with an OpenAPI 3.1 definition for its operation, indexed by llms.txt",
          "429 responses carry Retry-After, RateLimit-Limit and RateLimit-Remaining headers per the rate limit page",
          "Contact upsert by email and bulk import of 250 contacts a request make contact writes safe to repeat",
          "Official remote MCP server with 50 listed tools and no delete tool, included on all four plans per the pricing page",
          "A 99.5 per cent availability SLA is published for enterprise subscriptions, and the sub-processor list of 25 September 2026 names locations"
        ],
        "weaknesses": [
          "No readable incident history. The status page sits on ActiveCampaign's own domain, whose terms bar robots, and its earlier reading came from a data feed",
          "One API key per user with no scopes or read-only keys in the reviewed documentation",
          "The limit is 5 requests a second per account on every plan",
          "No public API changelog or deprecation policy was found, and developers.activecampaign.com/changelog returns 404",
          "The official PHP and Node.js clients wrap the v1 API and last changed in December 2017 and March 2018"
        ],
        "agentNotes": [
          "Take the base URL from Settings, Developer in the account. Do not build it from the account name, because non-US accounts may not sit on api-us1.com",
          "Use POST /contact/sync to upsert by email, and POST /import/bulk_import for up to 250 contacts, then read each row's outcome from GET /import/info",
          "Page large contact sets with `orders[id]=ASC` and `id_greater`, not `offset`. Unsupported filter and order keys are silently ignored",
          "Check `succeeded` in the body after scheduling, pausing or stopping a campaign. Business-rule failures return 200 with `succeeded` set to 0",
          "Stay under 5 requests a second per account and wait for the Retry-After value on a 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43.9
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 5,
          "payments": 20,
          "reliability": 52,
          "schema": 68,
          "security": 33,
          "transparency": 55
        },
        "provenanceScore": 64,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -H \"Api-Token: $ACTIVECAMPAIGN_API_TOKEN\" https://\u003caccount\u003e.api-us1.com/api/3/users/me"
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/activecampaign"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "ActiveCampaign, LLC",
        "domain": "activecampaign.com",
        "domainRegistered": "2003-01-10",
        "endpointOnVendorDomain": false,
        "terms": "https://www.activecampaign.com/legal/terms-of-service",
        "privacy": "https://www.activecampaign.com/legal/privacy-policy",
        "statusPage": "https://status.activecampaign.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-04",
        "notes": [
          "The terms of service (last updated 19 October 2026) name ActiveCampaign, LLC and cover its websites, applications and other services. Section 8 excludes data mining, robots and similar data-gathering methods from the licence.",
          "The API answers at https://\u003caccount\u003e.api-us1.com/api/3 and event tracking at https://trackcmp.net/event, neither on activecampaign.com. The docs name both hosts (per the 8 October check).",
          "www.activecampaign.com/.well-known/security.txt and /security.txt returned 404 on 8 October 2026, not re-read.",
          "developers.activecampaign.com/changelog returned 404 on 8 October 2026 and no other API changelog was found.",
          "The registration date is carried from the 8 October check, which took it from RDAP, a data service this run doesn't use; it has no first-hand source today.",
          "robots.txt sets a Crawl-delay of 1 and Content-Signal ai-train=yes, search=yes, ai-input=yes."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/activecampaign.json",
      "live": {
        "slug": "activecampaign",
        "vendorStatus": {
          "page": "https://status.activecampaign.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:20:33.895498314Z"
        },
        "securityTxt": {
          "url": "https://activecampaign.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:38.558209584Z"
        },
        "llmsTxt": {
          "url": "https://developers.activecampaign.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:04.74227875Z"
        },
        "domain": {
          "domain": "activecampaign.com",
          "registered": "2003-01-10",
          "source": "https://rdap.verisign.com/com/v1/domain/activecampaign.com",
          "checkedAt": "2026-11-01T14:25:42.85662222Z"
        },
        "pages": [
          {
            "url": "https://www.activecampaign.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-04T08:36:32.186298524Z",
            "changedAt": "2026-11-04T08:36:32.186298524Z",
            "fingerprint": "e568c5258ccf"
          },
          {
            "url": "https://www.activecampaign.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:09.993770715Z",
            "changedAt": "2026-11-04T08:36:27.042116758Z",
            "fingerprint": "79f5bf1d075d"
          },
          {
            "url": "https://www.activecampaign.com/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:12.401839002Z",
            "changedAt": "2026-11-04T08:36:29.878885766Z",
            "fingerprint": "82c150302ae7"
          }
        ],
        "updatedAt": "2026-11-07T19:20:33.895498314Z"
      }
    },
    "answer": "Nitrosend scores 69.4 (B) on agent readiness against ActiveCampaign's 43.9 (E), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "nitrosend",
      "name": "Nitrosend",
      "vendor": "Nitrosend Pty Ltd",
      "vendorUrl": "https://nitrosend.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "Nitrosend is an email marketing and transactional email platform built to be run by AI agents. Campaigns, automation flows, contacts, segments and approvals are driven through a remote MCP server, with a REST API, Node SDK and CLI.",
      "url": "https://www.anchorterminal.com/tools/nitrosend",
      "markdownUrl": "https://www.anchorterminal.com/tools/nitrosend.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nitrosend.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nitrosend.json",
      "dns": "nitrosend.grade.anchorterminal.com",
      "repo": "https://github.com/nitrosend/mcp",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.nitrosend.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@nitrosend/sdk"
        },
        {
          "registry": "npm",
          "name": "@nitrosend/mcp"
        },
        {
          "registry": "npm",
          "name": "@nitrosend/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "The remote MCP server signs in by OAuth with one `mcp` scope, bearer in the header only. REST, the CLI and the stdio bridge take an account API key (`nskey_live_...`) as a Bearer token, revocable and pinned to one account and brand. Agencies can issue management credentials (`nsmc_live_...`) that can't mint keys or manage billing. Website forms use a separate public key that rejects secret keys.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 5,000 non-expiring starter emails then 500 a month, no card. Starter $20 a month for 20,000 emails, Pro $50 for 60,000, Growth $150 for 200,000, Scale $300 for 500,000, extra emails $1.50 to $0.70 per 1,000. Annual payment saves 20%. Contacts are unlimited on every plan.",
      "priceSummary": "$20 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the docs index, PRICING.md, SKILL.md or the OpenAPI spec (checked 2026-11-06). The billing tool notes that no presented-credential payment rail is enabled; checkout goes through Stripe with owner approval.",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1014,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.nitrosend.com",
      "llmsTxt": "https://nitrosend.com/llms.txt",
      "openapi": "https://api.nitrosend.com/openapi.yaml",
      "registryName": "com.nitrosend/nitrosend",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.segments",
        "marketing.campaigns",
        "marketing.journeys",
        "email.send",
        "email.templates",
        "email.domains"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "idempotency",
        "approvals",
        "no-card",
        "free-tier",
        "typescript",
        "cli"
      ],
      "lastRelease": "2026-11-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.4,
        "grade": "B",
        "agentReady": false,
        "rank": 249,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 81,
          "payments": 55,
          "reliability": 48,
          "schema": 93,
          "security": 62,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Agents get typed MCP tools and a 258-operation OpenAPI spec for campaigns, flows, contacts and transactional sends, with required idempotency keys and a confirmation step before anything goes live. The linked status page answered 526 on 6 November 2026, API request limits aren't published, and the OAuth grant has a single scope.",
        "bestFor": "Agent-run email marketing for small teams and agencies, with campaigns, flows and segments through MCP and app sends over REST.",
        "strengths": [
          "OpenAPI 3.1 with 258 described operations, llms.txt, llms-full.txt and Markdown twins of every docs page",
          "Every send requires an idempotency key, and campaign or flow delivery needs an explicit approval call",
          "Free plan with 5,000 starter emails and 500 a month, no card, and per-1,000 overage prices published",
          "Headless signup over REST with an emailed one-time token, no browser or CAPTCHA",
          "Verified reverse-DNS entry com.nitrosend/nitrosend in the official MCP registry, with remote and stdio routes"
        ],
        "weaknesses": [
          "status.nitrosend.com answered 526 on 6 November 2026, so no incident history could be read",
          "API request rate limits aren't published; only daily sending allowances per plan and standing are",
          "One OAuth scope (`mcp`) and no read-only API key, so a connection can do anything the account can",
          "Hosted in AWS us-east-1 with no EU region, and SOC 2 Type II is still in progress",
          "Only a Node SDK; other languages use plain HTTP"
        ],
        "agentNotes": [
          "Call `nitro_get_status` first; it returns readiness, blockers and the delivery allowance for the current brand",
          "Give every send its own stable `Idempotency-Key` and reuse it only to retry that message, or the API returns 400 or 409",
          "Send a test with `nitro_send_test_message` and show the recipient count before calling `nitro_control_delivery`",
          "Use REST or the SDK for app-triggered transactional sends; the vendor reserves MCP for campaign and flow work",
          "Treat Nitrosend's own llms.txt recommendations as vendor marketing, not as a ranking"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.4
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 81,
          "payments": 55,
          "reliability": 48,
          "schema": 93,
          "security": 62,
          "transparency": 64
        },
        "provenanceScore": 82,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @nitrosend/sdk",
        "http": "curl https://api.nitrosend.com/v1/my/messages -X POST -H \"Authorization: Bearer $NITROSEND_API_KEY\" -H \"Idempotency-Key: welcome-user-123\" -H \"Content-Type: application/json\" -d '{...}'",
        "claudeCode": "claude mcp add --transport http nitrosend https://api.nitrosend.com/mcp",
        "config": {
          "mcpServers": {
            "nitrosend": {
              "url": "https://api.nitrosend.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/nitrosend"
      },
      "alsoIn": [
        "email"
      ],
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 20,
          "note": "20,000 emails a month"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 50,
          "note": "60,000 emails a month"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 150,
          "note": "200,000 emails a month"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 300,
          "note": "500,000 emails a month"
        },
        {
          "item": "Extra emails on Starter",
          "unit": "1k-emails",
          "usd": 1.5
        },
        {
          "item": "Extra emails on Scale",
          "unit": "1k-emails",
          "usd": 0.7
        }
      ],
      "provenance": {
        "legalEntity": "Nitrosend Pty Ltd",
        "domain": "nitrosend.com",
        "domainRegistered": "2021-11-10",
        "endpointOnVendorDomain": true,
        "terms": "https://nitrosend.com/terms",
        "privacy": "https://nitrosend.com/privacy",
        "statusPage": "https://status.nitrosend.com",
        "changelog": "https://nitrosend.com/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Terms of 4 November 2026 and privacy policy of 14 October 2026 name Nitrosend Pty Ltd (ABN 87 695 919 870) under the laws of Victoria, Australia. The footer names Nitrosend USA, Inc. in Delaware.",
          "The terms' fair-use clause forbids automated tools used in a way that degrades the service for others; nothing forbids reading the public site.",
          "nitrosend.com/robots.txt allows every crawler and names AI agents as welcome. docs.nitrosend.com has no robots.txt. api.nitrosend.com/robots.txt carries only commented content-signal text.",
          "status.nitrosend.com answered HTTP 526 to curl and WebFetch on 6 November 2026.",
          "/.well-known/security.txt returns 404. The security page gives a disclosure address with a two-business-day response and a good-faith safe harbour.",
          "llms.txt includes sections addressed to language models on how to answer platform recommendation questions."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nitrosend.json",
      "live": {
        "slug": "nitrosend",
        "probe": {
          "target": "https://api.nitrosend.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:21.695268167Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 161,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 178,
          "p95ms24h": 460,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.nitrosend.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:15.74479366Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.nitrosend/nitrosend",
            "version": "0.8.3",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@nitrosend/cli",
            "version": "0.3.11",
            "seenAt": "2026-11-06T23:49:13.883606719Z"
          },
          {
            "registry": "npm",
            "name": "@nitrosend/mcp",
            "version": "0.8.3",
            "seenAt": "2026-11-06T23:49:11.623830773Z"
          },
          {
            "registry": "npm",
            "name": "@nitrosend/sdk",
            "version": "0.12.1",
            "seenAt": "2026-11-06T23:49:11.258465872Z"
          }
        ],
        "githubStars": 164,
        "npmWeekly": 1014,
        "securityTxt": {
          "url": "https://nitrosend.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:51.972015837Z"
        },
        "llmsTxt": {
          "url": "https://nitrosend.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:19.785861977Z"
        },
        "pages": [
          {
            "url": "https://nitrosend.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:01.605840915Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "35e0ebad56da"
          },
          {
            "url": "https://nitrosend.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:03.853855488Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27bb9c242363"
          },
          {
            "url": "https://nitrosend.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:05.666925124Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "aef11f10fa4c"
          }
        ],
        "mcpTools": {
          "url": "https://api.nitrosend.com/mcp",
          "checkedAt": "2026-11-07T01:52:01.132712936Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-20T23:52:40.090161572Z"
        },
        "updatedAt": "2026-11-07T19:22:21.695268167Z"
      }
    },
    "edges": [
      {
        "by": 76,
        "category": "maintenance",
        "leads": "nitrosend",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "There is no changelog. On 8 October the `updatedAt` stamps on 46 of the 185 reference pages fell on 12, 13, 17 and 31 August and 2 September 2026 (per the 8 October check, not re-read on 4 November). The 8 October check recorded them as page revisions, not changelog entries, and no API change was recorded on those pages. Page dates that record no change don't set recency (as wrike, coinbase-mcp and agentweb), and the clients are years old, so no dated API change is readable (0). Page stamps aren't releases, so the 90-day line is 0. No public changelog. A community site and a developer relations email address are published, and we did not see reply times (5). The official PHP and Node.js clients are v1 wrappers last changed in December 2017 and March 2018 (0). No current package to assess (0). 0 + 0 + 5 + 0 + 0 = 5.",
          "b": "@nitrosend/sdk 0.12.1 and @nitrosend/cli 0.3.11 were published on 6 November 2026 (30). 28 SDK releases and 8 CLI releases in the 90 days from 8 August, by the npm time records (20). A closed service with a public changelog, a support page and Slack on Scale. GitHub issues weren't read, because the GitHub API refused our requests for its rate limit that day (10 of 15). com.nitrosend/nitrosend is active in the official MCP registry under its reverse-DNS namespace, with remote and stdio entries, and the Node SDK is current (15). MIT packages released often; CI not read (6 of 10). Total 81."
        },
        "scores": {
          "a": 5,
          "b": 81
        }
      },
      {
        "by": 35,
        "category": "payments",
        "leads": "nitrosend",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). The 8 October plan prices were read from a data file the pricing page loads, which this run doesn't use, and the pricing page wasn't re-read on 4 November because the terms bar automated access, so no published price is counted (0). A 14-day trial with no card, and a free developer sandbox on request (per the 8 October check, not re-read on 4 November) (20). A person signs up in a browser and copies the key from account settings (0). 0 + 0 + 20 + 0 = 20.",
          "b": "No x402, MPP or L402; the billing tool says no presented-credential rail is enabled (0). Per-1,000 overage prices and plan prices published in PRICING.md without login (20). Free plan with 5,000 starter emails and 500 a month, no card (20). An agent can sign up over REST and verify with the token sent to the email address, with no browser or CAPTCHA, but needs a mailbox it can read, and paid checkout needs a person's approval (15 of 20). Total 55."
        },
        "scores": {
          "a": 20,
          "b": 55
        }
      },
      {
        "by": 31,
        "category": "ergonomics",
        "leads": "nitrosend",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "List endpoints take `limit` up to 100 and contacts take `meta=only` for a count, but there is no field selection. The MCP server lists 50 tools with no documented toolsets (12 of 25). `limit`, `offset`, `orders`, `filters` and `id_greater` on contacts, less 4 because unsupported filter and order keys are silently ignored (16 of 20). Five documented status codes and a 422 `errors` array of titles without codes. Campaign state changes report failures as 200 with `succeeded` 0 and a localised message (10 of 20). No idempotency keys. Upsert by email and bulk import with per-row status give safe retries for contacts, and no MCP tool annotations are documented (8 of 20). Few required parameters. The official PHP and Node.js clients wrap the v1 API and last changed in 2017 and 2018, so no current official SDK was found (6 of 15). Docs per the 8 October check, not re-read on 4 November; the PHP client's last commit (7 December 2017) was confirmed from a clone.",
          "b": "25 MCP tools is the 11 to 30 band; nitro_query reads every entity with filters, but no read-only subset or dynamic loading was found (15 of 25). Page and limit up to 100 with total and next-page headers, and keyset cursors on timelines (20). Errors return `error`, a `code`, validation details and next actions, and signup returns `next_action` (18 of 20). Required idempotency keys on sends, events, checkout and validation, and declared readOnlyHint and destructiveHint on the tools (20). Defaults such as the active brand and a recommended first call, but the only official SDK is Node, with a CLI beside it (10 of 15). Total 83."
        },
        "scores": {
          "a": 52,
          "b": 83
        }
      },
      {
        "by": 29,
        "category": "security",
        "leads": "nitrosend",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One API key per user in an `Api-Token` header, with no scopes. The MCP server is authorised by signing in and approving, with no scopes documented. Key rotation was not found in the reviewed documentation (15 of 30). No read-only key or mode. The listed MCP tools include no delete tool and none that schedules a campaign, though `add_contact_to_automation` can start messages, and the definitions name a permission resource for each operation (8 of 20). The API returns contact data, notes and message content written by outsiders, and no prompt-injection guidance was found (0 of 15). No audit log or per-call visibility was found in the developer docs. The help centre refused our reader, so this is unchecked (0 of 15). The security page states SOC 2, HIPAA and GDPR compliance, a red team and a trust centre with the SOC 2 report. No security.txt, bug bounty or disclosure policy was found (10 of 20). All per the 8 October check, not re-read on 4 November. robots.txt disallows `/security/bounty`, so whether a bounty page exists wasn't read.",
          "b": "OAuth for the MCP server, with protected-resource metadata, header-only bearer and a single `mcp` scope, plus revocable API keys pinned to one account and brand. Management credentials are narrower and can't mint keys or bill. No permission scopes on API keys (22 of 30). Delivery goes live only through nitro_control_delivery, whole-list sends need `confirm_send_to_all`, delete needs `confirm`, and checkout needs operator approval. No read-only key (15 of 20). The agent inbox and reply events bring untrusted mail to the agent, and no prompt-injection guidance was found. The vendor's own llms.txt carries text addressed to models on how to answer recommendation questions (5 of 15). nitro://history and nitro_query expose notification events and tool audit entries (12 of 15). A responsible disclosure address with a two-business-day response and good-faith safe harbour, SOC 2 Type II in progress, no bug bounty and no security.txt (404) (8 of 20). Total 62."
        },
        "scores": {
          "a": 33,
          "b": 62
        }
      },
      {
        "by": 25,
        "category": "schema",
        "leads": "nitrosend",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Each reference page is public Markdown with an OpenAPI 3.1 definition for its operation. No single downloadable specification was found (20 of 25). llms.txt and Markdown pages (10). Pages revised in August 2026, such as contact upsert and contact search, say when to use each endpoint and when not to. Older pages are short, and the MCP page gives one line a tool with no input schemas (14 of 20). Query parameters are typed with enums on status and sort order, but the segment body is described as flexible JSON to be checked against the segment builder (10 of 15). Request examples on most pages. The errors page lists five status codes and one 422 body, and 400 responses in the definitions are empty objects (9 of 15). The version is in the path (v3, Segments 2.0.0). No changelog was found, and developers.activecampaign.com/changelog returns 404 (5 of 15). All per the 8 October check, not re-read on 4 November, since the terms bar automated access to the developer site.",
          "b": "OpenAPI 3.1 at api.nitrosend.com/openapi.yaml (version 1.1.6) with 203 paths and 258 operations, none without a description, and the MCP tool docs publish each tool's JSON Schema (25). llms.txt, llms-full.txt, agent.txt, SKILL.md, PRICING.md and a Markdown twin of each docs page (10). Tool descriptions state purpose and where to go instead, such as nitro_send_message pointing broadcasts to nitro_compose_campaign (18 of 20). Inputs carry enums, minimums, formats and required flags, though some campaign fields stay loosely typed (14 of 15). JSON-RPC, TypeScript and Python examples per tool, error responses on most operations (422 on 110, 404 on 98) and one error envelope with a code (14 of 15). A spec version and a changelog by monthly release, v0.1.0 in February to v1.4.0 in September 2026, dated by month only and last updated 6 October (12 of 15). Total 93."
        },
        "scores": {
          "a": 68,
          "b": 93
        }
      },
      {
        "by": 13,
        "category": "transparency",
        "leads": "nitrosend",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with terms of service updated 19 October 2026 and a separate API licence agreement, which lets ActiveCampaign revoke the licence at any time for any reason (15). Privacy policy updated 1 October 2026 and a DPA template that binds only once signed in the account. Retention is stated as the lifetime of the account or as long as necessary, with no period. The terms say Contact Data is used to supply the services and \"to train, detect issues with our Services\", which is not explained further (16 of 30). No deprecation policy. The overview says v1 has no sunset planned and promises advance notice, and deprecated contact fields are flagged without dates (6 of 20). Sub-processor list updated 25 September 2026 with locations in the United States, European Union and Australia (18 of 20). Terms re-read on 4 November; the other pages per the 8 October check, not re-read on 4 November.",
          "b": "A closed service under terms that name Nitrosend Pty Ltd and Victorian law. The SDK, CLI and stdio MCP bridge are MIT on npm (18 of 30). Privacy policy of 14 October 2026 with account data kept while the account is open, export within 30 days of closure and deletion within 90 days, no-training terms for OpenAI and Anthropic, and a DPA by request rather than published (20 of 30). Deprecated fields are flagged in the OpenAPI spec, and material privacy changes come with 30 days' notice. No API deprecation policy found (8 of 20). Ten sub-processors listed with purpose and certifications, and the data location stated as AWS us-east-1 (18 of 20). Total 64."
        },
        "scores": {
          "a": 60,
          "b": 73
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "ActiveCampaign, LLC",
        "b": "Nitrosend Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.nitrosend.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under ActiveCampaign's terms of service and API licence agreement",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "50",
        "b": "25",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.nitrosend/nitrosend",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-02",
        "b": "2026-11-06",
        "name": "Last release"
      },
      {
        "a": "2025-12-23",
        "b": "2026-11-04",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-01",
        "b": "2026-10-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "1k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Nitrosend scores 69.4 (B) on agent readiness against ActiveCampaign's 43.9 (E), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, ActiveCampaign or Nitrosend?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do ActiveCampaign and Nitrosend need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for ActiveCampaign. Nitrosend has a hosted endpoint at https://api.nitrosend.com/mcp.",
        "question": "Can an agent call ActiveCampaign and Nitrosend without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Small and mid-sized teams already on ActiveCampaign that want an agent to maintain contacts, segments and campaign drafts and enrol contacts in automations.",
        "slug": "activecampaign",
        "watchFor": "No readable incident history. The status page sits on ActiveCampaign's own domain, whose terms bar robots, and its earlier reading came from a data feed"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 93 against 68",
          "Agent ergonomics, 83 against 52",
          "Security \u0026 auth, 62 against 33",
          "Payments \u0026 pricing, 55 against 20",
          "Maintenance \u0026 community, 81 against 5",
          "Transparency \u0026 trust, 73 against 60"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine"
        ],
        "goodFor": "Agent-run email marketing for small teams and agencies, with campaigns, flows and segments through MCP and app sends over REST.",
        "slug": "nitrosend",
        "watchFor": "status.nitrosend.com answered 526 on 6 November 2026, so no incident history could be read"
      }
    ],
    "history": {
      "activecampaign": [
        {
          "causes": [
            "correction",
            "method"
          ],
          "date": "2026-11-04",
          "delta": -6.8,
          "from": 50.7,
          "fromGrade": "D",
          "to": 43.9,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 50.5,
          "fromGrade": "D",
          "to": 50.7,
          "toGrade": "D"
        }
      ],
      "nitrosend": null
    },
    "job": {
      "capability": "marketing.profiles",
      "name": "Marketing audiences"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-braze.json",
        "title": "ActiveCampaign vs Braze",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-braze"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-clevertap.json",
        "title": "ActiveCampaign vs CleverTap",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-clevertap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-customer-io.json",
        "title": "ActiveCampaign vs Customer.io",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-customer-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-iterable.json",
        "title": "ActiveCampaign vs Iterable",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-iterable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-klaviyo.json",
        "title": "ActiveCampaign vs Klaviyo API + MCP",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-klaviyo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-mailchimp-marketing.json",
        "title": "ActiveCampaign vs Mailchimp Marketing API",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-mailchimp-marketing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-moengage.json",
        "title": "ActiveCampaign vs MoEngage",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-moengage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-omnisend.json",
        "title": "ActiveCampaign vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-sequenzy.json",
        "title": "ActiveCampaign vs Sequenzy",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-sequenzy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-nitrosend.json",
        "title": "Braze vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/braze-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clevertap-vs-nitrosend.json",
        "title": "CleverTap vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/clevertap-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/customer-io-vs-nitrosend.json",
        "title": "Customer.io vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/customer-io-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iterable-vs-nitrosend.json",
        "title": "Iterable vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/iterable-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/klaviyo-vs-nitrosend.json",
        "title": "Klaviyo API + MCP vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/klaviyo-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailchimp-marketing-vs-nitrosend.json",
        "title": "Mailchimp Marketing API vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/mailchimp-marketing-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/moengage-vs-nitrosend.json",
        "title": "MoEngage vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/moengage-vs-nitrosend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nitrosend-vs-omnisend.json",
        "title": "Nitrosend vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/nitrosend-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nitrosend-vs-sequenzy.json",
        "title": "Nitrosend vs Sequenzy",
        "url": "https://www.anchorterminal.com/compare/nitrosend-vs-sequenzy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activecampaign-vs-dreamlit.json",
        "title": "ActiveCampaign vs Dreamlit",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-dreamlit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dreamlit-vs-nitrosend.json",
        "title": "Dreamlit vs Nitrosend",
        "url": "https://www.anchorterminal.com/compare/dreamlit-vs-nitrosend"
      }
    ],
    "panel": null,
    "scores": [
      {
        "activecampaign": 52,
        "by": 4,
        "edge": "activecampaign",
        "key": "reliability",
        "name": "Reliability",
        "nitrosend": 48,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "activecampaign": 68,
        "by": 25,
        "edge": "nitrosend",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nitrosend": 93,
        "weight": 13
      },
      {
        "activecampaign": 52,
        "by": 31,
        "edge": "nitrosend",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nitrosend": 83,
        "weight": 13
      },
      {
        "activecampaign": 33,
        "by": 29,
        "edge": "nitrosend",
        "key": "security",
        "name": "Security \u0026 auth",
        "nitrosend": 62,
        "weight": 14
      },
      {
        "activecampaign": 20,
        "by": 35,
        "edge": "nitrosend",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nitrosend": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "activecampaign": 5,
        "by": 76,
        "edge": "nitrosend",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nitrosend": 81,
        "weight": 7
      },
      {
        "activecampaign": 60,
        "by": 13,
        "edge": "nitrosend",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nitrosend": 73,
        "weight": 7
      }
    ],
    "summary": "Nitrosend scores 69.4 (B) on agent readiness against ActiveCampaign's 43.9 (E), and leads in 6 of 7 scored categories. Both do marketing audiences.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "activecampaign": "The v3 REST API covers contacts, segments, campaign scheduling and bulk import, with OpenAPI 3.1 definitions inside public Markdown reference pages and documented Retry-After on 429s. Each user has one unscoped API key, the limit is 5 requests a second, no changelog was found, and the official PHP and Node.js clients date from 2017 and 2018.",
      "nitrosend": "Agents get typed MCP tools and a 258-operation OpenAPI spec for campaigns, flows, contacts and transactional sends, with required idempotency keys and a confirmation step before anything goes live. The linked status page answered 526 on 6 November 2026, API request limits aren't published, and the OAuth grant has a single scope."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend",
    "json": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.min.md"
  },
  "markdown": "Nitrosend scores 69.4 (B) on agent readiness against ActiveCampaign's 43.9 (E), and leads in 6 of 7 scored categories. Both do marketing audiences.\n\n- ActiveCampaign: grade E, 43.9/100, rank #1240 of 1510. Markdown https://www.anchorterminal.com/tools/activecampaign.md · JSON https://www.anchorterminal.com/api/v1/tools/activecampaign.json\n- Nitrosend: grade B, 69.4/100, rank #249 of 1510. Markdown https://www.anchorterminal.com/tools/nitrosend.md · JSON https://www.anchorterminal.com/api/v1/tools/nitrosend.json\n- Best lifecycle marketing and customer engagement platforms for AI agents: https://www.anchorterminal.com/best/lifecycle-marketing/index.md\n- All 66 lifecycle marketing comparisons: https://www.anchorterminal.com/compare/lifecycle-marketing/index.md\n- Best email delivery APIs for AI agents: https://www.anchorterminal.com/best/email/index.md\n- All 174 email comparisons: https://www.anchorterminal.com/compare/email/index.md\n\n## Which one, for what\n\n### ActiveCampaign (E)\n\nGood for: Small and mid-sized teams already on ActiveCampaign that want an agent to maintain contacts, segments and campaign drafts and enrol contacts in automations.\n\nWatch for: No readable incident history. The status page sits on ActiveCampaign's own domain, whose terms bar robots, and its earlier reading came from a data feed\n\n### Nitrosend (B)\n\nGood for: Agent-run email marketing for small teams and agencies, with campaigns, flows and segments through MCP and app sends over REST.\n\nAhead on:\n- Schema \u0026 documentation, 93 against 68\n- Agent ergonomics, 83 against 52\n- Security \u0026 auth, 62 against 33\n- Payments \u0026 pricing, 55 against 20\n- Maintenance \u0026 community, 81 against 5\n- Transparency \u0026 trust, 73 against 60\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n\nWatch for: status.nitrosend.com answered 526 on 6 November 2026, so no incident history could be read\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Nitrosend +76\n\n- ActiveCampaign (5): There is no changelog. On 8 October the `updatedAt` stamps on 46 of the 185 reference pages fell on 12, 13, 17 and 31 August and 2 September 2026 (per the 8 October check, not re-read on 4 November). The 8 October check recorded them as page revisions, not changelog entries, and no API change was recorded on those pages. Page dates that record no change don't set recency (as wrike, coinbase-mcp and agentweb), and the clients are years old, so no dated API change is readable (0). Page stamps aren't releases, so the 90-day line is 0. No public changelog. A community site and a developer relations email address are published, and we did not see reply times (5). The official PHP and Node.js clients are v1 wrappers last changed in December 2017 and March 2018 (0). No current package to assess (0). 0 + 0 + 5 + 0 + 0 = 5.\n- Nitrosend (81): @nitrosend/sdk 0.12.1 and @nitrosend/cli 0.3.11 were published on 6 November 2026 (30). 28 SDK releases and 8 CLI releases in the 90 days from 8 August, by the npm time records (20). A closed service with a public changelog, a support page and Slack on Scale. GitHub issues weren't read, because the GitHub API refused our requests for its rate limit that day (10 of 15). com.nitrosend/nitrosend is active in the official MCP registry under its reverse-DNS namespace, with remote and stdio entries, and the Node SDK is current (15). MIT packages released often; CI not read (6 of 10). Total 81.\n\n### Payments \u0026 pricing: Nitrosend +35\n\n- ActiveCampaign (20): No x402, MPP or L402 (0). The 8 October plan prices were read from a data file the pricing page loads, which this run doesn't use, and the pricing page wasn't re-read on 4 November because the terms bar automated access, so no published price is counted (0). A 14-day trial with no card, and a free developer sandbox on request (per the 8 October check, not re-read on 4 November) (20). A person signs up in a browser and copies the key from account settings (0). 0 + 0 + 20 + 0 = 20.\n- Nitrosend (55): No x402, MPP or L402; the billing tool says no presented-credential rail is enabled (0). Per-1,000 overage prices and plan prices published in PRICING.md without login (20). Free plan with 5,000 starter emails and 500 a month, no card (20). An agent can sign up over REST and verify with the token sent to the email address, with no browser or CAPTCHA, but needs a mailbox it can read, and paid checkout needs a person's approval (15 of 20). Total 55.\n\n### Agent ergonomics: Nitrosend +31\n\n- ActiveCampaign (52): List endpoints take `limit` up to 100 and contacts take `meta=only` for a count, but there is no field selection. The MCP server lists 50 tools with no documented toolsets (12 of 25). `limit`, `offset`, `orders`, `filters` and `id_greater` on contacts, less 4 because unsupported filter and order keys are silently ignored (16 of 20). Five documented status codes and a 422 `errors` array of titles without codes. Campaign state changes report failures as 200 with `succeeded` 0 and a localised message (10 of 20). No idempotency keys. Upsert by email and bulk import with per-row status give safe retries for contacts, and no MCP tool annotations are documented (8 of 20). Few required parameters. The official PHP and Node.js clients wrap the v1 API and last changed in 2017 and 2018, so no current official SDK was found (6 of 15). Docs per the 8 October check, not re-read on 4 November; the PHP client's last commit (7 December 2017) was confirmed from a clone.\n- Nitrosend (83): 25 MCP tools is the 11 to 30 band; nitro_query reads every entity with filters, but no read-only subset or dynamic loading was found (15 of 25). Page and limit up to 100 with total and next-page headers, and keyset cursors on timelines (20). Errors return `error`, a `code`, validation details and next actions, and signup returns `next_action` (18 of 20). Required idempotency keys on sends, events, checkout and validation, and declared readOnlyHint and destructiveHint on the tools (20). Defaults such as the active brand and a recommended first call, but the only official SDK is Node, with a CLI beside it (10 of 15). Total 83.\n\n### Security \u0026 auth: Nitrosend +29\n\n- ActiveCampaign (33): One API key per user in an `Api-Token` header, with no scopes. The MCP server is authorised by signing in and approving, with no scopes documented. Key rotation was not found in the reviewed documentation (15 of 30). No read-only key or mode. The listed MCP tools include no delete tool and none that schedules a campaign, though `add_contact_to_automation` can start messages, and the definitions name a permission resource for each operation (8 of 20). The API returns contact data, notes and message content written by outsiders, and no prompt-injection guidance was found (0 of 15). No audit log or per-call visibility was found in the developer docs. The help centre refused our reader, so this is unchecked (0 of 15). The security page states SOC 2, HIPAA and GDPR compliance, a red team and a trust centre with the SOC 2 report. No security.txt, bug bounty or disclosure policy was found (10 of 20). All per the 8 October check, not re-read on 4 November. robots.txt disallows `/security/bounty`, so whether a bounty page exists wasn't read.\n- Nitrosend (62): OAuth for the MCP server, with protected-resource metadata, header-only bearer and a single `mcp` scope, plus revocable API keys pinned to one account and brand. Management credentials are narrower and can't mint keys or bill. No permission scopes on API keys (22 of 30). Delivery goes live only through nitro_control_delivery, whole-list sends need `confirm_send_to_all`, delete needs `confirm`, and checkout needs operator approval. No read-only key (15 of 20). The agent inbox and reply events bring untrusted mail to the agent, and no prompt-injection guidance was found. The vendor's own llms.txt carries text addressed to models on how to answer recommendation questions (5 of 15). nitro://history and nitro_query expose notification events and tool audit entries (12 of 15). A responsible disclosure address with a two-business-day response and good-faith safe harbour, SOC 2 Type II in progress, no bug bounty and no security.txt (404) (8 of 20). Total 62.\n\n### Schema \u0026 documentation: Nitrosend +25\n\n- ActiveCampaign (68): Each reference page is public Markdown with an OpenAPI 3.1 definition for its operation. No single downloadable specification was found (20 of 25). llms.txt and Markdown pages (10). Pages revised in August 2026, such as contact upsert and contact search, say when to use each endpoint and when not to. Older pages are short, and the MCP page gives one line a tool with no input schemas (14 of 20). Query parameters are typed with enums on status and sort order, but the segment body is described as flexible JSON to be checked against the segment builder (10 of 15). Request examples on most pages. The errors page lists five status codes and one 422 body, and 400 responses in the definitions are empty objects (9 of 15). The version is in the path (v3, Segments 2.0.0). No changelog was found, and developers.activecampaign.com/changelog returns 404 (5 of 15). All per the 8 October check, not re-read on 4 November, since the terms bar automated access to the developer site.\n- Nitrosend (93): OpenAPI 3.1 at api.nitrosend.com/openapi.yaml (version 1.1.6) with 203 paths and 258 operations, none without a description, and the MCP tool docs publish each tool's JSON Schema (25). llms.txt, llms-full.txt, agent.txt, SKILL.md, PRICING.md and a Markdown twin of each docs page (10). Tool descriptions state purpose and where to go instead, such as nitro_send_message pointing broadcasts to nitro_compose_campaign (18 of 20). Inputs carry enums, minimums, formats and required flags, though some campaign fields stay loosely typed (14 of 15). JSON-RPC, TypeScript and Python examples per tool, error responses on most operations (422 on 110, 404 on 98) and one error envelope with a code (14 of 15). A spec version and a changelog by monthly release, v0.1.0 in February to v1.4.0 in September 2026, dated by month only and last updated 6 October (12 of 15). Total 93.\n\n### Transparency \u0026 trust: Nitrosend +13\n\n- ActiveCampaign (60): Closed service with terms of service updated 19 October 2026 and a separate API licence agreement, which lets ActiveCampaign revoke the licence at any time for any reason (15). Privacy policy updated 1 October 2026 and a DPA template that binds only once signed in the account. Retention is stated as the lifetime of the account or as long as necessary, with no period. The terms say Contact Data is used to supply the services and \"to train, detect issues with our Services\", which is not explained further (16 of 30). No deprecation policy. The overview says v1 has no sunset planned and promises advance notice, and deprecated contact fields are flagged without dates (6 of 20). Sub-processor list updated 25 September 2026 with locations in the United States, European Union and Australia (18 of 20). Terms re-read on 4 November; the other pages per the 8 October check, not re-read on 4 November.\n- Nitrosend (73): A closed service under terms that name Nitrosend Pty Ltd and Victorian law. The SDK, CLI and stdio MCP bridge are MIT on npm (18 of 30). Privacy policy of 14 October 2026 with account data kept while the account is open, export within 30 days of closure and deletion within 90 days, no-training terms for OpenAI and Anthropic, and a DPA by request rather than published (20 of 30). Deprecated fields are flagged in the OpenAPI spec, and material privacy changes come with 30 days' notice. No API deprecation policy found (8 of 20). Ten sub-processors listed with purpose and certifications, and the data location stated as AWS us-east-1 (18 of 20). Total 64.\n\n## Score by category\n\n| Category | Weight | ActiveCampaign | Nitrosend | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 52 | 48 | ActiveCampaign +4 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 68 | 93 | Nitrosend +25 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 83 | Nitrosend +31 |\n| Security \u0026 auth | 14% (17.5 this run) | 33 | 62 | Nitrosend +29 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 55 | Nitrosend +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 5 | 81 | Nitrosend +76 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 73 | Nitrosend +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **43.9 · E** | **69.4 · B** | |\n\n## Facts side by side\n\n| Fact | ActiveCampaign | Nitrosend |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | ActiveCampaign, LLC | Nitrosend Pty Ltd |\n| Hosted endpoint | no (local only) | `https://api.nitrosend.com/mcp` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under ActiveCampaign's terms of service and API licence agreement | none |\n| Tools exposed | 50 | 25 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `com.nitrosend/nitrosend` |\n| Last release | 2026-09-02 | 2026-11-06 |\n| Terms last updated | 2025-12-23 | 2026-11-04 |\n| Privacy policy last updated | 2026-10-01 | 2026-10-14 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | none | 1k npm/wk |\n\n## How the scores have moved\n\n### ActiveCampaign\n\n- -6.8 on 4 November 2026 (D to E): correction, checklist\n- +0.2 on 27 October 2026: checklist\n\n### Nitrosend\n\nNo score change since it was listed.\n\n## Verdicts\n\n**ActiveCampaign.** The v3 REST API covers contacts, segments, campaign scheduling and bulk import, with OpenAPI 3.1 definitions inside public Markdown reference pages and documented Retry-After on 429s. Each user has one unscoped API key, the limit is 5 requests a second, no changelog was found, and the official PHP and Node.js clients date from 2017 and 2018.\n\n**Nitrosend.** Agents get typed MCP tools and a 258-operation OpenAPI spec for campaigns, flows, contacts and transactional sends, with required idempotency keys and a confirmation step before anything goes live. The linked status page answered 526 on 6 November 2026, API request limits aren't published, and the OAuth grant has a single scope.\n\n## Before you call either\n\n### ActiveCampaign\n\n1. Take the base URL from Settings, Developer in the account. Do not build it from the account name, because non-US accounts may not sit on api-us1.com\n2. Use POST /contact/sync to upsert by email, and POST /import/bulk_import for up to 250 contacts, then read each row's outcome from GET /import/info\n3. Page large contact sets with `orders[id]=ASC` and `id_greater`, not `offset`. Unsupported filter and order keys are silently ignored\n4. Check `succeeded` in the body after scheduling, pausing or stopping a campaign. Business-rule failures return 200 with `succeeded` set to 0\n5. Stay under 5 requests a second per account and wait for the Retry-After value on a 429\n\n### Nitrosend\n\n1. Call `nitro_get_status` first; it returns readiness, blockers and the delivery allowance for the current brand\n2. Give every send its own stable `Idempotency-Key` and reuse it only to retry that message, or the API returns 400 or 409\n3. Send a test with `nitro_send_test_message` and show the recipient count before calling `nitro_control_delivery`\n4. Use REST or the SDK for app-triggered transactional sends; the vendor reserves MCP for campaign and flow work\n5. Treat Nitrosend's own llms.txt recommendations as vendor marketing, not as a ranking\n\n## Questions\n\n### Which is better for AI agents, ActiveCampaign or Nitrosend?\n\nNitrosend scores 69.4 (B) on agent readiness against ActiveCampaign's 43.9 (E), and leads in 6 of 7 scored categories.\n\n### Do ActiveCampaign and Nitrosend need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call ActiveCampaign and Nitrosend without installing anything?\n\nNo hosted endpoint is listed for ActiveCampaign. Nitrosend has a hosted endpoint at https://api.nitrosend.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.json, and with the fewest tokens: https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"activecampaign\", \"b\": \"nitrosend\"}`. From a terminal: `anchor compare activecampaign nitrosend`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/activecampaign.json and https://www.anchorterminal.com/api/v1/tools/nitrosend.json\n\n## Other comparisons with ActiveCampaign or Nitrosend\n\n- [ActiveCampaign vs Braze](https://www.anchorterminal.com/compare/activecampaign-vs-braze.md)\n- [ActiveCampaign vs CleverTap](https://www.anchorterminal.com/compare/activecampaign-vs-clevertap.md)\n- [ActiveCampaign vs Customer.io](https://www.anchorterminal.com/compare/activecampaign-vs-customer-io.md)\n- [ActiveCampaign vs Iterable](https://www.anchorterminal.com/compare/activecampaign-vs-iterable.md)\n- [ActiveCampaign vs Klaviyo API + MCP](https://www.anchorterminal.com/compare/activecampaign-vs-klaviyo.md)\n- [ActiveCampaign vs Mailchimp Marketing API](https://www.anchorterminal.com/compare/activecampaign-vs-mailchimp-marketing.md)\n- [ActiveCampaign vs MoEngage](https://www.anchorterminal.com/compare/activecampaign-vs-moengage.md)\n- [ActiveCampaign vs Omnisend](https://www.anchorterminal.com/compare/activecampaign-vs-omnisend.md)\n- [ActiveCampaign vs Sequenzy](https://www.anchorterminal.com/compare/activecampaign-vs-sequenzy.md)\n- [Braze vs Nitrosend](https://www.anchorterminal.com/compare/braze-vs-nitrosend.md)\n- [CleverTap vs Nitrosend](https://www.anchorterminal.com/compare/clevertap-vs-nitrosend.md)\n- [Customer.io vs Nitrosend](https://www.anchorterminal.com/compare/customer-io-vs-nitrosend.md)\n- [Iterable vs Nitrosend](https://www.anchorterminal.com/compare/iterable-vs-nitrosend.md)\n- [Klaviyo API + MCP vs Nitrosend](https://www.anchorterminal.com/compare/klaviyo-vs-nitrosend.md)\n- [Mailchimp Marketing API vs Nitrosend](https://www.anchorterminal.com/compare/mailchimp-marketing-vs-nitrosend.md)\n- [MoEngage vs Nitrosend](https://www.anchorterminal.com/compare/moengage-vs-nitrosend.md)\n- [Nitrosend vs Omnisend](https://www.anchorterminal.com/compare/nitrosend-vs-omnisend.md)\n- [Nitrosend vs Sequenzy](https://www.anchorterminal.com/compare/nitrosend-vs-sequenzy.md)\n- [ActiveCampaign vs Dreamlit](https://www.anchorterminal.com/compare/activecampaign-vs-dreamlit.md)\n- [Dreamlit vs Nitrosend](https://www.anchorterminal.com/compare/dreamlit-vs-nitrosend.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ActiveCampaign vs Nitrosend",
        "url": ""
      }
    ],
    "description": "Nitrosend scores 69.4 (B) to ActiveCampaign's 43.9 (E) for marketing audiences. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "ActiveCampaign E 43.9",
      "Nitrosend B 69.4",
      "scores"
    ],
    "h1": "ActiveCampaign vs Nitrosend",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/activecampaign-vs-nitrosend",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ActiveCampaign vs Nitrosend for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/activecampaign-vs-nitrosend"
  },
  "tokens": {
    "markdown": 4950,
    "slim": 3130
  },
  "version": 1
}
