{
  "data": {
    "a": {
      "slug": "commercetools",
      "name": "commercetools",
      "vendor": "commercetools GmbH",
      "vendorUrl": "https://commercetools.com",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Headless commerce platform from commercetools GmbH in Munich, with HTTP and GraphQL APIs for catalogue, carts, checkout, orders and customers. Agents reach it through the API, four SDKs or a managed MCP server per project.",
      "url": "https://www.anchorterminal.com/tools/commercetools",
      "markdownUrl": "https://www.anchorterminal.com/tools/commercetools.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/commercetools.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/commercetools.json",
      "repo": "https://github.com/commercetools/commercetools-api-reference",
      "license": "Proprietary service under the commercetools Master Service Agreement. The API specifications are public, the SDKs are MIT (TypeScript, PHP) or Apache 2.0 (Java, .NET) and Commerce MCP is MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.{region}.commercetools.com/{projectKey}",
      "packages": [
        {
          "registry": "npm",
          "name": "@commercetools/platform-sdk"
        },
        {
          "registry": "npm",
          "name": "@commercetools/commerce-mcp"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0. A person creates an API Client in the Merchant Centre (or through the API Clients API) with chosen scopes, and the secret is shown once. The client credentials flow at https://auth.{region}.commercetools.com/oauth/token returns a Bearer token valid for 48 hours by default. Scopes are view or manage per resource and per store, and `manage_project` grants everything. Password, anonymous-session and refresh flows exist for shoppers. A managed MCP server takes a token scoped to `mcp:{projectKey}:{mcpServerKey}` (30 days at most), OAuth client credentials discovery, or a browser sign-in with an Identity account. Access is self-serve through the trial sign-up form.",
      "pricing": "paid",
      "pricingNotes": "No public prices. The pricing page describes order-based pricing and sends buyers to sales, and the product is also sold through the AWS and Google Cloud marketplaces. A 60-day trial has every core commerce API and the Merchant Centre, needs no card and does not convert automatically, so an agent can start without a contract. InStore, Frontend and the agent products are not in the trial (https://commercetools.com/free-trial, checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 221261,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.commercetools.com/api/",
      "llmsTxt": "https://docs.commercetools.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/commercetools/commercetools-api-reference/main/oas/api/openapi.yaml",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "closed-source",
        "mcp",
        "oauth",
        "openapi",
        "graphql",
        "llms-txt",
        "typescript",
        "java",
        "php",
        "dotnet",
        "webhooks",
        "sales-led",
        "status-page",
        "sla",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 110,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 85,
          "payments": 20,
          "reliability": 73,
          "schema": 86,
          "security": 70,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A public OpenAPI file with 822 operations, per-resource OAuth scopes and a managed MCP server whose tools an administrator selects per agent. Prices are quoted by sales only, and the HTTP API publishes no platform-wide rate limit. A 60-day trial needs no card.",
        "bestFor": "Enterprises that already run or plan a composable commerce stack and want agents working across catalogue, pricing, carts and orders under scoped credentials.",
        "strengths": [
          "Public OpenAPI 3.0 file with 822 operations, plus RAML, a GraphQL schema, llms.txt and Markdown copies of every docs page",
          "OAuth 2.0 API Clients with view and manage scopes per resource, a token revocation endpoint, and no tokens accepted in URL parameters",
          "Managed MCP server per agent with a chosen tool list, field filtering and redaction, and readOnlyHint and destructiveHint on every tool since 1 October 2026",
          "99.9 per cent monthly availability SLA with service credits, published in the docs",
          "60-day trial with every core commerce API and no card"
        ],
        "weaknesses": [
          "No public price. The pricing page describes order-based pricing and sends buyers to sales",
          "The docs state that the HTTP API has no single documented platform-wide rate limit",
          "Managed MCP Servers, AI Hub and Platform Insights are excluded from the standard SLA",
          "API-wide change tracking needs the paid Audit Log Premium add-on. Audit Log Basic records Merchant Centre changes only",
          "No security.txt and no bug bounty found, and audit reports are released under NDA"
        ],
        "agentNotes": [
          "Use the auth and API hosts for the project's region, such as auth.europe-west1.gcp.commercetools.com and api.europe-west1.gcp.commercetools.com. There are five regions",
          "Send the resource's current `version` with every update or delete. On 409 ConcurrentModification, re-read the resource and retry only if the change is still needed",
          "Retry 502 and 503 with exponential backoff from 200 ms, honour Retry-After, and check Content-Type before parsing an error body",
          "For MCP, ask for an API Client scoped to `mcp:{projectKey}:{mcpServerKey}` and a server limited to the tools the task needs, not `all`",
          "Keep page size at or under 500 and offset at or under 10,000. Product Search returns at most 100 per request"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.3
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 85,
          "payments": 20,
          "reliability": 73,
          "schema": 86,
          "security": 70,
          "transparency": 75
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "npm install @commercetools/platform-sdk",
        "http": "curl https://{auth_host}/oauth/token -X POST \\\n  --basic --user \"{clientId}:{clientSecret}\" \\\n  -d \"grant_type=client_credentials\u0026scope=manage_project:{projectKey}\"\ncurl https://api.{region}.commercetools.com/{projectKey}/ \\\n  -X GET \\\n  -H \"Authorization: Bearer ${BEARER_TOKEN}\"",
        "config": {
          "mcpServers": {
            "managed-mcp-servers": {
              "headers": {
                "Authorization": "Bearer \u003cyour-ctp-token\u003e"
              },
              "type": "http",
              "url": "\u003cyour-mcp-server-url\u003e"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/commercetools"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "commercetools GmbH",
        "domain": "commercetools.com",
        "domainRegistered": "2002-05-13",
        "endpointOnVendorDomain": true,
        "terms": "https://commercetools.com/msa",
        "privacy": "https://commercetools.com/privacy",
        "statusPage": "https://status.commercetools.com",
        "changelog": "https://docs.commercetools.com/docs/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The imprint names commercetools GmbH, Adams-Lehmann-Str. 44, 80797 Munich, Amtsgericht München HRB 161496.",
          "The Master Service Agreement at commercetools.com/msa governs paid use once an Order Form is signed. Trial use falls under the 60 Days Trial Agreement at commercetools.com/trial-agreement, last updated 24 July 2024.",
          "The privacy notice covers the websites in section III and customers' use of the service in section IV. Data that customers store in the platform falls under the DPA at commercetools.com/dpa, last updated 1 October 2024.",
          "commercetools.com/.well-known/security.txt and docs.commercetools.com/.well-known/security.txt both return 404.",
          "API, auth and MCP hosts are subdomains of commercetools.com for each region. RDAP gives a registration date of 2002-05-13 for commercetools.com."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/commercetools.json",
      "live": {
        "slug": "commercetools",
        "probe": {
          "target": "https://api.{region}.commercetools.com/{projectKey}",
          "method": "get",
          "lastAt": "2026-10-08T19:08:43.983307366Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "invalid character \"{\" in host name",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 19,
          "samples30d": 19,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 19,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-08T17:31:33.341731081Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "invalid character \"{\" in host name"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.commercetools.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T17:50:31.099632039Z"
        },
        "pages": [
          {
            "url": "https://docs.commercetools.com/docs/release-notes",
            "kind": "changelog",
            "status": 404,
            "checkedAt": "2026-10-08T18:18:30.793646678Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://commercetools.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:37.91248595Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "58be3463d4f5"
          },
          {
            "url": "https://commercetools.com/msa",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:35.711051914Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c72525a36335"
          }
        ],
        "updatedAt": "2026-10-08T19:08:43.983307366Z"
      }
    },
    "answer": "commercetools and Vendure score within a point of each other on agent readiness, 71.3 (BB) and 70.9 (BB). Vendure leads on reliability, schema \u0026 documentation and payments \u0026 pricing.",
    "b": {
      "slug": "vendure",
      "name": "Vendure",
      "vendor": "Vendure (Elevantiq GmbH)",
      "vendorUrl": "https://vendure.io",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Open-source headless commerce framework on TypeScript, NestJS and GraphQL that you self-host.",
      "url": "https://www.anchorterminal.com/tools/vendure",
      "markdownUrl": "https://www.anchorterminal.com/tools/vendure.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vendure.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vendure.json",
      "repo": "https://github.com/vendurehq/vendure",
      "license": "GPL-3.0-or-later",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://readonlydemo.vendure.io/shop-api",
      "packages": [
        {
          "registry": "npm",
          "name": "@vendure/core"
        }
      ],
      "auth": "mixed",
      "authNotes": "Shop API is anonymous for browsing and cart, with a session token (bearer header or cookie) that carries the active order. Customer login and Admin API use the same session tokens after login. API key authentication arrived in v3.6. You set everything up on your own server; there is no vendor-hosted API for Core.",
      "pricing": "freemium",
      "pricingNotes": "Vendure Core is free under GPLv3; self-hosted you pay only for your own servers and database. Vendure Platform is a flat yearly subscription quoted per project (no GMV, order or user fees) and adds B2B tooling, a commercial licence and support. Vendure Cloud is priced by environments and resources, currently for paid design partners only, with general availability planned for Q1 2027. No transaction fees (https://vendure.io/pricing).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No payments layer for agents; payment handlers are plugins you configure (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 8487,
        "npmWeekly": 29655,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.vendure.io",
      "llmsTxt": "https://docs.vendure.io/llms.txt",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "typescript",
        "llms-txt",
        "freemium",
        "enterprise"
      ],
      "lastRelease": "2026-09-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.9,
        "grade": "BB",
        "agentReady": true,
        "rank": 117,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 45,
          "reliability": 89,
          "schema": 91,
          "security": 65,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "3.7.3 on 2 September 2026 fixed an unauthenticated takeover of SSO customer accounts through registerCustomerAccount (GHSA-wr5h-x3x6-4h23), a cross-channel IDOR in order payment, refund and fulfilment operations (GHSA-7qvr-c5vf-xxfh), and session tokens returned in Admin API job data (GHSA-32jm-mf7r-7qw5). All are fixed and disclosed, but the changelog warns that tokens may remain in historical job records (https://github.com/vendurehq/vendure/blob/master/CHANGELOG.md)."
        ],
        "verdict": "Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on. No vendor-hosted API. Vendure Cloud is only partly available.",
        "bestFor": "TypeScript teams that want a typed GraphQL commerce server and will host it.",
        "strengths": [
          "Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on",
          "API keys scoped to roles and channels, bcrypt-hashed and rotatable",
          "GPLv3 core, free to self-host, with no GMV or order fees on any tier",
          "CI passing on master and three releases between 14 July and 2 September 2026",
          "No usage telemetry found in the core, CLI or scaffolder"
        ],
        "weaknesses": [
          "No vendor-hosted API. Vendure Cloud is only partly available",
          "The MCP plugin with 42 tools sits on the minor branch and isn't on npm",
          "Eleven advisories fixed in 3.7.3, including unauthenticated SSO account takeover and a cross-channel IDOR",
          "No official client SDK and no idempotency support for order mutations",
          "No terms of service page, status page or security.txt"
        ],
        "agentNotes": [
          "Keep the session token from the first Shop API response and send it on every call. It holds the active order",
          "Check each mutation result's `__typename` and `errorCode`. Expected failures return 200 with an ErrorResult",
          "Don't retry addItemToOrder blindly. Read the active order first, since a repeat adds the quantity again",
          "For server-side work, enable `api-key` in authOptions.tokenMethod and give the key one role in one channel",
          "Run 3.7.3 or later, and purge old job records, which may still hold session tokens"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.9
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 45,
          "reliability": 89,
          "schema": 91,
          "security": 65,
          "transparency": 78
        },
        "provenanceScore": 56
      },
      "connect": {
        "http": "curl https://readonlydemo.vendure.io/shop-api -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"{ products(options:{take:5}){ totalItems items { name slug } } }\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/vendure"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Vendure Core self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "GPLv3, you pay for your own servers and database"
        }
      ],
      "provenance": {
        "legalEntity": "Elevantiq GmbH",
        "domain": "vendure.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://github.com/vendurehq/vendure/blob/master/LICENSE.md",
        "privacy": "https://vendure.io/company/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/vendurehq/vendure/blob/master/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "vendure.io has no terms of service page; the GPLv3 licence in the repo is linked as terms. Legal notice at https://vendure.io/company/legal-notice (Elevantiq GmbH, FN 506751 y, Innsbruck).",
          "rdap.org has no RDAP service for .io, so the registration date is blank.",
          "remoteUrl is Vendure's public read-only demo; production APIs run on your own domain."
        ],
        "score": 56
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vendure.json",
      "live": {
        "slug": "vendure",
        "probe": {
          "target": "https://readonlydemo.vendure.io/shop-api",
          "method": "get",
          "lastAt": "2026-10-08T19:09:01.32967552Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 39,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 42,
          "p95ms24h": 162,
          "samples24h": 272,
          "samples30d": 2135,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 217,
              "ok": 217
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "vendurehq/vendure",
            "version": "v3.7.4",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:34:00.219407602Z"
          },
          {
            "registry": "npm",
            "name": "@vendure/core",
            "version": "3.7.4",
            "seenAt": "2026-10-08T16:33:59.406669774Z"
          }
        ],
        "githubStars": 8505,
        "npmWeekly": 39734,
        "securityTxt": {
          "url": "https://vendure.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:55.51273513Z"
        },
        "llmsTxt": {
          "url": "https://docs.vendure.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:59.103928368Z"
        },
        "domain": {
          "domain": "vendure.io",
          "checkedAt": "2026-10-04T13:04:21.502238644Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/vendurehq/vendure/master/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-08T18:24:47.725516985Z",
            "changedAt": "2026-10-05T16:00:13.686824026Z",
            "fingerprint": "1138502529e2"
          },
          {
            "url": "https://vendure.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:37.530244878Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2eeb9beb193d"
          },
          {
            "url": "https://vendure.io/company/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:35.37388554Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c172f2439224"
          },
          {
            "url": "https://raw.githubusercontent.com/vendurehq/vendure/master/LICENSE.md",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:24:49.736344061Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4fa079f39d4c"
          }
        ],
        "updatedAt": "2026-10-08T19:09:01.32967552Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "commercetools GmbH",
        "b": "Vendure (Elevantiq GmbH)",
        "name": "Vendor"
      },
      {
        "a": "https://api.{region}.commercetools.com/{projectKey}",
        "b": "https://readonlydemo.vendure.io/shop-api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the commercetools Master Service Agreement. The API specifications are public, the SDKs are MIT (TypeScript, PHP) or Apache 2.0 (Java, .NET) and Commerce MCP is MIT",
        "b": "GPL-3.0-or-later",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-09-02",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "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": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "221k npm/wk",
        "b": "8.5k stars, 30k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "commercetools and Vendure score within a point of each other on agent readiness, 71.3 (BB) and 70.9 (BB). Vendure leads on reliability, schema \u0026 documentation and payments \u0026 pricing.",
        "question": "Which is better for AI agents, commercetools or Vendure?"
      },
      {
        "answer": "commercetools uses an OAuth sign-in. Vendure takes an API key or an OAuth sign-in.",
        "question": "Do commercetools and Vendure need an API key?"
      },
      {
        "answer": "Yes. commercetools has a hosted endpoint at https://api.{region}.commercetools.com/{projectKey} and Vendure at https://readonlydemo.vendure.io/shop-api.",
        "question": "Can an agent call commercetools and Vendure without installing anything?"
      },
      {
        "answer": "No open-source release is listed for commercetools. Vendure is open source (GPL-3.0-or-later).",
        "question": "Are commercetools and Vendure open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 83 against 68",
          "Security \u0026 auth, 70 against 65",
          "Transparency \u0026 trust, 81 against 67"
        ],
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where Vendure loses 3 points for them"
        ],
        "goodFor": "Enterprises that already run or plan a composable commerce stack and want agents working across catalogue, pricing, carts and orders under scoped credentials.",
        "slug": "commercetools",
        "watchFor": "No public price. The pricing page describes order-based pricing and sends buyers to sales"
      },
      {
        "aheadOn": [
          "Reliability, 89 against 73",
          "Schema \u0026 documentation, 91 against 86",
          "Payments \u0026 pricing, 45 against 20"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "TypeScript teams that want a typed GraphQL commerce server and will host it.",
        "slug": "vendure",
        "watchFor": "No vendor-hosted API. Vendure Cloud is only partly available"
      }
    ],
    "job": {
      "capability": "commerce.products",
      "name": "Commerce products"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-commercetools.json",
        "title": "BigCommerce API + MCP vs commercetools",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-commercetools"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-vendure.json",
        "title": "BigCommerce API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools.json",
        "title": "Commerce Layer API + MCP vs commercetools",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.json",
        "title": "Commerce Layer API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-elastic-path.json",
        "title": "commercetools vs Elastic Path API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-elastic-path"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-medusa.json",
        "title": "commercetools vs Medusa API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-medusa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-saleor.json",
        "title": "commercetools vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-shopify.json",
        "title": "commercetools vs Shopify API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-shopify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-shopware.json",
        "title": "commercetools vs Shopware",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-shopware"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-snipcart.json",
        "title": "commercetools vs Snipcart API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-snipcart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-square.json",
        "title": "commercetools vs Square",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-swell.json",
        "title": "commercetools vs Swell",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-swell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-woocommerce.json",
        "title": "commercetools vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-woocommerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elastic-path-vs-vendure.json",
        "title": "Elastic Path API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/elastic-path-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medusa-vs-vendure.json",
        "title": "Medusa API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/medusa-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-vendure.json",
        "title": "Saleor API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shopify-vs-vendure.json",
        "title": "Shopify API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/shopify-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shopware-vs-vendure.json",
        "title": "Shopware vs Vendure",
        "url": "https://www.anchorterminal.com/compare/shopware-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/snipcart-vs-vendure.json",
        "title": "Snipcart API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/snipcart-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/square-vs-vendure.json",
        "title": "Square vs Vendure",
        "url": "https://www.anchorterminal.com/compare/square-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/swell-vs-vendure.json",
        "title": "Swell vs Vendure",
        "url": "https://www.anchorterminal.com/compare/swell-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/vendure-vs-woocommerce.json",
        "title": "Vendure vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/vendure-vs-woocommerce"
      }
    ],
    "scores": [
      {
        "by": 16,
        "commercetools": 73,
        "edge": "vendure",
        "key": "reliability",
        "name": "Reliability",
        "vendure": 89,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "commercetools": 86,
        "edge": "vendure",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "vendure": 91,
        "weight": 13
      },
      {
        "by": 15,
        "commercetools": 83,
        "edge": "commercetools",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "vendure": 68,
        "weight": 13
      },
      {
        "by": 5,
        "commercetools": 70,
        "edge": "commercetools",
        "key": "security",
        "name": "Security \u0026 auth",
        "vendure": 65,
        "weight": 14
      },
      {
        "by": 25,
        "commercetools": 20,
        "edge": "vendure",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "vendure": 45,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "commercetools": 85,
        "edge": "",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "vendure": 85,
        "weight": 7
      },
      {
        "by": 14,
        "commercetools": 81,
        "edge": "commercetools",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "vendure": 67,
        "weight": 7
      }
    ],
    "summary": "commercetools and Vendure score within a point of each other on agent readiness, 71.3 (BB) and 70.9 (BB). Vendure leads on reliability, schema \u0026 documentation and payments \u0026 pricing. Both do commerce products.",
    "verdicts": {
      "commercetools": "A public OpenAPI file with 822 operations, per-resource OAuth scopes and a managed MCP server whose tools an administrator selects per agent. Prices are quoted by sales only, and the HTTP API publishes no platform-wide rate limit. A 60-day trial needs no card.",
      "vendure": "Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on. No vendor-hosted API. Vendure Cloud is only partly available."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/commercetools-vs-vendure",
    "json": "https://www.anchorterminal.com/compare/commercetools-vs-vendure.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/commercetools-vs-vendure.md",
    "slim": "https://www.anchorterminal.com/compare/commercetools-vs-vendure.min.md"
  },
  "markdown": "commercetools and Vendure score within a point of each other on agent readiness, 71.3 (BB) and 70.9 (BB). Vendure leads on reliability, schema \u0026 documentation and payments \u0026 pricing. Both do commerce products.\n\n- commercetools: grade BB, 71.3/100, rank #110 of 629. Markdown https://www.anchorterminal.com/tools/commercetools.md · JSON https://www.anchorterminal.com/api/v1/tools/commercetools.json\n- Vendure: grade BB, 70.9/100, rank #117 of 629. Markdown https://www.anchorterminal.com/tools/vendure.md · JSON https://www.anchorterminal.com/api/v1/tools/vendure.json\n\n## Which one, for what\n\n### commercetools (BB)\n\nGood for: Enterprises that already run or plan a composable commerce stack and want agents working across catalogue, pricing, carts and orders under scoped credentials.\n\nAhead on:\n- Agent ergonomics, 83 against 68\n- Security \u0026 auth, 70 against 65\n- Transparency \u0026 trust, 81 against 67\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where Vendure loses 3 points for them\n\nWatch for: No public price. The pricing page describes order-based pricing and sends buyers to sales\n\n### Vendure (BB)\n\nGood for: TypeScript teams that want a typed GraphQL commerce server and will host it.\n\nAhead on:\n- Reliability, 89 against 73\n- Schema \u0026 documentation, 91 against 86\n- Payments \u0026 pricing, 45 against 20\n\nAlso in its favour:\n- Open source\n\nWatch for: No vendor-hosted API. Vendure Cloud is only partly available\n\n\n## Score by category\n\n| Category | Weight | commercetools | Vendure | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 73 | 89 | Vendure +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 91 | Vendure +5 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 68 | commercetools +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 70 | 65 | commercetools +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 45 | Vendure +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 85 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 67 | commercetools +14 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **71.3 · BB** | **70.9 · BB** | |\n\n## Facts side by side\n\n| Fact | commercetools | Vendure |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | commercetools GmbH | Vendure (Elevantiq GmbH) |\n| Hosted endpoint | `https://api.{region}.commercetools.com/{projectKey}` | `https://readonlydemo.vendure.io/shop-api` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the commercetools Master Service Agreement. The API specifications are public, the SDKs are MIT (TypeScript, PHP) or Apache 2.0 (Java, .NET) and Commerce MCP is MIT | GPL-3.0-or-later |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-07 | 2026-09-02 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no date given |\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 | not found in the text |\n| Popularity | 221k npm/wk | 8.5k stars, 30k npm/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**commercetools.** A public OpenAPI file with 822 operations, per-resource OAuth scopes and a managed MCP server whose tools an administrator selects per agent. Prices are quoted by sales only, and the HTTP API publishes no platform-wide rate limit. A 60-day trial needs no card.\n\n**Vendure.** Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on. No vendor-hosted API. Vendure Cloud is only partly available.\n\n## Before you call either\n\n### commercetools\n\n1. Use the auth and API hosts for the project's region, such as auth.europe-west1.gcp.commercetools.com and api.europe-west1.gcp.commercetools.com. There are five regions\n2. Send the resource's current `version` with every update or delete. On 409 ConcurrentModification, re-read the resource and retry only if the change is still needed\n3. Retry 502 and 503 with exponential backoff from 200 ms, honour Retry-After, and check Content-Type before parsing an error body\n4. For MCP, ask for an API Client scoped to `mcp:{projectKey}:{mcpServerKey}` and a server limited to the tools the task needs, not `all`\n5. Keep page size at or under 500 and offset at or under 10,000. Product Search returns at most 100 per request\n\n### Vendure\n\n1. Keep the session token from the first Shop API response and send it on every call. It holds the active order\n2. Check each mutation result's `__typename` and `errorCode`. Expected failures return 200 with an ErrorResult\n3. Don't retry addItemToOrder blindly. Read the active order first, since a repeat adds the quantity again\n4. For server-side work, enable `api-key` in authOptions.tokenMethod and give the key one role in one channel\n5. Run 3.7.3 or later, and purge old job records, which may still hold session tokens\n\n## Questions\n\n### Which is better for AI agents, commercetools or Vendure?\n\ncommercetools and Vendure score within a point of each other on agent readiness, 71.3 (BB) and 70.9 (BB). Vendure leads on reliability, schema \u0026 documentation and payments \u0026 pricing.\n\n### Do commercetools and Vendure need an API key?\n\ncommercetools uses an OAuth sign-in. Vendure takes an API key or an OAuth sign-in.\n\n### Can an agent call commercetools and Vendure without installing anything?\n\nYes. commercetools has a hosted endpoint at https://api.{region}.commercetools.com/{projectKey} and Vendure at https://readonlydemo.vendure.io/shop-api.\n\n### Are commercetools and Vendure open source?\n\nNo open-source release is listed for commercetools. Vendure is open source (GPL-3.0-or-later).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/commercetools-vs-vendure.json, and with the fewest tokens: https://www.anchorterminal.com/compare/commercetools-vs-vendure.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"commercetools\", \"b\": \"vendure\"}`. From a terminal: `anchor compare commercetools vendure`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/commercetools.json and https://www.anchorterminal.com/api/v1/tools/vendure.json\n\n## Other comparisons with commercetools or Vendure\n\n- [BigCommerce API + MCP vs commercetools](https://www.anchorterminal.com/compare/bigcommerce-vs-commercetools.md)\n- [BigCommerce API + MCP vs Vendure](https://www.anchorterminal.com/compare/bigcommerce-vs-vendure.md)\n- [Commerce Layer API + MCP vs commercetools](https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools.md)\n- [Commerce Layer API + MCP vs Vendure](https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.md)\n- [commercetools vs Elastic Path API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-elastic-path.md)\n- [commercetools vs Medusa API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-medusa.md)\n- [commercetools vs Saleor API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-saleor.md)\n- [commercetools vs Shopify API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-shopify.md)\n- [commercetools vs Shopware](https://www.anchorterminal.com/compare/commercetools-vs-shopware.md)\n- [commercetools vs Snipcart API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-snipcart.md)\n- [commercetools vs Square](https://www.anchorterminal.com/compare/commercetools-vs-square.md)\n- [commercetools vs Swell](https://www.anchorterminal.com/compare/commercetools-vs-swell.md)\n- [commercetools vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-woocommerce.md)\n- [Elastic Path API + MCP vs Vendure](https://www.anchorterminal.com/compare/elastic-path-vs-vendure.md)\n- [Medusa API + MCP vs Vendure](https://www.anchorterminal.com/compare/medusa-vs-vendure.md)\n- [Saleor API + MCP vs Vendure](https://www.anchorterminal.com/compare/saleor-vs-vendure.md)\n- [Shopify API + MCP vs Vendure](https://www.anchorterminal.com/compare/shopify-vs-vendure.md)\n- [Shopware vs Vendure](https://www.anchorterminal.com/compare/shopware-vs-vendure.md)\n- [Snipcart API + MCP vs Vendure](https://www.anchorterminal.com/compare/snipcart-vs-vendure.md)\n- [Square vs Vendure](https://www.anchorterminal.com/compare/square-vs-vendure.md)\n- [Swell vs Vendure](https://www.anchorterminal.com/compare/swell-vs-vendure.md)\n- [Vendure vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/vendure-vs-woocommerce.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": "commercetools vs Vendure",
        "url": ""
      }
    ],
    "description": "commercetools and Vendure score within a point of each other on agent readiness, 71.3 (BB) and 70.9 (BB). Vendure leads on reliability, schema \u0026 documentation and payments \u0026 pricing. Both do commerce products. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "commercetools BB 71.3",
      "Vendure BB 70.9",
      "scores"
    ],
    "h1": "commercetools vs Vendure",
    "image": "https://www.anchorterminal.com/assets/og/compare-commercetools-vs-vendure.png",
    "path": "/compare/commercetools-vs-vendure",
    "published": "2026-10-01",
    "section": "tools",
    "title": "commercetools vs Vendure for AI agents, BB 71.3 vs BB 70.9",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/commercetools-vs-vendure"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 680
  },
  "version": 1
}
