{
  "data": {
    "a": {
      "slug": "saleor",
      "name": "Saleor API + MCP",
      "vendor": "Saleor",
      "vendorUrl": "https://saleor.io",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Open-source headless commerce with a single GraphQL API for products, channels, checkouts, orders and customers, self-hosted or on Saleor Cloud.",
      "url": "https://www.anchorterminal.com/tools/saleor",
      "markdownUrl": "https://www.anchorterminal.com/tools/saleor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/saleor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/saleor.json",
      "repo": "https://github.com/saleor/saleor",
      "license": "BSD-3-Clause",
      "transports": [
        "http",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@saleor/app-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Public channel queries such as products need no token. Staff users get a JWT from tokenCreate, and apps get an app token limited to the permissions they request, such as MANAGE_PRODUCTS and MANAGE_ORDERS. The MCP server takes the Saleor API URL and a token in the X-Saleor-API-URL and X-Saleor-Auth-Token headers.",
      "pricing": "freemium",
      "pricingNotes": "Self-hosting the BSD core is free. Saleor Cloud sandboxes are free for non-commercial use. Select $1,599 a month up to $200,000 GMV a month with 0.8% above it, Volume $3,999 a month up to $1,000,000 with 0.4% above it, Enterprise negotiated down to 0.2%. Optional onboarding add-ons at $6,000 and $12,000 one-time, credited back over the first year (https://saleor.io/pricing).",
      "priceSummary": "$1599 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402. Payments go through payment apps such as Stripe or Adyen.",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 23397,
        "npmWeekly": 7310,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.saleor.io",
      "llmsTxt": "https://docs.saleor.io/llms.txt",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "hosted",
        "mcp",
        "llms-txt",
        "python",
        "webhooks",
        "read-only-mode",
        "freemium"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.6,
        "grade": "B",
        "agentReady": false,
        "rank": 210,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 86,
          "maintenance": 85,
          "payments": 45,
          "reliability": 50,
          "schema": 89,
          "security": 71,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "Two high-severity advisories in the last 12 months touched customer data, an IDOR in the GraphQL API published 23 January 2026 (GHSA-r6fj-f4r9-36gr) and account pre-hijacking through an unverified anonymous order merge published 27 July 2026 (GHSA-6whj-8p3f-2xqp). Both were fixed and disclosed in public, so the deduction is small (https://github.com/saleor/saleor/security/advisories)."
        ],
        "verdict": "One GraphQL schema with 78 typed error-code enums and 464 marked deprecations. The MCP server can't create checkouts or orders.",
        "bestFor": "Teams that want an open-source GraphQL backend with multi-channel pricing and an agent that reads store data safely.",
        "strengths": [
          "One GraphQL schema with 78 typed error-code enums and 464 marked deprecations",
          "BSD-3-Clause core, self-host or run on Saleor Cloud",
          "Official MCP server with 8 tools, all read-only, 7 with readOnlyHint and idempotentHint",
          "Thirteen patch releases between 5 August and 30 September 2026",
          "Security advisories published through GitHub, and SOC 2 Type 2 and PCI DSS claimed for Cloud"
        ],
        "weaknesses": [
          "The MCP server can't create checkouts or orders",
          "The hosted MCP at mcp.saleor.app only connects to saleor.cloud stores on 3.21 or later",
          "Cloud starts at $1,599 a month, and free sandboxes are non-commercial only",
          "No published request-rate limits, 429 guidance or SLA",
          "Self-hosted servers send usage telemetry by default"
        ],
        "agentNotes": [
          "Pass the channel slug on product and checkout queries. Prices and availability are per channel",
          "Send X-Saleor-API-URL and X-Saleor-Auth-Token on every MCP request, with a token holding MANAGE_PRODUCTS and MANAGE_ORDERS",
          "Read the `errors` array in every mutation payload. A 200 response can still carry a CheckoutErrorCode",
          "Keep queries under the 50,000 complexity cap and 100 items a page, and send at most 4 mutations per request",
          "The 3.24 changelog removes the old dummy payment plugins, so test checkouts should use a payment app"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.6
          }
        ],
        "editorialScores": {
          "ergonomics": 86,
          "maintenance": 85,
          "payments": 45,
          "reliability": 50,
          "schema": 89,
          "security": 71,
          "transparency": 83
        },
        "provenanceScore": 68
      },
      "connect": {
        "http": "curl -X POST \"https://\u003cyour-env\u003e.saleor.cloud/graphql/\" -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"{ products(first: 5, channel: \\\"default-channel\\\") { edges { node { id name } } } }\"}'",
        "claudeCode": "claude mcp add --transport http saleor https://mcp.saleor.app/mcp --header \"X-Saleor-API-URL: https://\u003cyour-env\u003e.saleor.cloud/graphql/\" --header \"X-Saleor-Auth-Token: $SALEOR_TOKEN\"",
        "config": {
          "mcpServers": {
            "saleor": {
              "headers": {
                "X-Saleor-API-URL": "https://\u003cyour-env\u003e.saleor.cloud/graphql/",
                "X-Saleor-Auth-Token": "${SALEOR_TOKEN}"
              },
              "type": "streamable-http",
              "url": "https://mcp.saleor.app/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/saleor"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Cloud Select",
          "unit": "month",
          "usd": 1599,
          "note": "up to $200,000 GMV a month"
        },
        {
          "item": "Select GMV overage",
          "unit": "pct",
          "usd": 0.8,
          "note": "on orders above the GMV cap"
        },
        {
          "item": "Cloud Volume",
          "unit": "month",
          "usd": 3999,
          "note": "up to $1,000,000 GMV a month"
        },
        {
          "item": "Volume GMV overage",
          "unit": "pct",
          "usd": 0.4,
          "note": "on orders above the GMV cap"
        },
        {
          "item": "Self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "BSD core, you pay for your own servers"
        }
      ],
      "provenance": {
        "legalEntity": "Saleor Commerce sp. z o.o.",
        "domain": "saleor.io",
        "domainRegistered": "2018-12-28",
        "domainNote": "Saleor's code dates from 2013; saleor.io was registered in 2018.",
        "endpointOnVendorDomain": false,
        "terms": "https://saleor.io/legal/terms",
        "privacy": "https://saleor.io/legal/privacy",
        "statusPage": "https://status.saleor.io",
        "changelog": "https://github.com/saleor/saleor/releases",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Cloud APIs run on saleor.cloud and the hosted MCP on saleor.app, not on saleor.io"
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/saleor.json",
      "live": {
        "slug": "saleor",
        "vendorStatus": {
          "page": "https://status.saleor.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:50:45.881612827Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "saleor/saleor",
            "version": "3.23.41",
            "released": "2026-10-09",
            "seenAt": "2026-10-09T17:17:46.353525755Z"
          },
          {
            "registry": "npm",
            "name": "@saleor/app-sdk",
            "version": "1.16.0",
            "seenAt": "2026-10-09T17:17:45.458057709Z"
          }
        ],
        "githubStars": 23427,
        "npmWeekly": 7690,
        "securityTxt": {
          "url": "https://saleor.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:55.936558821Z"
        },
        "llmsTxt": {
          "url": "https://docs.saleor.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:43.383744403Z"
        },
        "domain": {
          "domain": "saleor.io",
          "checkedAt": "2026-10-04T13:09:19.936175554Z"
        },
        "pages": [
          {
            "url": "https://saleor.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:52.191535044Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d71c0304e251"
          },
          {
            "url": "https://saleor.io/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:47.970291177Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6db975edf88a"
          },
          {
            "url": "https://saleor.io/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:50.189792138Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6bd50f5b31d6"
          }
        ],
        "updatedAt": "2026-10-10T02:50:45.881612827Z"
      }
    },
    "answer": "Spree Commerce scores 70.4 (BB) on agent readiness against Saleor API + MCP's 68.6 (B), and leads in 3 of 7 scored categories. Saleor API + MCP leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "spree-commerce",
      "name": "Spree Commerce",
      "vendor": "Vendo Connect Inc",
      "vendorUrl": "https://spreecommerce.org",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Spree Commerce is an open-source commerce platform on Ruby on Rails, maintained by Vendo Connect Inc. A self-hosted store runs a Store API for catalogue, cart and checkout, and an Admin API for back-office work.",
      "url": "https://www.anchorterminal.com/tools/spree-commerce",
      "markdownUrl": "https://www.anchorterminal.com/tools/spree-commerce.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/spree-commerce.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/spree-commerce.json",
      "repo": "https://github.com/spree/spree",
      "license": "BSD-3-Clause for the backend, MIT for the npm packages. Enterprise Edition code is under a separate commercial licence",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@spree/sdk"
        },
        {
          "registry": "npm",
          "name": "@spree/cli"
        },
        {
          "registry": "npm",
          "name": "@spree/admin-sdk"
        },
        {
          "registry": "rubygems",
          "name": "spree"
        }
      ],
      "auth": "mixed",
      "authNotes": "Store API calls need a publishable key (`pk_`) in the `X-Spree-Api-Key` header, plus a customer JWT as a Bearer token or a cart token in `X-Spree-Token` for guests. Admin API calls take a secret key (`sk_`) with `read_*` and `write_*` scopes per resource, or an admin JWT. Keys are created by the store's operator in the dashboard or with `spree api-key create`, with no vendor approval.",
      "pricing": "freemium",
      "pricingNotes": "Free to self-host under BSD 3-Clause, with no platform or transaction fee. The Enterprise Edition is custom pricing through sales. A free hosted Sandbox lets an agent's owner try the Admin API without a contract, for evaluation with test data only (https://spreecommerce.org/enterprise/, checked 2026-10-09).",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI files or the repository (checked 2026-10-09). Payments go through provider integrations such as Stripe, Adyen and PayPal.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15750,
        "npmWeekly": 1576,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://spreecommerce.org/docs",
      "llmsTxt": "https://spreecommerce.org/docs/llms.txt",
      "openapi": "https://spreecommerce.org/docs/api-reference/store.yaml",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "openapi",
        "llms-txt",
        "mcp",
        "typescript",
        "ruby",
        "webhooks",
        "freemium"
      ],
      "lastRelease": "2026-07-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.4,
        "grade": "BB",
        "agentReady": true,
        "rank": 155,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 90,
          "maintenance": 81,
          "payments": 55,
          "reliability": 82,
          "schema": 85,
          "security": 65,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -5,
        "negativeNotes": [
          "2026-07-20: six security advisories were published for `spree_api` and related gems between 8 January and 20 July 2026, four rated High, among them guest address and order disclosure without authentication (GHSA-87fh-rc96-6fr6, GHSA-p6pv-q7rc-g4h9, 5 February) and a guest cart takeover on `PATCH /api/v3/store/carts/:id/associate` (GHSA-4825-p4xm-pcf2, 20 July, fixed in 5.4.4 and 5.5.4). All are published with patched versions, so the deduction is reduced (https://github.com/spree/spree/security/advisories)."
        ],
        "verdict": "A self-hosted BSD 3-Clause platform with public OpenAPI files for the Store and Admin APIs, scoped secret keys, documented rate limits and idempotency keys on cart and checkout calls. GitHub lists six security advisories between January and July 2026, four rated High, and the default docs describe the 6.0 release candidate while 5.6.1 is the stable release.",
        "bestFor": "Teams that want to own a Rails commerce backend with marketplace, B2B and multi-region functions and drive it through REST.",
        "strengths": [
          "OpenAPI 3.0.3 files for the Store API (81 paths, 99 operations) and Admin API (259 paths, 417 operations), plus llms.txt and a Markdown copy of every docs page",
          "Secret keys carry `read_*` and `write_*` scopes per resource, are shown once and can be revoked, and a key cannot create a key with wider scopes",
          "`Idempotency-Key` on eight cart, checkout and payment calls, cached for 24 hours, with `Retry-After` on 429 responses",
          "Rate limits are published with numbers, 300 requests a minute per API key by default, and the operator can change them",
          "BSD 3-Clause backend and MIT TypeScript packages, with marketplace and B2B functions in the open-source edition"
        ],
        "weaknesses": [
          "Six GitHub security advisories between 8 January and 20 July 2026, four rated High, most of them access-control flaws on guest carts, orders and addresses",
          "The default docs and the main-branch OpenAPI files describe 6.0, a release candidate dated 8 October 2026. The stable release is 5.6.1 of 28 July 2026",
          "The audit trail is in the paid Enterprise Edition only, and Enterprise prices are not published",
          "Supported-version end dates differ between `SECURITY.md` (5.x until 26 March 2027) and the docs security policy (5.0 until 26 March 2028)",
          "The official MCP server searches and reads the docs only. Store and admin MCP servers are open roadmap issues"
        ],
        "agentNotes": [
          "Send a publishable key in `X-Spree-Api-Key` on every Store API call. Add `X-Spree-Token` with the cart token for guest carts, or a customer JWT as a Bearer token",
          "Send `Idempotency-Key` with the cart token or a customer JWT on cart, payment and completion calls. A request carrying only the publishable key is never cached",
          "Ask for `fields` and `expand` explicitly. Relations are left out by default and `limit` stops at 100",
          "Use a secret key with the narrowest scopes for the Admin API. `read_all` gives a read-only key, and the CLI's auto-minted local key is read-only",
          "Read the docs under `/docs/v5` for a 5.6 store. The default docs describe 6.0, which renames shipments to fulfilments and splits carts from orders"
        ],
        "metrics": {
          "kind": "local",
          "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": 70.4
          }
        ],
        "editorialScores": {
          "ergonomics": 90,
          "maintenance": 81,
          "payments": 55,
          "reliability": 82,
          "schema": 85,
          "security": 65,
          "transparency": 75
        },
        "provenanceScore": 45
      },
      "connect": {
        "install": "npx create-spree-app@latest my-store",
        "http": "curl -X GET 'http://localhost:3000/api/v3/store/products' -H 'X-Spree-Api-Key: pk_xxx'",
        "claudeCode": "claude mcp add --transport http spree-docs https://spreecommerce.org/docs/mcp",
        "config": {
          "mcpServers": {
            "spree-docs": {
              "url": "https://spreecommerce.org/docs/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/spree-commerce"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Community Edition, self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "BSD 3-Clause, the operator pays for its own servers"
        }
      ],
      "provenance": {
        "legalEntity": "Vendo Connect Inc",
        "domain": "spreecommerce.org",
        "domainRegistered": "2009-04-03",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/spree/spree/releases",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Sandbox terms name VENDO CONNECT INC, a Delaware corporation (file number 7005612), 3500 S DuPont Highway, Dover, Delaware 19901, as the company behind the Spree Commerce project. The `LICENSE` file also names Vendo Sp. z o.o. as a copyright holder.",
          "The API runs on the operator's own server, so there is no vendor endpoint and no vendor status page.",
          "No terms or privacy document governs the self-hosted software, and the BSD 3-Clause licence stands in. The published terms (https://spreecommerce.org/terms-of-service/) and privacy notice (https://spreecommerce.org/privacy-policy-sandbox/), both dated 10 July 2026, cover only the hosted Sandbox and Vendo's websites.",
          "https://spreecommerce.org/.well-known/security.txt returns 404. `SECURITY.md` in the repository gives a security mailbox for reports.",
          "RDAP for spreecommerce.org gives a registration date of 2009-04-03 and GoDaddy.com, LLC as registrar."
        ],
        "score": 45
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/spree-commerce.json",
      "live": {
        "slug": "spree-commerce",
        "versions": [
          {
            "registry": "github",
            "name": "spree/spree",
            "version": "v5.6.1",
            "released": "2026-07-28",
            "seenAt": "2026-10-09T17:21:34.764539584Z"
          },
          {
            "registry": "npm",
            "name": "@spree/admin-sdk",
            "version": "0.1.0",
            "seenAt": "2026-10-09T17:21:32.71633834Z"
          },
          {
            "registry": "npm",
            "name": "@spree/cli",
            "version": "3.2.2",
            "seenAt": "2026-10-09T17:21:30.96599442Z"
          },
          {
            "registry": "npm",
            "name": "@spree/sdk",
            "version": "1.2.1",
            "seenAt": "2026-10-09T17:21:28.899108995Z"
          }
        ],
        "githubStars": 15751,
        "npmWeekly": 1576,
        "updatedAt": "2026-10-09T17:21:34.764539584Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Saleor",
        "b": "Vendo Connect Inc",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "BSD-3-Clause",
        "b": "BSD-3-Clause for the backend, MIT for the npm packages. Enterprise Edition code is under a separate commercial licence",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "none",
        "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-28",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "23k stars, 7.3k npm/wk",
        "b": "16k stars, 1.6k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Spree Commerce scores 70.4 (BB) on agent readiness against Saleor API + MCP's 68.6 (B), and leads in 3 of 7 scored categories. Saleor API + MCP leads on security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Saleor API + MCP or Spree Commerce?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Saleor API + MCP and Spree Commerce need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Saleor API + MCP. No hosted endpoint is listed for Spree Commerce.",
        "question": "Can an agent call Saleor API + MCP and Spree Commerce without installing anything?"
      },
      {
        "answer": "Yes. Saleor API + MCP is open source (BSD-3-Clause). Spree Commerce is open source (BSD-3-Clause for the backend, MIT for the npm packages. Enterprise Edition code is under a separate commercial licence).",
        "question": "Are Saleor API + MCP and Spree Commerce open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 71 against 65",
          "Transparency \u0026 trust, 76 against 60"
        ],
        "also": null,
        "goodFor": "Teams that want an open-source GraphQL backend with multi-channel pricing and an agent that reads store data safely.",
        "slug": "saleor",
        "watchFor": "The MCP server can't create checkouts or orders"
      },
      {
        "aheadOn": [
          "Reliability, 82 against 50",
          "Payments \u0026 pricing, 55 against 45"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Teams that want to own a Rails commerce backend with marketplace, B2B and multi-region functions and drive it through REST.",
        "slug": "spree-commerce",
        "watchFor": "Six GitHub security advisories between 8 January and 20 July 2026, four rated High, most of them access-control flaws on guest carts, orders and addresses"
      }
    ],
    "job": {
      "capability": "commerce.products",
      "name": "Commerce catalogues"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-saleor.json",
        "title": "Adobe Commerce (Magento) vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-spree-commerce.json",
        "title": "Adobe Commerce (Magento) vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-saleor.json",
        "title": "BigCommerce API + MCP vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-spree-commerce.json",
        "title": "BigCommerce API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-saleor.json",
        "title": "Commerce Layer API + MCP vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-spree-commerce.json",
        "title": "Commerce Layer API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-spree-commerce"
      },
      {
        "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-spree-commerce.json",
        "title": "commercetools vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ecwid-vs-saleor.json",
        "title": "Ecwid by Lightspeed vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/ecwid-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ecwid-vs-spree-commerce.json",
        "title": "Ecwid by Lightspeed vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/ecwid-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elastic-path-vs-saleor.json",
        "title": "Elastic Path API + MCP vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/elastic-path-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elastic-path-vs-spree-commerce.json",
        "title": "Elastic Path API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/elastic-path-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medusa-vs-saleor.json",
        "title": "Medusa API + MCP vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/medusa-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medusa-vs-spree-commerce.json",
        "title": "Medusa API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/medusa-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-shopify.json",
        "title": "Saleor API + MCP vs Shopify API + MCP",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-shopify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-shopware.json",
        "title": "Saleor API + MCP vs Shopware",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-shopware"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-snipcart.json",
        "title": "Saleor API + MCP vs Snipcart API + MCP",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-snipcart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-square.json",
        "title": "Saleor API + MCP vs Square",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-swell.json",
        "title": "Saleor API + MCP vs Swell",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-swell"
      },
      {
        "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/saleor-vs-wix.json",
        "title": "Saleor API + MCP vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-wix"
      },
      {
        "json": "https://www.anchorterminal.com/compare/saleor-vs-woocommerce.json",
        "title": "Saleor API + MCP vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/saleor-vs-woocommerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shopify-vs-spree-commerce.json",
        "title": "Shopify API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/shopify-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shopware-vs-spree-commerce.json",
        "title": "Shopware vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/shopware-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/snipcart-vs-spree-commerce.json",
        "title": "Snipcart API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/snipcart-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/spree-commerce-vs-square.json",
        "title": "Spree Commerce vs Square",
        "url": "https://www.anchorterminal.com/compare/spree-commerce-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/spree-commerce-vs-swell.json",
        "title": "Spree Commerce vs Swell",
        "url": "https://www.anchorterminal.com/compare/spree-commerce-vs-swell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/spree-commerce-vs-vendure.json",
        "title": "Spree Commerce vs Vendure",
        "url": "https://www.anchorterminal.com/compare/spree-commerce-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/spree-commerce-vs-wix.json",
        "title": "Spree Commerce vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/spree-commerce-vs-wix"
      },
      {
        "json": "https://www.anchorterminal.com/compare/spree-commerce-vs-woocommerce.json",
        "title": "Spree Commerce vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/spree-commerce-vs-woocommerce"
      }
    ],
    "scores": [
      {
        "by": 32,
        "edge": "spree-commerce",
        "key": "reliability",
        "name": "Reliability",
        "saleor": 50,
        "spree-commerce": 82,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "saleor",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "saleor": 89,
        "spree-commerce": 85,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "spree-commerce",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "saleor": 86,
        "spree-commerce": 90,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "saleor",
        "key": "security",
        "name": "Security \u0026 auth",
        "saleor": 71,
        "spree-commerce": 65,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "spree-commerce",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "saleor": 45,
        "spree-commerce": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "saleor",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "saleor": 85,
        "spree-commerce": 81,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "saleor",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "saleor": 76,
        "spree-commerce": 60,
        "weight": 7
      }
    ],
    "summary": "Spree Commerce scores 70.4 (BB) on agent readiness against Saleor API + MCP's 68.6 (B), and leads in 3 of 7 scored categories. Saleor API + MCP leads on security \u0026 auth and transparency \u0026 trust. Both do commerce catalogues.",
    "verdicts": {
      "saleor": "One GraphQL schema with 78 typed error-code enums and 464 marked deprecations. The MCP server can't create checkouts or orders.",
      "spree-commerce": "A self-hosted BSD 3-Clause platform with public OpenAPI files for the Store and Admin APIs, scoped secret keys, documented rate limits and idempotency keys on cart and checkout calls. GitHub lists six security advisories between January and July 2026, four rated High, and the default docs describe the 6.0 release candidate while 5.6.1 is the stable release."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/saleor-vs-spree-commerce",
    "json": "https://www.anchorterminal.com/compare/saleor-vs-spree-commerce.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/saleor-vs-spree-commerce.md",
    "slim": "https://www.anchorterminal.com/compare/saleor-vs-spree-commerce.min.md"
  },
  "markdown": "Spree Commerce scores 70.4 (BB) on agent readiness against Saleor API + MCP's 68.6 (B), and leads in 3 of 7 scored categories. Saleor API + MCP leads on security \u0026 auth and transparency \u0026 trust. Both do commerce catalogues.\n\n- Saleor API + MCP: grade B, 68.6/100, rank #210 of 950. Markdown https://www.anchorterminal.com/tools/saleor.md · JSON https://www.anchorterminal.com/api/v1/tools/saleor.json\n- Spree Commerce: grade BB, 70.4/100, rank #155 of 950. Markdown https://www.anchorterminal.com/tools/spree-commerce.md · JSON https://www.anchorterminal.com/api/v1/tools/spree-commerce.json\n- Best commerce platforms and checkout APIs for AI agents: https://www.anchorterminal.com/best/commerce/index.md\n- All 136 commerce comparisons: https://www.anchorterminal.com/compare/commerce/index.md\n\n## Which one, for what\n\n### Saleor API + MCP (B)\n\nGood for: Teams that want an open-source GraphQL backend with multi-channel pricing and an agent that reads store data safely.\n\nAhead on:\n- Security \u0026 auth, 71 against 65\n- Transparency \u0026 trust, 76 against 60\n\nWatch for: The MCP server can't create checkouts or orders\n\n### Spree Commerce (BB)\n\nGood for: Teams that want to own a Rails commerce backend with marketplace, B2B and multi-region functions and drive it through REST.\n\nAhead on:\n- Reliability, 82 against 50\n- Payments \u0026 pricing, 55 against 45\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Six GitHub security advisories between 8 January and 20 July 2026, four rated High, most of them access-control flaws on guest carts, orders and addresses\n\n\n## Score by category\n\n| Category | Weight | Saleor API + MCP | Spree Commerce | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 82 | Spree Commerce +32 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 85 | Saleor API + MCP +4 |\n| Agent ergonomics | 13% (16.2 this run) | 86 | 90 | Spree Commerce +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 71 | 65 | Saleor API + MCP +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 45 | 55 | Spree Commerce +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 81 | Saleor API + MCP +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 60 | Saleor API + MCP +16 |\n| Negative events | ≤15 | -2 | -5 | |\n| **Total** | | **68.6 · B** | **70.4 · BB** | |\n\n## Facts side by side\n\n| Fact | Saleor API + MCP | Spree Commerce |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Saleor | Vendo Connect Inc |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | BSD-3-Clause | BSD-3-Clause for the backend, MIT for the npm packages. Enterprise Edition code is under a separate commercial licence |\n| Tools exposed | 8 | none |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-30 | 2026-07-28 |\n| Terms last updated | no date given | no document linked |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 23k stars, 7.3k npm/wk | 16k stars, 1.6k npm/wk |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**Saleor API + MCP.** One GraphQL schema with 78 typed error-code enums and 464 marked deprecations. The MCP server can't create checkouts or orders.\n\n**Spree Commerce.** A self-hosted BSD 3-Clause platform with public OpenAPI files for the Store and Admin APIs, scoped secret keys, documented rate limits and idempotency keys on cart and checkout calls. GitHub lists six security advisories between January and July 2026, four rated High, and the default docs describe the 6.0 release candidate while 5.6.1 is the stable release.\n\n## Before you call either\n\n### Saleor API + MCP\n\n1. Pass the channel slug on product and checkout queries. Prices and availability are per channel\n2. Send X-Saleor-API-URL and X-Saleor-Auth-Token on every MCP request, with a token holding MANAGE_PRODUCTS and MANAGE_ORDERS\n3. Read the `errors` array in every mutation payload. A 200 response can still carry a CheckoutErrorCode\n4. Keep queries under the 50,000 complexity cap and 100 items a page, and send at most 4 mutations per request\n5. The 3.24 changelog removes the old dummy payment plugins, so test checkouts should use a payment app\n\n### Spree Commerce\n\n1. Send a publishable key in `X-Spree-Api-Key` on every Store API call. Add `X-Spree-Token` with the cart token for guest carts, or a customer JWT as a Bearer token\n2. Send `Idempotency-Key` with the cart token or a customer JWT on cart, payment and completion calls. A request carrying only the publishable key is never cached\n3. Ask for `fields` and `expand` explicitly. Relations are left out by default and `limit` stops at 100\n4. Use a secret key with the narrowest scopes for the Admin API. `read_all` gives a read-only key, and the CLI's auto-minted local key is read-only\n5. Read the docs under `/docs/v5` for a 5.6 store. The default docs describe 6.0, which renames shipments to fulfilments and splits carts from orders\n\n## Questions\n\n### Which is better for AI agents, Saleor API + MCP or Spree Commerce?\n\nSpree Commerce scores 70.4 (BB) on agent readiness against Saleor API + MCP's 68.6 (B), and leads in 3 of 7 scored categories. Saleor API + MCP leads on security \u0026 auth and transparency \u0026 trust.\n\n### Do Saleor API + MCP and Spree Commerce need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Saleor API + MCP and Spree Commerce without installing anything?\n\nNo hosted endpoint is listed for Saleor API + MCP. No hosted endpoint is listed for Spree Commerce.\n\n### Are Saleor API + MCP and Spree Commerce open source?\n\nYes. Saleor API + MCP is open source (BSD-3-Clause). Spree Commerce is open source (BSD-3-Clause for the backend, MIT for the npm packages. Enterprise Edition code is under a separate commercial licence).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/saleor-vs-spree-commerce.json, and with the fewest tokens: https://www.anchorterminal.com/compare/saleor-vs-spree-commerce.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"saleor\", \"b\": \"spree-commerce\"}`. From a terminal: `anchor compare saleor spree-commerce`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/saleor.json and https://www.anchorterminal.com/api/v1/tools/spree-commerce.json\n\n## Other comparisons with Saleor API + MCP or Spree Commerce\n\n- [Adobe Commerce (Magento) vs Saleor API + MCP](https://www.anchorterminal.com/compare/adobe-commerce-vs-saleor.md)\n- [Adobe Commerce (Magento) vs Spree Commerce](https://www.anchorterminal.com/compare/adobe-commerce-vs-spree-commerce.md)\n- [BigCommerce API + MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/bigcommerce-vs-saleor.md)\n- [BigCommerce API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/bigcommerce-vs-spree-commerce.md)\n- [Commerce Layer API + MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-saleor.md)\n- [Commerce Layer API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/commerce-layer-vs-spree-commerce.md)\n- [commercetools vs Saleor API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-saleor.md)\n- [commercetools vs Spree Commerce](https://www.anchorterminal.com/compare/commercetools-vs-spree-commerce.md)\n- [Ecwid by Lightspeed vs Saleor API + MCP](https://www.anchorterminal.com/compare/ecwid-vs-saleor.md)\n- [Ecwid by Lightspeed vs Spree Commerce](https://www.anchorterminal.com/compare/ecwid-vs-spree-commerce.md)\n- [Elastic Path API + MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/elastic-path-vs-saleor.md)\n- [Elastic Path API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/elastic-path-vs-spree-commerce.md)\n- [Medusa API + MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/medusa-vs-saleor.md)\n- [Medusa API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/medusa-vs-spree-commerce.md)\n- [Saleor API + MCP vs Shopify API + MCP](https://www.anchorterminal.com/compare/saleor-vs-shopify.md)\n- [Saleor API + MCP vs Shopware](https://www.anchorterminal.com/compare/saleor-vs-shopware.md)\n- [Saleor API + MCP vs Snipcart API + MCP](https://www.anchorterminal.com/compare/saleor-vs-snipcart.md)\n- [Saleor API + MCP vs Square](https://www.anchorterminal.com/compare/saleor-vs-square.md)\n- [Saleor API + MCP vs Swell](https://www.anchorterminal.com/compare/saleor-vs-swell.md)\n- [Saleor API + MCP vs Vendure](https://www.anchorterminal.com/compare/saleor-vs-vendure.md)\n- [Saleor API + MCP vs Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/saleor-vs-wix.md)\n- [Saleor API + MCP vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/saleor-vs-woocommerce.md)\n- [Shopify API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/shopify-vs-spree-commerce.md)\n- [Shopware vs Spree Commerce](https://www.anchorterminal.com/compare/shopware-vs-spree-commerce.md)\n- [Snipcart API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/snipcart-vs-spree-commerce.md)\n- [Spree Commerce vs Square](https://www.anchorterminal.com/compare/spree-commerce-vs-square.md)\n- [Spree Commerce vs Swell](https://www.anchorterminal.com/compare/spree-commerce-vs-swell.md)\n- [Spree Commerce vs Vendure](https://www.anchorterminal.com/compare/spree-commerce-vs-vendure.md)\n- [Spree Commerce vs Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/spree-commerce-vs-wix.md)\n- [Spree Commerce vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/spree-commerce-vs-woocommerce.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": "Saleor API + MCP vs Spree Commerce",
        "url": ""
      }
    ],
    "description": "Spree Commerce scores 70.4 (BB) to Saleor's 68.6 (B) for commerce catalogues. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Saleor API + MCP B 68.6",
      "Spree Commerce BB 70.4",
      "scores"
    ],
    "h1": "Saleor API + MCP vs Spree Commerce",
    "image": "https://www.anchorterminal.com/assets/og/compare-saleor-vs-spree-commerce.png",
    "path": "/compare/saleor-vs-spree-commerce",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Saleor vs Spree Commerce for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/saleor-vs-spree-commerce"
  },
  "tokens": {
    "markdown": 2750,
    "slim": 680
  },
  "version": 1
}
