{
  "data": {
    "a": {
      "slug": "braze",
      "name": "Braze",
      "vendor": "Braze, Inc.",
      "vendorUrl": "https://www.braze.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "Braze is a hosted engagement platform that stores customer profiles and events, builds segments and sends campaigns and Canvas journeys by email, SMS, push and in-app message. Agents reach it through a REST API and an official remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/braze",
      "markdownUrl": "https://www.anchorterminal.com/tools/braze.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/braze.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/braze.json",
      "license": "Proprietary service under Braze's Main Subscription Agreement. The deprecated local MCP server on PyPI is MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.braze.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access follows a Braze contract or trial, with no app review or partner approval. The REST API takes a workspace API key as a Bearer header at the instance's own host (15 instances, such as https://rest.iad-01.braze.com). A dashboard user creates the key with per-endpoint permissions such as `users.track` or `campaigns.list` and an optional IP allowlist, and neither can be edited afterwards. The remote MCP server takes only OAuth (authorisation code with PKCE S256, dynamic client registration, scopes `mcp:tools`, `mcp:resources` and `mcp:operator`). A company admin must turn on MCP OAuth access, each user needs the Use MCP Server permission per workspace, and calls run with that user's dashboard permissions. Companies that use IP allowlisting can't use the MCP server.",
      "pricing": "paid",
      "pricingNotes": "No public prices. Braze sells four editions (Go, Select, Pro, Enterprise) by contract, sized by monthly active users and Action Credits, and the pricing page says there is no free plan. A 14-day free trial is open at try.braze.com, and we couldn't read whether it asks for a card. There's no separate sandbox, and API and MCP calls aren't priced on their own (https://www.braze.com/pricing, checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the MCP pages or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 71,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.braze.com/docs/api/home",
      "llmsTxt": "https://www.braze.com/llms.txt",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.campaigns",
        "marketing.journeys",
        "marketing.segments"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "api-key",
        "closed-source",
        "llms-txt",
        "sales-led",
        "enterprise",
        "eu-region",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.2,
        "grade": "C",
        "agentReady": false,
        "rank": 330,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 69,
          "payments": 10,
          "reliability": 70,
          "schema": 68,
          "security": 77,
          "transparency": 83
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API covers profiles, events, sends and exports with keys limited to named endpoints, and the remote MCP server adds 71 tools under OAuth with PKCE that return no user-level personal data. No OpenAPI document, idempotency keys, published price or SLA were found, and MCP writes run without a confirmation step.",
        "bestFor": "A company already on Braze that wants an agent to read campaign and Canvas results, manage catalogues and templates through MCP, or write profiles and trigger sends through REST.",
        "strengths": [
          "REST API keys carry per-endpoint permissions and optional IP allowlists, and a key's scope can't be edited after creation",
          "Remote MCP server with OAuth, PKCE S256, dynamic client registration and three scopes, generally available since 17 September 2026",
          "MCP tools return no user-level personal data, and the Use MCP Server permission is off by default for each workspace",
          "Rate limits published per endpoint, with `X-RateLimit-Limit`, `-Remaining` and `-Reset` headers on every response",
          "Sub-processor list of 1 June 2026 with locations, 30 days' notice of additions and hosting regions named for six countries or regions"
        ],
        "weaknesses": [
          "No public prices. Editions, monthly active users and Action Credits are sold by contract, and the pricing page says there is no free plan",
          "No OpenAPI document found. The machine-readable contract is a public Postman collection",
          "No idempotency keys on sends or `/users/track`, and Braze says it can't replay REST calls that fail during an incident",
          "71 MCP tools with no documented toolsets, 21 of them limited to beta programmes",
          "Edits made through individual MCP update tools don't appear in campaign edit history, and Operator Connect acts without per-step approval"
        ],
        "agentNotes": [
          "Use the REST host for the customer's instance, such as https://rest.iad-01.braze.com or https://rest.fra-01.braze.eu. A key sent to the wrong instance returns 401",
          "Create a REST key with only the permissions the task needs. Scope and IP allowlist can't be edited later, so a change means a new key",
          "Call `get_workspaces` first on MCP. Every other tool needs the returned workspace id as `app_group_id`, and the wrong workspace is a documented failure",
          "Use REST for profiles, events and sends. The MCP server has no user-level tools and can't trigger a message to a named user",
          "Treat `\"message\": \"success\"` as queued, not delivered. Add a `group_id` to `/users/track` and poll `/users/track/status`, and don't resend a trigger call blindly"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.2
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 69,
          "payments": 10,
          "reliability": 70,
          "schema": 68,
          "security": 77,
          "transparency": 69
        },
        "provenanceScore": 96
      },
      "connect": {
        "http": "curl --location -g --request GET 'https://rest.iad-01.braze.com/campaigns/list?page=0\u0026include_archived=false\u0026sort_direction=desc' \\\n--header 'Authorization: Bearer YOUR-REST-API-KEY'",
        "config": {
          "mcpServers": {
            "braze": {
              "url": "https://mcp.braze.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/braze"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Braze, Inc.",
        "domain": "braze.com",
        "domainRegistered": "2000-01-19",
        "endpointOnVendorDomain": true,
        "terms": "https://www.braze.com/company/legal/terms",
        "privacy": "https://www.braze.com/company/legal/privacy",
        "statusPage": "https://status.braze.com",
        "changelog": "https://www.braze.com/docs/releases/home",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Main Subscription Agreement (last updated 13 October 2025) names Braze, Inc., and the privacy policy (last updated 23 June 2026) says it is a U.S. company headquartered in New York.",
          "REST hosts are on braze.com for the US, Australia, Indonesia, Japan and South Korea and on braze.eu for the EU. The MCP server is at mcp.braze.com and mcp.braze.eu.",
          "www.braze.com/.well-known/security.txt expires 2031-01-01, gives security@braze.com and points its policy to hackerone.com/braze_inc.",
          "status.braze.com redirects to braze.statuspage.io.",
          "RDAP for braze.com gives a registration date of 2000-01-19.",
          "The DPA (revision 28 August 2025), the sub-processor list (1 June 2026) and the security datasheet (14 April 2026) are PDFs linked from braze.com/company/legal."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/braze.json",
      "live": {
        "slug": "braze",
        "probe": {
          "target": "https://mcp.braze.com/mcp",
          "method": "get",
          "lastAt": "2026-10-08T17:36:32.017450571Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 270,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 271,
          "p95ms24h": 319,
          "samples24h": 25,
          "samples30d": 25,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.braze.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T17:38:05.408926683Z"
        },
        "securityTxt": {
          "url": "https://braze.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2031-01-01T04:59:00.000Z",
          "checkedAt": "2026-10-08T15:39:06.359227057Z"
        },
        "updatedAt": "2026-10-08T17:38:05.408926683Z"
      }
    },
    "answer": "Braze scores 61.2 (C) on agent readiness against Iterable's 55.2 (C), and leads in 5 of 7 scored categories. Iterable leads on agent ergonomics and maintenance \u0026 community.",
    "b": {
      "slug": "iterable",
      "name": "Iterable",
      "vendor": "Iterable, Inc.",
      "vendorUrl": "https://iterable.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "Iterable is a hosted customer engagement platform that stores user profiles and events and sends campaigns and journeys by email, SMS, push, in-app and WhatsApp. Agents reach it through a REST API and an official local MCP server, in beta.",
      "url": "https://www.anchorterminal.com/tools/iterable",
      "markdownUrl": "https://www.anchorterminal.com/tools/iterable.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/iterable.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/iterable.json",
      "repo": "https://github.com/Iterable/mcp-server",
      "license": "Proprietary service under Iterable's Master Services Agreement. The MCP server (@iterable/mcp) and the TypeScript API client (@iterable/api) are MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.iterable.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@iterable/mcp"
        },
        {
          "registry": "npm",
          "name": "@iterable/api"
        }
      ],
      "auth": "api-key",
      "authNotes": "Access needs an Iterable customer account, which is sold through sales. A project member creates an API key in the app and sends it in the `Api-Key` header. The specification names five key types (Server-side, Read-only, Mobile, Web, JavaScript) and lists which types each operation accepts. 148 of 159 operations accept a server-side key and 30 accept a read-only key. No OAuth, app review or partner approval was found. The MCP server reads the same key from the system keychain or `ITERABLE_API_KEY`, and adds its own flags for PII, writes and sends. The key guide on the support centre couldn't be read, so rotation and expiry are unchecked.",
      "pricing": "paid",
      "pricingNotes": "No public prices. https://iterable.com/pricing/ redirects to the home page, whose button asks for a demo, and no trial, free tier or self-serve signup was found. The MCP server README mentions sandbox projects, which exist inside a customer organisation, so an agent can't start without a contract. API and MCP calls aren't priced per call in any page we read (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API specification, the MCP server repository or the legal pages (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 118,
      "popularity": {
        "githubStars": 15,
        "npmWeekly": 4178,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://api.iterable.com/api/docs",
      "llmsTxt": "https://iterable.com/llms.txt",
      "openapi": "https://api.iterable.com/api-docs",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.segments",
        "marketing.campaigns",
        "marketing.journeys",
        "email.templates"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "api-key",
        "openapi",
        "closed-source",
        "sales-led",
        "eu-region",
        "typescript",
        "status-page",
        "soc2",
        "beta-mcp"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.2,
        "grade": "C",
        "agentReady": false,
        "rank": 457,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 75,
          "payments": 0,
          "reliability": 66,
          "schema": 65,
          "security": 55,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API publishes a Swagger 2.0 contract with 159 operations, typed API keys including a read-only type, and per-endpoint rate limits. The MCP server starts read-only, with PII, writes and sends each switched on separately. No price, trial or self-serve signup is published, and the support centre, which holds the API guides, refused automated readers.",
        "bestFor": "A team already on Iterable that wants an agent to read campaigns, templates and metrics, or to update profiles, track events and trigger sends under review.",
        "strengths": [
          "Public Swagger 2.0 specification at api.iterable.com/api-docs with 159 operations and 210 schemas, the same for the EU data centre",
          "Each operation lists the key types it accepts (Server-side, Read-only, Mobile, Web, JavaScript), and 30 operations accept a read-only key",
          "The MCP server exposes 31 read tools by default. PII, writes and sends are three separate flags stored per key",
          "53 operations state a numeric rate limit, for example 500 requests a second per project on `POST /api/users/update`",
          "SOC 2 Type 2, ISO 27001 and HIPAA listed on the trust centre, and a sub-processor list with locations updated August 2026"
        ],
        "weaknesses": [
          "No public price, trial or self-serve signup. iterable.com/pricing redirects to the home page, which asks for a demo",
          "No idempotency keys in the specification, and only 6 of 159 operations document a 429 response",
          "The MCP server is in beta under terms that allow change or withdrawal without notice, and carries no tool annotations",
          "No published SLA or API deprecation policy was found in the Master Services Agreement or the product-specific terms",
          "The API can create static lists and read list members, but no operation builds a dynamic segment or edits a journey"
        ],
        "agentNotes": [
          "Send the key in the `Api-Key` header, and use api.eu.iterable.com for projects in the EU data centre",
          "Wait at least 60 seconds after `POST /api/users/update` before a dependent call such as `POST /api/email/target`, as the specification advises",
          "Keep the MCP server on its default read-only setup unless a person reviews each call. Writes and sends act on real users and can't be undone",
          "Pass `suppressionListIds` to `POST /api/campaigns/create`. Global suppression lists aren't added automatically",
          "Read `rateLimitReset` in the 429 `params` on user update calls for the seconds to wait. List member reads allow 5 requests a minute per project"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.2
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 75,
          "payments": 0,
          "reliability": 66,
          "schema": 65,
          "security": 55,
          "transparency": 57
        },
        "provenanceScore": 79
      },
      "connect": {
        "install": "npx @iterable/mcp setup",
        "claudeCode": "claude mcp add iterable -- npx -y @iterable/mcp",
        "config": {
          "mcpServers": {
            "iterable": {
              "args": [
                "-y",
                "@iterable/mcp"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/iterable"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Iterable, Inc.",
        "domain": "iterable.com",
        "domainRegistered": "2011-12-28",
        "endpointOnVendorDomain": true,
        "terms": "https://iterable.com/legal/terms/",
        "privacy": "https://iterable.com/legal/privacy-policy/",
        "statusPage": "https://status.iterable.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Master Services Agreement (last updated 8 June 2026) names Iterable, Inc., a Delaware corporation. The privacy notice gives 201 Spear Street, Suite 1050, San Francisco, CA 94105.",
          "The website terms of service are dated 6 May 2021 and the privacy notice 14 July 2023.",
          "The API answers at api.iterable.com and api.eu.iterable.com, both on the vendor's domain.",
          "iterable.com/.well-known/security.txt and app.iterable.com/.well-known/security.txt return 404. Reports go through the responsible disclosure policy or security@iterable.com.",
          "No changelog URL is recorded because the release notes sit on support.iterable.com, which answered with a Cloudflare check.",
          "RDAP for iterable.com gives a registration date of 2011-12-28."
        ],
        "score": 79
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/iterable.json",
      "live": {
        "slug": "iterable",
        "probe": {
          "target": "https://api.iterable.com",
          "method": "get",
          "lastAt": "2026-10-08T17:36:37.896335327Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 582,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 537,
          "p95ms24h": 630,
          "samples24h": 25,
          "samples30d": 25,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.iterable.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T17:24:44.307213633Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Iterable/mcp-server",
            "version": "v1.9.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-08T16:17:13.579373494Z"
          },
          {
            "registry": "npm",
            "name": "@iterable/api",
            "version": "0.13.0",
            "seenAt": "2026-10-08T16:17:13.325775553Z"
          },
          {
            "registry": "npm",
            "name": "@iterable/mcp",
            "version": "1.9.0",
            "seenAt": "2026-10-08T16:17:09.206564109Z"
          }
        ],
        "githubStars": 15,
        "npmWeekly": 4178,
        "securityTxt": {
          "url": "https://iterable.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:44.079638167Z"
        },
        "updatedAt": "2026-10-08T17:36:37.896335327Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Braze, Inc.",
        "b": "Iterable, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.braze.com/mcp",
        "b": "https://api.iterable.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Braze's Main Subscription Agreement. The deprecated local MCP server on PyPI is MIT",
        "b": "Proprietary service under Iterable's Master Services Agreement. The MCP server (@iterable/mcp) and the TypeScript API client (@iterable/api) are MIT",
        "name": "Licence"
      },
      {
        "a": "71",
        "b": "118",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-17",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "2025-10-13",
        "b": "2021-05-06",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-23",
        "b": "2023-01-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "15 stars, 4.2k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Braze scores 61.2 (C) on agent readiness against Iterable's 55.2 (C), and leads in 5 of 7 scored categories. Iterable leads on agent ergonomics and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Braze or Iterable?"
      },
      {
        "answer": "Braze takes an API key or an OAuth sign-in. Iterable needs an API key.",
        "question": "Do Braze and Iterable need an API key?"
      },
      {
        "answer": "Yes. Braze has a hosted endpoint at https://mcp.braze.com/mcp and Iterable at https://api.iterable.com.",
        "question": "Can an agent call Braze and Iterable without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 77 against 55",
          "Payments \u0026 pricing, 10 against 0",
          "Transparency \u0026 trust, 83 against 68"
        ],
        "also": null,
        "goodFor": "A company already on Braze that wants an agent to read campaign and Canvas results, manage catalogues and templates through MCP, or write profiles and trigger sends through REST.",
        "slug": "braze",
        "watchFor": "No public prices. Editions, monthly active users and Action Credits are sold by contract, and the pricing page says there is no free plan"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 57 against 50",
          "Maintenance \u0026 community, 75 against 69"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "A team already on Iterable that wants an agent to read campaigns, templates and metrics, or to update profiles, track events and trigger sends under review.",
        "slug": "iterable",
        "watchFor": "No public price, trial or self-serve signup. iterable.com/pricing redirects to the home page, which asks for a demo"
      }
    ],
    "job": {
      "capability": "marketing.profiles",
      "name": "Marketing profiles"
    },
    "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-iterable.json",
        "title": "ActiveCampaign vs Iterable",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-iterable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-customer-io.json",
        "title": "Braze vs Customer.io",
        "url": "https://www.anchorterminal.com/compare/braze-vs-customer-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-klaviyo.json",
        "title": "Braze vs Klaviyo API + MCP",
        "url": "https://www.anchorterminal.com/compare/braze-vs-klaviyo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/customer-io-vs-iterable.json",
        "title": "Customer.io vs Iterable",
        "url": "https://www.anchorterminal.com/compare/customer-io-vs-iterable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iterable-vs-klaviyo.json",
        "title": "Iterable vs Klaviyo API + MCP",
        "url": "https://www.anchorterminal.com/compare/iterable-vs-klaviyo"
      }
    ],
    "scores": [
      {
        "braze": 70,
        "by": 4,
        "edge": "braze",
        "iterable": 66,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "braze": 68,
        "by": 3,
        "edge": "braze",
        "iterable": 65,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "braze": 50,
        "by": 7,
        "edge": "iterable",
        "iterable": 57,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "braze": 77,
        "by": 22,
        "edge": "braze",
        "iterable": 55,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "braze": 10,
        "by": 10,
        "edge": "braze",
        "iterable": 0,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "braze": 69,
        "by": 6,
        "edge": "iterable",
        "iterable": 75,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "braze": 83,
        "by": 15,
        "edge": "braze",
        "iterable": 68,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Braze scores 61.2 (C) on agent readiness against Iterable's 55.2 (C), and leads in 5 of 7 scored categories. Iterable leads on agent ergonomics and maintenance \u0026 community. Both do marketing profiles.",
    "verdicts": {
      "braze": "The REST API covers profiles, events, sends and exports with keys limited to named endpoints, and the remote MCP server adds 71 tools under OAuth with PKCE that return no user-level personal data. No OpenAPI document, idempotency keys, published price or SLA were found, and MCP writes run without a confirmation step.",
      "iterable": "The REST API publishes a Swagger 2.0 contract with 159 operations, typed API keys including a read-only type, and per-endpoint rate limits. The MCP server starts read-only, with PII, writes and sends each switched on separately. No price, trial or self-serve signup is published, and the support centre, which holds the API guides, refused automated readers."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/braze-vs-iterable",
    "json": "https://www.anchorterminal.com/compare/braze-vs-iterable.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/braze-vs-iterable.md",
    "slim": "https://www.anchorterminal.com/compare/braze-vs-iterable.min.md"
  },
  "markdown": "Braze scores 61.2 (C) on agent readiness against Iterable's 55.2 (C), and leads in 5 of 7 scored categories. Iterable leads on agent ergonomics and maintenance \u0026 community. Both do marketing profiles.\n\n- Braze: grade C, 61.2/100, rank #330 of 629. Markdown https://www.anchorterminal.com/tools/braze.md · JSON https://www.anchorterminal.com/api/v1/tools/braze.json\n- Iterable: grade C, 55.2/100, rank #457 of 629. Markdown https://www.anchorterminal.com/tools/iterable.md · JSON https://www.anchorterminal.com/api/v1/tools/iterable.json\n\n## Which one, for what\n\n### Braze (C)\n\nGood for: A company already on Braze that wants an agent to read campaign and Canvas results, manage catalogues and templates through MCP, or write profiles and trigger sends through REST.\n\nAhead on:\n- Security \u0026 auth, 77 against 55\n- Payments \u0026 pricing, 10 against 0\n- Transparency \u0026 trust, 83 against 68\n\nWatch for: No public prices. Editions, monthly active users and Action Credits are sold by contract, and the pricing page says there is no free plan\n\n### Iterable (C)\n\nGood for: A team already on Iterable that wants an agent to read campaigns, templates and metrics, or to update profiles, track events and trigger sends under review.\n\nAhead on:\n- Agent ergonomics, 57 against 50\n- Maintenance \u0026 community, 75 against 69\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No public price, trial or self-serve signup. iterable.com/pricing redirects to the home page, which asks for a demo\n\n\n## Score by category\n\n| Category | Weight | Braze | Iterable | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 66 | Braze +4 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 68 | 65 | Braze +3 |\n| Agent ergonomics | 13% (16.2 this run) | 50 | 57 | Iterable +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 77 | 55 | Braze +22 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 0 | Braze +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 69 | 75 | Iterable +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 83 | 68 | Braze +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61.2 · C** | **55.2 · C** | |\n\n## Facts side by side\n\n| Fact | Braze | Iterable |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Braze, Inc. | Iterable, Inc. |\n| Hosted endpoint | `https://mcp.braze.com/mcp` | `https://api.iterable.com` |\n| Transports | HTTP, Streamable HTTP | HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Braze's Main Subscription Agreement. The deprecated local MCP server on PyPI is MIT | Proprietary service under Iterable's Master Services Agreement. The MCP server (@iterable/mcp) and the TypeScript API client (@iterable/api) are MIT |\n| Tools exposed | 71 | 118 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-17 | 2026-09-30 |\n| Terms last updated | 2025-10-13 | 2021-05-06 |\n| Privacy policy last updated | 2026-06-23 | 2023-01-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | none | 15 stars, 4.2k npm/wk |\n\n## Verdicts\n\n**Braze.** The REST API covers profiles, events, sends and exports with keys limited to named endpoints, and the remote MCP server adds 71 tools under OAuth with PKCE that return no user-level personal data. No OpenAPI document, idempotency keys, published price or SLA were found, and MCP writes run without a confirmation step.\n\n**Iterable.** The REST API publishes a Swagger 2.0 contract with 159 operations, typed API keys including a read-only type, and per-endpoint rate limits. The MCP server starts read-only, with PII, writes and sends each switched on separately. No price, trial or self-serve signup is published, and the support centre, which holds the API guides, refused automated readers.\n\n## Before you call either\n\n### Braze\n\n1. Use the REST host for the customer's instance, such as https://rest.iad-01.braze.com or https://rest.fra-01.braze.eu. A key sent to the wrong instance returns 401\n2. Create a REST key with only the permissions the task needs. Scope and IP allowlist can't be edited later, so a change means a new key\n3. Call `get_workspaces` first on MCP. Every other tool needs the returned workspace id as `app_group_id`, and the wrong workspace is a documented failure\n4. Use REST for profiles, events and sends. The MCP server has no user-level tools and can't trigger a message to a named user\n5. Treat `\"message\": \"success\"` as queued, not delivered. Add a `group_id` to `/users/track` and poll `/users/track/status`, and don't resend a trigger call blindly\n\n### Iterable\n\n1. Send the key in the `Api-Key` header, and use api.eu.iterable.com for projects in the EU data centre\n2. Wait at least 60 seconds after `POST /api/users/update` before a dependent call such as `POST /api/email/target`, as the specification advises\n3. Keep the MCP server on its default read-only setup unless a person reviews each call. Writes and sends act on real users and can't be undone\n4. Pass `suppressionListIds` to `POST /api/campaigns/create`. Global suppression lists aren't added automatically\n5. Read `rateLimitReset` in the 429 `params` on user update calls for the seconds to wait. List member reads allow 5 requests a minute per project\n\n## Questions\n\n### Which is better for AI agents, Braze or Iterable?\n\nBraze scores 61.2 (C) on agent readiness against Iterable's 55.2 (C), and leads in 5 of 7 scored categories. Iterable leads on agent ergonomics and maintenance \u0026 community.\n\n### Do Braze and Iterable need an API key?\n\nBraze takes an API key or an OAuth sign-in. Iterable needs an API key.\n\n### Can an agent call Braze and Iterable without installing anything?\n\nYes. Braze has a hosted endpoint at https://mcp.braze.com/mcp and Iterable at https://api.iterable.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/braze-vs-iterable.json, and with the fewest tokens: https://www.anchorterminal.com/compare/braze-vs-iterable.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"braze\", \"b\": \"iterable\"}`. From a terminal: `anchor compare braze iterable`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/braze.json and https://www.anchorterminal.com/api/v1/tools/iterable.json\n\n## Other comparisons with Braze or Iterable\n\n- [ActiveCampaign vs Braze](https://www.anchorterminal.com/compare/activecampaign-vs-braze.md)\n- [ActiveCampaign vs Iterable](https://www.anchorterminal.com/compare/activecampaign-vs-iterable.md)\n- [Braze vs Customer.io](https://www.anchorterminal.com/compare/braze-vs-customer-io.md)\n- [Braze vs Klaviyo API + MCP](https://www.anchorterminal.com/compare/braze-vs-klaviyo.md)\n- [Customer.io vs Iterable](https://www.anchorterminal.com/compare/customer-io-vs-iterable.md)\n- [Iterable vs Klaviyo API + MCP](https://www.anchorterminal.com/compare/iterable-vs-klaviyo.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Braze vs Iterable",
        "url": ""
      }
    ],
    "description": "Braze scores 61.2 (C) on agent readiness against Iterable's 55.2 (C), and leads in 5 of 7 scored categories. Iterable leads on agent ergonomics and maintenance \u0026 community. Both do marketing profiles. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Braze C 61.2",
      "Iterable C 55.2",
      "scores"
    ],
    "h1": "Braze vs Iterable",
    "image": "https://www.anchorterminal.com/assets/og/compare-braze-vs-iterable.png",
    "path": "/compare/braze-vs-iterable",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Braze vs Iterable for AI agents, C 61.2 vs C 55.2 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/braze-vs-iterable"
  },
  "tokens": {
    "markdown": 2050,
    "slim": 680
  },
  "version": 1
}
