{
  "data": {
    "a": {
      "slug": "fabric",
      "name": "Fabric",
      "vendor": "Commerce Fabric, Inc.",
      "vendorUrl": "https://fabric.inc",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Commerce software from Commerce Fabric, Inc. for brands and retailers, now sold as Merchandising Studio (product data for AI shopping) and Dropship. Its REST APIs, documented as v3, cover orders, inventory, catalogue, pricing, carts and dropship.",
      "url": "https://www.anchorterminal.com/tools/fabric",
      "markdownUrl": "https://www.anchorterminal.com/tools/fabric.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/fabric.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/fabric.json",
      "license": "Proprietary SaaS under Fabric's Terms and Conditions (last updated 1 January 2026) and an order form",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.fabric.inc/v3",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Server-to-server calls use a System App with the OpenID Connect client credentials flow. A merchant admin creates the app in the Copilot console, picks one role (Admin, Developer Admin, Developer Viewer, Editor, Viewer or a module editor) and receives a client ID and secret. System tokens last 10 minutes and have no refresh token. User Apps use the authorisation code flow with PKCE for shoppers, with 30-minute user tokens and rotating refresh tokens. Every call also carries an x-fabric-tenant-id header. The Product Agent API uses its own client credentials token, valid for 60 minutes.",
      "pricing": "paid",
      "pricingNotes": "No public prices. fabric.inc/pricing returns 404, the developer docs say to reach out for a trial account, and the sites link to a demo request. Services run under an order form. The terms say beta services are free of charge (checked 14 October 2026).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the 69 OpenAPI files listed there, the terms or the site pages read on 14 October 2026.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://developer.fabric.inc/v3/home",
      "llmsTxt": "https://developer.fabric.inc/llms.txt",
      "openapi": "https://developer.fabric.inc/openapi/orders/v3/orders.openapi.yaml",
      "capabilities": [
        "commerce.orders",
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.headless"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "closed-source",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "sales-led",
        "sla",
        "soc2"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.7,
        "grade": "E",
        "agentReady": false,
        "rank": 949,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 18,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 15,
          "payments": 0,
          "reliability": 23,
          "schema": 79,
          "security": 62,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Public OpenAPI files for about 980 operations, llms.txt, client credentials with role-limited system apps, and a published 99.9 per cent SLA. Access needs a sales contract, with no public price or self-serve trial. The commerce docs are labelled legacy, the newest release notes date from July 2025, and no status page was found.",
        "bestFor": "A merchant-side API for retailers already on Fabric's order management, catalogue or dropship products.",
        "strengths": [
          "69 public OpenAPI files covering orders, inventory, catalogue, carts, pricing and dropship, listed in llms.txt",
          "System apps take one of ten roles, including Viewer and module-only editors, and tokens expire after 10 minutes",
          "Standardised JSON error codes with service and endpoint context for the Orders and Inventory APIs",
          "Published SLA of 99.9 per cent monthly availability with service credits up to 40 per cent"
        ],
        "weaknesses": [
          "No public price, free tier or self-serve signup. A trial account is arranged with Fabric",
          "The v3 and v2 commerce docs are labelled legacy, and the newest dated release notes are from July 2025",
          "No status page, rate-limit figures, Retry-After guidance or idempotency keys were found",
          "No official SDKs and no MCP server for the commerce APIs. The docs MCP server only searches documentation"
        ],
        "agentNotes": [
          "Get the tenant ID and a System App client ID and secret from the merchant's Copilot admin, with the narrowest role the task needs",
          "Request a new system token from {authURL}/v1/token every 10 minutes, since system apps receive no refresh token",
          "Send x-fabric-tenant-id on every call, and x-fabric-channel-id where the merchant sells in more than one channel",
          "Page order searches with offset and limit, because the default response returns 10 orders",
          "Read errorCode and context.endpoint in Orders and Inventory errors, and check for duplicates before retrying a write"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43.7
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 15,
          "payments": 0,
          "reliability": 23,
          "schema": 79,
          "security": 62,
          "transparency": 35
        },
        "provenanceScore": 74
      },
      "connect": {
        "http": "curl -X POST '{authURL}/v1/token' \\\n  -H 'content-type: application/x-www-form-urlencoded' \\\n  --data-urlencode 'grant_type=client_credentials' \\\n  --data-urlencode 'scope=s2s' \\\n  --data-urlencode 'client_id={clientId}' \\\n  --data-urlencode 'client_secret={clientSecret}'\ncurl https://api.fabric.inc/v3/product-attributes \\\n  -H 'Authorization: Bearer {token}' \\\n  -H 'x-fabric-tenant-id: {tenantId}'"
      },
      "letme": {
        "capability": "https://letme.dev/commerce.orders",
        "tool": "https://letme.dev/fabric"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Commerce Fabric, Inc.",
        "domain": "fabric.inc",
        "domainRegistered": "2019-08-08",
        "endpointOnVendorDomain": true,
        "terms": "https://fabric.inc/legal/terms-and-conditions",
        "privacy": "https://fabric.inc/legal/privacy-policy",
        "statusPage": "",
        "changelog": "https://developer.fabric.inc/v3/release-notes/july2025/release-summary",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The Terms and Conditions (last updated 1 January 2026) and the website terms of use name Commerce Fabric, Inc., 455 Market St. PMB 66768 Suite 1940, San Francisco, California 94105-2448. The site footer reads Fabric, Inc., San Francisco and Toronto.",
          "The privacy policy is dated 14 January 2021. The Data Processing Addendum it and the terms link at https://fabric.inc/data-processing-addendum returned 404, as did https://fabric.inc/api-license, named as the API licence in the OpenAPI files.",
          "No status page was found. status.fabric.inc does not resolve.",
          "fabric.inc/.well-known/security.txt and api.fabric.inc/.well-known/security.txt return 404.",
          "RDAP for fabric.inc gives a registration date of 8 August 2019 and GoDaddy.com, LLC as registrar."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/fabric.json",
      "live": {
        "slug": "fabric",
        "probe": {
          "target": "https://api.fabric.inc/v3",
          "method": "get",
          "lastAt": "2026-10-14T09:41:50.740446708Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 255,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 259,
          "p95ms24h": 360,
          "samples24h": 17,
          "samples30d": 17,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "updatedAt": "2026-10-14T09:41:50.740446708Z"
      }
    },
    "answer": "Vendure scores 70.9 (BB) on agent readiness against Fabric's 43.7 (E), and leads in every scored category.",
    "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": 142,
        "ranked": true,
        "rankOf": 1076,
        "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-14T09:42:12.357506706Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 32,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 39,
          "p95ms24h": 87,
          "samples24h": 248,
          "samples30d": 3525,
          "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": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 100,
              "ok": 100
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "vendurehq/vendure",
            "version": "v3.8.0",
            "released": "2026-10-12",
            "seenAt": "2026-10-13T23:31:20.29403428Z"
          },
          {
            "registry": "npm",
            "name": "@vendure/core",
            "version": "3.8.0",
            "seenAt": "2026-10-13T23:31:19.495334701Z"
          }
        ],
        "githubStars": 8514,
        "npmWeekly": 34485,
        "securityTxt": {
          "url": "https://vendure.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-13T15:45:52.691634383Z"
        },
        "llmsTxt": {
          "url": "https://docs.vendure.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-13T14:12:44.98431627Z"
        },
        "domain": {
          "domain": "vendure.io",
          "checkedAt": "2026-10-11T13:16:38.957893723Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/vendurehq/vendure/master/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-13T20:24:13.769695549Z",
            "changedAt": "2026-10-12T19:59:27.884094455Z",
            "fingerprint": "06b116c1e25b"
          },
          {
            "url": "https://vendure.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-13T20:24:59.150898331Z",
            "changedAt": "2026-10-13T20:24:59.150898331Z",
            "fingerprint": "989c30b36d79"
          },
          {
            "url": "https://vendure.io/company/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-13T20:24:56.936417264Z",
            "changedAt": "2026-10-12T20:00:09.625722582Z",
            "fingerprint": "ec4f590b86fd"
          },
          {
            "url": "https://raw.githubusercontent.com/vendurehq/vendure/master/LICENSE.md",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-13T20:24:15.775538275Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4fa079f39d4c"
          }
        ],
        "updatedAt": "2026-10-14T09:42:12.357506706Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Commerce Fabric, Inc.",
        "b": "Vendure (Elevantiq GmbH)",
        "name": "Vendor"
      },
      {
        "a": "https://api.fabric.inc/v3",
        "b": "https://readonlydemo.vendure.io/shop-api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "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 SaaS under Fabric's Terms and Conditions (last updated 1 January 2026) and an order form",
        "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": "none",
        "b": "2026-09-02",
        "name": "Last release"
      },
      {
        "a": "2026-01-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2021-01-14",
        "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": "none",
        "b": "8.5k stars, 30k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Vendure scores 70.9 (BB) on agent readiness against Fabric's 43.7 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Fabric or Vendure?"
      },
      {
        "answer": "Fabric uses an OAuth sign-in. Vendure takes an API key or an OAuth sign-in.",
        "question": "Do Fabric and Vendure need an API key?"
      },
      {
        "answer": "Yes. Fabric has a hosted endpoint at https://api.fabric.inc/v3 and Vendure at https://readonlydemo.vendure.io/shop-api.",
        "question": "Can an agent call Fabric and Vendure without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Fabric. Vendure is open source (GPL-3.0-or-later).",
        "question": "Are Fabric and Vendure open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Vendure loses 3 points for them"
        ],
        "goodFor": "A merchant-side API for retailers already on Fabric's order management, catalogue or dropship products.",
        "slug": "fabric",
        "watchFor": "No public price, free tier or self-serve signup. A trial account is arranged with Fabric"
      },
      {
        "aheadOn": [
          "Reliability, 89 against 23",
          "Schema \u0026 documentation, 91 against 79",
          "Agent ergonomics, 68 against 57",
          "Payments \u0026 pricing, 45 against 0",
          "Maintenance \u0026 community, 85 against 15",
          "Transparency \u0026 trust, 67 against 55"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "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.orders",
      "name": "Commerce orders"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-fabric.json",
        "title": "Adobe Commerce (Magento) vs Fabric",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-vendure.json",
        "title": "Adobe Commerce (Magento) vs Vendure",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentzon-vs-fabric.json",
        "title": "Agentzon vs Fabric",
        "url": "https://www.anchorterminal.com/compare/agentzon-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentzon-vs-vendure.json",
        "title": "Agentzon vs Vendure",
        "url": "https://www.anchorterminal.com/compare/agentzon-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-fabric.json",
        "title": "BigCommerce API + MCP vs Fabric",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-fabric"
      },
      {
        "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-fabric.json",
        "title": "Commerce Layer API + MCP vs Fabric",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-fabric"
      },
      {
        "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-fabric.json",
        "title": "commercetools vs Fabric",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-vendure.json",
        "title": "commercetools vs Vendure",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ecwid-vs-fabric.json",
        "title": "Ecwid by Lightspeed vs Fabric",
        "url": "https://www.anchorterminal.com/compare/ecwid-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ecwid-vs-vendure.json",
        "title": "Ecwid by Lightspeed vs Vendure",
        "url": "https://www.anchorterminal.com/compare/ecwid-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elastic-path-vs-fabric.json",
        "title": "Elastic Path API + MCP vs Fabric",
        "url": "https://www.anchorterminal.com/compare/elastic-path-vs-fabric"
      },
      {
        "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/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/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-wix.json",
        "title": "Vendure vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/vendure-vs-wix"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-medusa.json",
        "title": "Fabric vs Medusa API + MCP",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-medusa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-saleor.json",
        "title": "Fabric vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-shopify.json",
        "title": "Fabric vs Shopify API + MCP",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-shopify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-shopware.json",
        "title": "Fabric vs Shopware",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-shopware"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-snipcart.json",
        "title": "Fabric vs Snipcart API + MCP",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-snipcart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-spree-commerce.json",
        "title": "Fabric vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-square.json",
        "title": "Fabric vs Square",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-swell.json",
        "title": "Fabric vs Swell",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-swell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-wix.json",
        "title": "Fabric vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-wix"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fabric-vs-woocommerce.json",
        "title": "Fabric vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/fabric-vs-woocommerce"
      }
    ],
    "scores": [
      {
        "by": 66,
        "edge": "vendure",
        "fabric": 23,
        "key": "reliability",
        "name": "Reliability",
        "vendure": 89,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "vendure",
        "fabric": 79,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "vendure": 91,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "vendure",
        "fabric": 57,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "vendure": 68,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "vendure",
        "fabric": 62,
        "key": "security",
        "name": "Security \u0026 auth",
        "vendure": 65,
        "weight": 14
      },
      {
        "by": 45,
        "edge": "vendure",
        "fabric": 0,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "vendure": 45,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 70,
        "edge": "vendure",
        "fabric": 15,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "vendure": 85,
        "weight": 7
      },
      {
        "by": 12,
        "edge": "vendure",
        "fabric": 55,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "vendure": 67,
        "weight": 7
      }
    ],
    "summary": "Vendure scores 70.9 (BB) on agent readiness against Fabric's 43.7 (E), and leads in every scored category. Both do commerce orders.",
    "verdicts": {
      "fabric": "Public OpenAPI files for about 980 operations, llms.txt, client credentials with role-limited system apps, and a published 99.9 per cent SLA. Access needs a sales contract, with no public price or self-serve trial. The commerce docs are labelled legacy, the newest release notes date from July 2025, and no status page was found.",
      "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/fabric-vs-vendure",
    "json": "https://www.anchorterminal.com/compare/fabric-vs-vendure.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/fabric-vs-vendure.md",
    "slim": "https://www.anchorterminal.com/compare/fabric-vs-vendure.min.md"
  },
  "markdown": "Vendure scores 70.9 (BB) on agent readiness against Fabric's 43.7 (E), and leads in every scored category. Both do commerce orders.\n\n- Fabric: grade E, 43.7/100, rank #949 of 1076. Markdown https://www.anchorterminal.com/tools/fabric.md · JSON https://www.anchorterminal.com/api/v1/tools/fabric.json\n- Vendure: grade BB, 70.9/100, rank #142 of 1076. Markdown https://www.anchorterminal.com/tools/vendure.md · JSON https://www.anchorterminal.com/api/v1/tools/vendure.json\n- Best commerce platforms and checkout APIs for AI agents: https://www.anchorterminal.com/best/commerce/index.md\n- All 171 commerce comparisons: https://www.anchorterminal.com/compare/commerce/index.md\n\n## Which one, for what\n\n### Fabric (E)\n\nGood for: A merchant-side API for retailers already on Fabric's order management, catalogue or dropship products.\n\nAlso in its favour:\n- No incidents deducted, where Vendure loses 3 points for them\n\nWatch for: No public price, free tier or self-serve signup. A trial account is arranged with Fabric\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 23\n- Schema \u0026 documentation, 91 against 79\n- Agent ergonomics, 68 against 57\n- Payments \u0026 pricing, 45 against 0\n- Maintenance \u0026 community, 85 against 15\n- Transparency \u0026 trust, 67 against 55\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\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 | Fabric | Vendure | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 23 | 89 | Vendure +66 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 91 | Vendure +12 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 68 | Vendure +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 65 | Vendure +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 45 | Vendure +45 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 15 | 85 | Vendure +70 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 67 | Vendure +12 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **43.7 · E** | **70.9 · BB** | |\n\n## Facts side by side\n\n| Fact | Fabric | Vendure |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Commerce Fabric, Inc. | Vendure (Elevantiq GmbH) |\n| Hosted endpoint | `https://api.fabric.inc/v3` | `https://readonlydemo.vendure.io/shop-api` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary SaaS under Fabric's Terms and Conditions (last updated 1 January 2026) and an order form | GPL-3.0-or-later |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | none | 2026-09-02 |\n| Terms last updated | 2026-01-01 | no date given |\n| Privacy policy last updated | 2021-01-14 | 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 | none | 8.5k stars, 30k npm/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**Fabric.** Public OpenAPI files for about 980 operations, llms.txt, client credentials with role-limited system apps, and a published 99.9 per cent SLA. Access needs a sales contract, with no public price or self-serve trial. The commerce docs are labelled legacy, the newest release notes date from July 2025, and no status page was found.\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### Fabric\n\n1. Get the tenant ID and a System App client ID and secret from the merchant's Copilot admin, with the narrowest role the task needs\n2. Request a new system token from {authURL}/v1/token every 10 minutes, since system apps receive no refresh token\n3. Send x-fabric-tenant-id on every call, and x-fabric-channel-id where the merchant sells in more than one channel\n4. Page order searches with offset and limit, because the default response returns 10 orders\n5. Read errorCode and context.endpoint in Orders and Inventory errors, and check for duplicates before retrying a write\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, Fabric or Vendure?\n\nVendure scores 70.9 (BB) on agent readiness against Fabric's 43.7 (E), and leads in every scored category.\n\n### Do Fabric and Vendure need an API key?\n\nFabric uses an OAuth sign-in. Vendure takes an API key or an OAuth sign-in.\n\n### Can an agent call Fabric and Vendure without installing anything?\n\nYes. Fabric has a hosted endpoint at https://api.fabric.inc/v3 and Vendure at https://readonlydemo.vendure.io/shop-api.\n\n### Are Fabric and Vendure open source?\n\nNo open-source release is listed for Fabric. 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/fabric-vs-vendure.json, and with the fewest tokens: https://www.anchorterminal.com/compare/fabric-vs-vendure.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"fabric\", \"b\": \"vendure\"}`. From a terminal: `anchor compare fabric vendure`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/fabric.json and https://www.anchorterminal.com/api/v1/tools/vendure.json\n\n## Other comparisons with Fabric or Vendure\n\n- [Adobe Commerce (Magento) vs Fabric](https://www.anchorterminal.com/compare/adobe-commerce-vs-fabric.md)\n- [Adobe Commerce (Magento) vs Vendure](https://www.anchorterminal.com/compare/adobe-commerce-vs-vendure.md)\n- [Agentzon vs Fabric](https://www.anchorterminal.com/compare/agentzon-vs-fabric.md)\n- [Agentzon vs Vendure](https://www.anchorterminal.com/compare/agentzon-vs-vendure.md)\n- [BigCommerce API + MCP vs Fabric](https://www.anchorterminal.com/compare/bigcommerce-vs-fabric.md)\n- [BigCommerce API + MCP vs Vendure](https://www.anchorterminal.com/compare/bigcommerce-vs-vendure.md)\n- [Commerce Layer API + MCP vs Fabric](https://www.anchorterminal.com/compare/commerce-layer-vs-fabric.md)\n- [Commerce Layer API + MCP vs Vendure](https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.md)\n- [commercetools vs Fabric](https://www.anchorterminal.com/compare/commercetools-vs-fabric.md)\n- [commercetools vs Vendure](https://www.anchorterminal.com/compare/commercetools-vs-vendure.md)\n- [Ecwid by Lightspeed vs Fabric](https://www.anchorterminal.com/compare/ecwid-vs-fabric.md)\n- [Ecwid by Lightspeed vs Vendure](https://www.anchorterminal.com/compare/ecwid-vs-vendure.md)\n- [Elastic Path API + MCP vs Fabric](https://www.anchorterminal.com/compare/elastic-path-vs-fabric.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- [Spree Commerce vs Vendure](https://www.anchorterminal.com/compare/spree-commerce-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 Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/vendure-vs-wix.md)\n- [Vendure vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/vendure-vs-woocommerce.md)\n- [Fabric vs Medusa API + MCP](https://www.anchorterminal.com/compare/fabric-vs-medusa.md)\n- [Fabric vs Saleor API + MCP](https://www.anchorterminal.com/compare/fabric-vs-saleor.md)\n- [Fabric vs Shopify API + MCP](https://www.anchorterminal.com/compare/fabric-vs-shopify.md)\n- [Fabric vs Shopware](https://www.anchorterminal.com/compare/fabric-vs-shopware.md)\n- [Fabric vs Snipcart API + MCP](https://www.anchorterminal.com/compare/fabric-vs-snipcart.md)\n- [Fabric vs Spree Commerce](https://www.anchorterminal.com/compare/fabric-vs-spree-commerce.md)\n- [Fabric vs Square](https://www.anchorterminal.com/compare/fabric-vs-square.md)\n- [Fabric vs Swell](https://www.anchorterminal.com/compare/fabric-vs-swell.md)\n- [Fabric vs Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/fabric-vs-wix.md)\n- [Fabric vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/fabric-vs-woocommerce.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-14",
    "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": "Fabric vs Vendure",
        "url": ""
      }
    ],
    "description": "Vendure scores 70.9 (BB) to Fabric's 43.7 (E) for commerce orders. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Fabric E 43.7",
      "Vendure BB 70.9",
      "scores"
    ],
    "h1": "Fabric vs Vendure",
    "image": "https://www.anchorterminal.com/assets/og/compare-fabric-vs-vendure.png",
    "path": "/compare/fabric-vs-vendure",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Fabric vs Vendure for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/fabric-vs-vendure"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 630
  },
  "version": 1
}
