{
  "data": {
    "a": {
      "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": 664,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "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-10T02:07:12.483485079Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 503,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 516,
          "p95ms24h": 634,
          "samples24h": 250,
          "samples30d": 365,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.iterable.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:06:04.999379615Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Iterable/mcp-server",
            "version": "v1.9.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-09T16:59:20.964579869Z"
          },
          {
            "registry": "npm",
            "name": "@iterable/api",
            "version": "0.13.0",
            "seenAt": "2026-10-09T16:59:19.754629208Z"
          },
          {
            "registry": "npm",
            "name": "@iterable/mcp",
            "version": "1.9.0",
            "seenAt": "2026-10-09T16:59:18.73382592Z"
          }
        ],
        "githubStars": 15,
        "npmWeekly": 3105,
        "securityTxt": {
          "url": "https://iterable.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:16.46390399Z"
        },
        "llmsTxt": {
          "url": "https://iterable.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:11.451371666Z"
        },
        "pages": [
          {
            "url": "https://iterable.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:36.886697182Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ff0025e6b74a"
          },
          {
            "url": "https://iterable.com/legal/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:32.846895067Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "919d5d7bffa8"
          },
          {
            "url": "https://iterable.com/legal/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:34.902455658Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8a2a6f05a6e1"
          }
        ],
        "updatedAt": "2026-10-10T02:07:12.483485079Z"
      }
    },
    "answer": "Omnisend scores 64.9 (B) on agent readiness against Iterable's 55.2 (C), and leads in 6 of 7 scored categories. Iterable leads on maintenance \u0026 community.",
    "b": {
      "slug": "omnisend",
      "name": "Omnisend",
      "vendor": "Omnisend, UAB",
      "vendorUrl": "https://www.omnisend.com",
      "kind": "http-api",
      "category": "lifecycle-marketing",
      "summary": "Omnisend is an email, SMS and push marketing platform for online shops. Agents reach contacts, events, segments, campaigns, automations and forms through a REST API with dated versions and an official hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/omnisend",
      "markdownUrl": "https://www.anchorterminal.com/tools/omnisend.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/omnisend.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/omnisend.json",
      "license": "Proprietary service under Omnisend's Terms of Use",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.omnisend.com/api",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve with an API key. A user creates a named key in the app under API keys, copies it once, and sends it as `Authorization: Omnisend-API-Key \u003ckey\u003e` with `Omnisend-Version: 2026-03-15`. OAuth 2.0 with the authorisation code grant and per-resource scopes is for apps, and credentials are issued through a request form in one to three business days. The hosted MCP server takes OAuth with dynamic client registration, needs the Owner, Admin, Manager or Partner role, and asks for an access level on the consent screen. Whether an API key can be limited to scopes was not found in the pages read.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 250 contacts and 500 emails a month, no credit card required, so an agent's owner can start without a contract. Paid plans scale with contacts through a slider. At the page's defaults Standard (500 contacts, 6,000 emails a month) shows $11.20 a month for the first three months against a three-month total of $48.00, and Pro (2,500 contacts, unlimited emails) $41.30 against $177.00. SMS starts at $0.007 a message. API calls aren't metered, and the page lists Omnisend MCP under every plan (https://www.omnisend.com/pricing/, checked 2026-10-09).",
      "priceSummary": "$16 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API documentation or the pricing page. The 402 response on the send campaign endpoint is an ordinary plan payment error (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 4,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://api-docs.omnisend.com/",
      "llmsTxt": "https://api-docs.omnisend.com/llms.txt",
      "capabilities": [
        "marketing.profiles",
        "marketing.events",
        "marketing.segments",
        "marketing.campaigns",
        "marketing.journeys",
        "email.templates",
        "forms.create"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "closed-source",
        "oauth",
        "llms-txt",
        "free-tier",
        "no-card",
        "status-page",
        "bug-bounty"
      ],
      "lastRelease": "2026-07-10",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.9,
        "grade": "B",
        "agentReady": false,
        "rank": 334,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 29,
          "payments": 30,
          "reliability": 81,
          "schema": 79,
          "security": 57,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The API documents 104 operations with per-operation OpenAPI definitions, cursor pagination, RFC 9457 errors and published rate limits, and the hosted MCP server fronts them with four tools and a read-only consent preset. No approval hold before a campaign send, no idempotency keys, no SLA and no official SDK were found in the reviewed documentation.",
        "bestFor": "Online shops already on Omnisend that want an agent to read campaign results, manage contacts and segments, and draft campaigns or automations.",
        "strengths": [
          "Each of the 104 documented operations has a Markdown page with its OpenAPI 3.0 definition, required scopes and rate limit, indexed in `llms.txt`",
          "The hosted MCP server lists four tools (`search`, `tool_schema`, `tool_documentation`, `execute`) in front of the whole API, with a read-only preset on the OAuth consent screen",
          "Errors follow RFC 9457 with a field-level `errors` array that reports every validation failure at once, plus a trace ID in `instance`",
          "Rate limits are published per endpoint, 400 requests a minute by default on a sliding window per brand",
          "The Free plan has 250 contacts and 500 emails a month, and the pricing page says no credit card is required",
          "The status page has an API component and its history feed shows no incident between 27 May and 9 October 2026"
        ],
        "weaknesses": [
          "No approval or hold step before `POST /campaigns/{id}/send` was found. The terms make the customer responsible for approving each action an AI agent takes",
          "No idempotency keys were found. Event `eventID` deduplicates historical events only, not real-time events that trigger automations",
          "OAuth client credentials for the REST API are issued through a request form in one to three business days, and access tokens never expire unless the user revokes them",
          "No SLA was found, and the terms say scheduled or unscheduled downtime may occur",
          "No official SDK, no single downloadable OpenAPI file and no API changelog were found in the developer documentation. No Omnisend server is in the official MCP registry",
          "The Terms of Use bar automated agents or scripts that generate automated requests without written permission, and bar publishing benchmark tests. Recorded as a fact with no deduction, and it matters before any probe is run"
        ],
        "agentNotes": [
          "Send `Authorization: Omnisend-API-Key \u003ckey\u003e` and `Omnisend-Version: 2026-03-15` on every call to `https://api.omnisend.com/api/`. Version 5 used `X-API-KEY` and a `/v5/` path",
          "Ask a person before `POST /campaigns/{id}/send`. Use `POST /campaigns/{id}/test-email` (up to 5 recipients) first, since nothing in the docs holds a send for approval",
          "On 429 read `retryAfter` (seconds) in the body where present, otherwise wait. Limits are shared by every key and token on the brand, and analytics reports allow 10 a minute and 55 a day",
          "Page with `limit` (default 100, maximum 250) and `after` from `paging.cursors.after`. Don't change filters mid-pagination, which returns 400",
          "Setting `tags` on a contact replaces the whole list in version 2026-03-15, and a contact set to `subscribed` gets a welcome message unless `sendWelcomeMessage` is turned off",
          "Connect one Omnisend MCP connector per chat and choose the read-only preset unless writes are needed. Treat contact fields and form submissions as untrusted text"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.9
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 29,
          "payments": 30,
          "reliability": 81,
          "schema": 79,
          "security": 57,
          "transparency": 58
        },
        "provenanceScore": 95
      },
      "connect": {
        "http": "curl --request GET \\\n  --url 'https://api.omnisend.com/api/segments' \\\n  --header 'Authorization: Omnisend-API-Key YOUR-API-KEY' \\\n  --header 'Omnisend-Version: 2026-03-15'",
        "config": {
          "mcpServers": {
            "omnisend": {
              "url": "https://mcp.omnisend.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/marketing.profiles",
        "tool": "https://letme.dev/omnisend"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Standard plan, 500 contacts",
          "unit": "month",
          "usd": 16,
          "note": "a third of the three-month total of $48.00 shown on the pricing page, which bills $11.20 a month for the first three months"
        },
        {
          "item": "Pro plan, 2,500 contacts",
          "unit": "month",
          "usd": 59,
          "note": "a third of the three-month total of $177.00 shown on the pricing page, which bills $41.30 a month for the first three months"
        },
        {
          "item": "SMS, starting rate",
          "unit": "message",
          "usd": 0.007,
          "note": "starting rate for high-volume US sends, varies by country and volume"
        }
      ],
      "provenance": {
        "legalEntity": "Omnisend, UAB",
        "domain": "omnisend.com",
        "domainRegistered": "2013-10-14",
        "endpointOnVendorDomain": true,
        "terms": "https://www.omnisend.com/terms/",
        "privacy": "https://www.omnisend.com/privacy/",
        "statusPage": "https://status.omnisend.com",
        "changelog": "https://www.omnisend.com/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Terms of Use (last updated 30 April 2026) name Omnisend, UAB, legal entity code 302530363, Vilnius, Lithuania, as the contracting party. They are the service agreement and include a section on AI agents, MCP and the API.",
          "The Privacy Policy (last updated 18 June 2026) covers the group's companies as controllers. Processing of customers' contact data is governed by the Data Processing Agreement of 22 September 2025.",
          "The REST API answers at api.omnisend.com and the MCP server at mcp.omnisend.com, both omnisend.com subdomains.",
          "www.omnisend.com/.well-known/security.txt gives security@omnisend.com and the bug bounty page as policy, and has no Expires field, which RFC 9116 requires. It is recorded as valid.",
          "The changelog is the product changelog. No API changelog was found in the developer documentation.",
          "RDAP for omnisend.com gives a registration date of 2013-10-14."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/omnisend.json",
      "live": {
        "slug": "omnisend",
        "probe": {
          "target": "https://api.omnisend.com/api",
          "method": "get",
          "lastAt": "2026-10-10T02:07:18.552868931Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 149,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 153,
          "p95ms24h": 258,
          "samples24h": 107,
          "samples30d": 107,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.omnisend.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:06:10.422619622Z"
        },
        "pages": [
          {
            "url": "https://www.omnisend.com/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:40.626914195Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4ee91ee1c9c0"
          },
          {
            "url": "https://www.omnisend.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:43.649861328Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a4f809f8a468"
          },
          {
            "url": "https://www.omnisend.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:45.267503247Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2fe5ad4e76ef"
          },
          {
            "url": "https://www.omnisend.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:47.254298905Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8732e799e365"
          }
        ],
        "updatedAt": "2026-10-10T02:07:18.552868931Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Iterable, Inc.",
        "b": "Omnisend, UAB",
        "name": "Vendor"
      },
      {
        "a": "https://api.iterable.com",
        "b": "https://api.omnisend.com/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Iterable's Master Services Agreement. The MCP server (@iterable/mcp) and the TypeScript API client (@iterable/api) are MIT",
        "b": "Proprietary service under Omnisend's Terms of Use",
        "name": "Licence"
      },
      {
        "a": "118",
        "b": "4",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-07-10",
        "name": "Last release"
      },
      {
        "a": "2021-05-06",
        "b": "2026-04-30",
        "name": "Terms last updated"
      },
      {
        "a": "2023-01-01",
        "b": "2026-06-18",
        "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": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "15 stars, 4.2k npm/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Omnisend scores 64.9 (B) on agent readiness against Iterable's 55.2 (C), and leads in 6 of 7 scored categories. Iterable leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Iterable or Omnisend?"
      },
      {
        "answer": "Iterable needs an API key. Omnisend takes an API key or an OAuth sign-in.",
        "question": "Do Iterable and Omnisend need an API key?"
      },
      {
        "answer": "Yes. Iterable has a hosted endpoint at https://api.iterable.com and Omnisend at https://api.omnisend.com/api.",
        "question": "Can an agent call Iterable and Omnisend without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 75 against 29"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Reliability, 81 against 66",
          "Schema \u0026 documentation, 79 against 65",
          "Agent ergonomics, 79 against 57",
          "Payments \u0026 pricing, 30 against 0",
          "Transparency \u0026 trust, 77 against 68"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Online shops already on Omnisend that want an agent to read campaign results, manage contacts and segments, and draft campaigns or automations.",
        "slug": "omnisend",
        "watchFor": "No approval or hold step before `POST /campaigns/{id}/send` was found. The terms make the customer responsible for approving each action an AI agent takes"
      }
    ],
    "job": {
      "capability": "marketing.profiles",
      "name": "Marketing audiences"
    },
    "others": [
      {
        "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-omnisend.json",
        "title": "ActiveCampaign vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/activecampaign-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-iterable.json",
        "title": "Braze vs Iterable",
        "url": "https://www.anchorterminal.com/compare/braze-vs-iterable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braze-vs-omnisend.json",
        "title": "Braze vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/braze-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clevertap-vs-iterable.json",
        "title": "CleverTap vs Iterable",
        "url": "https://www.anchorterminal.com/compare/clevertap-vs-iterable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clevertap-vs-omnisend.json",
        "title": "CleverTap vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/clevertap-vs-omnisend"
      },
      {
        "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/customer-io-vs-omnisend.json",
        "title": "Customer.io vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/customer-io-vs-omnisend"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iterable-vs-mailchimp-marketing.json",
        "title": "Iterable vs Mailchimp Marketing API",
        "url": "https://www.anchorterminal.com/compare/iterable-vs-mailchimp-marketing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iterable-vs-moengage.json",
        "title": "Iterable vs MoEngage",
        "url": "https://www.anchorterminal.com/compare/iterable-vs-moengage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/klaviyo-vs-omnisend.json",
        "title": "Klaviyo API + MCP vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/klaviyo-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailchimp-marketing-vs-omnisend.json",
        "title": "Mailchimp Marketing API vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/mailchimp-marketing-vs-omnisend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/moengage-vs-omnisend.json",
        "title": "MoEngage vs Omnisend",
        "url": "https://www.anchorterminal.com/compare/moengage-vs-omnisend"
      }
    ],
    "scores": [
      {
        "by": 15,
        "edge": "omnisend",
        "iterable": 66,
        "key": "reliability",
        "name": "Reliability",
        "omnisend": 81,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "omnisend",
        "iterable": 65,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "omnisend": 79,
        "weight": 13
      },
      {
        "by": 22,
        "edge": "omnisend",
        "iterable": 57,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "omnisend": 79,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "omnisend",
        "iterable": 55,
        "key": "security",
        "name": "Security \u0026 auth",
        "omnisend": 57,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "omnisend",
        "iterable": 0,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "omnisend": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 46,
        "edge": "iterable",
        "iterable": 75,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "omnisend": 29,
        "weight": 7
      },
      {
        "by": 9,
        "edge": "omnisend",
        "iterable": 68,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "omnisend": 77,
        "weight": 7
      }
    ],
    "summary": "Omnisend scores 64.9 (B) on agent readiness against Iterable's 55.2 (C), and leads in 6 of 7 scored categories. Iterable leads on maintenance \u0026 community. Both do marketing audiences.",
    "verdicts": {
      "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.",
      "omnisend": "The API documents 104 operations with per-operation OpenAPI definitions, cursor pagination, RFC 9457 errors and published rate limits, and the hosted MCP server fronts them with four tools and a read-only consent preset. No approval hold before a campaign send, no idempotency keys, no SLA and no official SDK were found in the reviewed documentation."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/iterable-vs-omnisend",
    "json": "https://www.anchorterminal.com/compare/iterable-vs-omnisend.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/iterable-vs-omnisend.md",
    "slim": "https://www.anchorterminal.com/compare/iterable-vs-omnisend.min.md"
  },
  "markdown": "Omnisend scores 64.9 (B) on agent readiness against Iterable's 55.2 (C), and leads in 6 of 7 scored categories. Iterable leads on maintenance \u0026 community. Both do marketing audiences.\n\n- Iterable: grade C, 55.2/100, rank #664 of 950. Markdown https://www.anchorterminal.com/tools/iterable.md · JSON https://www.anchorterminal.com/api/v1/tools/iterable.json\n- Omnisend: grade B, 64.9/100, rank #334 of 950. Markdown https://www.anchorterminal.com/tools/omnisend.md · JSON https://www.anchorterminal.com/api/v1/tools/omnisend.json\n- Best lifecycle marketing and customer engagement platforms for AI agents: https://www.anchorterminal.com/best/lifecycle-marketing/index.md\n- All 36 lifecycle marketing comparisons: https://www.anchorterminal.com/compare/lifecycle-marketing/index.md\n\n## Which one, for what\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- Maintenance \u0026 community, 75 against 29\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### Omnisend (B)\n\nGood for: Online shops already on Omnisend that want an agent to read campaign results, manage contacts and segments, and draft campaigns or automations.\n\nAhead on:\n- Reliability, 81 against 66\n- Schema \u0026 documentation, 79 against 65\n- Agent ergonomics, 79 against 57\n- Payments \u0026 pricing, 30 against 0\n- Transparency \u0026 trust, 77 against 68\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No approval or hold step before `POST /campaigns/{id}/send` was found. The terms make the customer responsible for approving each action an AI agent takes\n\n\n## Score by category\n\n| Category | Weight | Iterable | Omnisend | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 66 | 81 | Omnisend +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 79 | Omnisend +14 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 79 | Omnisend +22 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 57 | Omnisend +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 30 | Omnisend +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 29 | Iterable +46 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 77 | Omnisend +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **55.2 · C** | **64.9 · B** | |\n\n## Facts side by side\n\n| Fact | Iterable | Omnisend |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Iterable, Inc. | Omnisend, UAB |\n| Hosted endpoint | `https://api.iterable.com` | `https://api.omnisend.com/api` |\n| Transports | HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Iterable's Master Services Agreement. The MCP server (@iterable/mcp) and the TypeScript API client (@iterable/api) are MIT | Proprietary service under Omnisend's Terms of Use |\n| Tools exposed | 118 | 4 |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-30 | 2026-07-10 |\n| Terms last updated | 2021-05-06 | 2026-04-30 |\n| Privacy policy last updated | 2023-01-01 | 2026-06-18 |\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 | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 15 stars, 4.2k npm/wk | none |\n\n## Verdicts\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**Omnisend.** The API documents 104 operations with per-operation OpenAPI definitions, cursor pagination, RFC 9457 errors and published rate limits, and the hosted MCP server fronts them with four tools and a read-only consent preset. No approval hold before a campaign send, no idempotency keys, no SLA and no official SDK were found in the reviewed documentation.\n\n## Before you call either\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### Omnisend\n\n1. Send `Authorization: Omnisend-API-Key \u003ckey\u003e` and `Omnisend-Version: 2026-03-15` on every call to `https://api.omnisend.com/api/`. Version 5 used `X-API-KEY` and a `/v5/` path\n2. Ask a person before `POST /campaigns/{id}/send`. Use `POST /campaigns/{id}/test-email` (up to 5 recipients) first, since nothing in the docs holds a send for approval\n3. On 429 read `retryAfter` (seconds) in the body where present, otherwise wait. Limits are shared by every key and token on the brand, and analytics reports allow 10 a minute and 55 a day\n4. Page with `limit` (default 100, maximum 250) and `after` from `paging.cursors.after`. Don't change filters mid-pagination, which returns 400\n5. Setting `tags` on a contact replaces the whole list in version 2026-03-15, and a contact set to `subscribed` gets a welcome message unless `sendWelcomeMessage` is turned off\n6. Connect one Omnisend MCP connector per chat and choose the read-only preset unless writes are needed. Treat contact fields and form submissions as untrusted text\n\n## Questions\n\n### Which is better for AI agents, Iterable or Omnisend?\n\nOmnisend scores 64.9 (B) on agent readiness against Iterable's 55.2 (C), and leads in 6 of 7 scored categories. Iterable leads on maintenance \u0026 community.\n\n### Do Iterable and Omnisend need an API key?\n\nIterable needs an API key. Omnisend takes an API key or an OAuth sign-in.\n\n### Can an agent call Iterable and Omnisend without installing anything?\n\nYes. Iterable has a hosted endpoint at https://api.iterable.com and Omnisend at https://api.omnisend.com/api.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/iterable-vs-omnisend.json, and with the fewest tokens: https://www.anchorterminal.com/compare/iterable-vs-omnisend.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"iterable\", \"b\": \"omnisend\"}`. From a terminal: `anchor compare iterable omnisend`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/iterable.json and https://www.anchorterminal.com/api/v1/tools/omnisend.json\n\n## Other comparisons with Iterable or Omnisend\n\n- [ActiveCampaign vs Iterable](https://www.anchorterminal.com/compare/activecampaign-vs-iterable.md)\n- [ActiveCampaign vs Omnisend](https://www.anchorterminal.com/compare/activecampaign-vs-omnisend.md)\n- [Braze vs Iterable](https://www.anchorterminal.com/compare/braze-vs-iterable.md)\n- [Braze vs Omnisend](https://www.anchorterminal.com/compare/braze-vs-omnisend.md)\n- [CleverTap vs Iterable](https://www.anchorterminal.com/compare/clevertap-vs-iterable.md)\n- [CleverTap vs Omnisend](https://www.anchorterminal.com/compare/clevertap-vs-omnisend.md)\n- [Customer.io vs Iterable](https://www.anchorterminal.com/compare/customer-io-vs-iterable.md)\n- [Customer.io vs Omnisend](https://www.anchorterminal.com/compare/customer-io-vs-omnisend.md)\n- [Iterable vs Klaviyo API + MCP](https://www.anchorterminal.com/compare/iterable-vs-klaviyo.md)\n- [Iterable vs Mailchimp Marketing API](https://www.anchorterminal.com/compare/iterable-vs-mailchimp-marketing.md)\n- [Iterable vs MoEngage](https://www.anchorterminal.com/compare/iterable-vs-moengage.md)\n- [Klaviyo API + MCP vs Omnisend](https://www.anchorterminal.com/compare/klaviyo-vs-omnisend.md)\n- [Mailchimp Marketing API vs Omnisend](https://www.anchorterminal.com/compare/mailchimp-marketing-vs-omnisend.md)\n- [MoEngage vs Omnisend](https://www.anchorterminal.com/compare/moengage-vs-omnisend.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Iterable vs Omnisend",
        "url": ""
      }
    ],
    "description": "Omnisend scores 64.9 (B) to Iterable's 55.2 (C) for marketing audiences. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Iterable C 55.2",
      "Omnisend B 64.9",
      "scores"
    ],
    "h1": "Iterable vs Omnisend",
    "image": "https://www.anchorterminal.com/assets/og/compare-iterable-vs-omnisend.png",
    "path": "/compare/iterable-vs-omnisend",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Iterable vs Omnisend for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/iterable-vs-omnisend"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 680
  },
  "version": 1
}
