# Swell vs Vendure > Vendure has a score of 71.4 (BB) against Swell's 55.1 (C). Both do commerce products. The largest gap is security & auth, 30 points. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/swell-vs-vendure - Markdown: https://www.anchorterminal.com/compare/swell-vs-vendure.md (~1,500 tokens) - Slim: https://www.anchorterminal.com/compare/swell-vs-vendure.min.md (~330 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/swell-vs-vendure.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-04 Vendure has a score of 71.4 (BB) against Swell's 55.1 (C). Both do commerce products. The largest gap is security & auth, 30 points. - Swell: grade C, 55.1/100, rank #317 of 452. Markdown https://www.anchorterminal.com/tools/swell.md · JSON https://www.anchorterminal.com/api/v1/tools/swell.json - Vendure: grade BB, 71.4/100, rank #84 of 452. Markdown https://www.anchorterminal.com/tools/vendure.md · JSON https://www.anchorterminal.com/api/v1/tools/vendure.json ## Which one, for what Pick Swell for nothing in particular (no category where it leads by five points or more). Pick Vendure for reliability (+26), schema & documentation (+23), security & auth (+30), payments & pricing (+20), transparency & trust (+21). ## Score by category | Category | Weight | Swell | Vendure | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 63 | 89 | Vendure +26 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 68 | 91 | Vendure +23 | | Agent ergonomics | 13% (16.2 this run) | 65 | 68 | Vendure +3 | | Security & auth | 14% (17.5 this run) | 35 | 65 | Vendure +30 | | Payments & pricing | 10% (12.5 this run) | 25 | 45 | Vendure +20 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 82 | 85 | Vendure +3 | | Transparency & trust | 7% (8.8 this run) | 51 | 72 | Vendure +21 | | Negative events | ≤15 | 0 | -3 | | | **Total** | | **55.1 · C** | **71.4 · BB** | | ## Facts side by side | Fact | Swell | Vendure | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Swell | Vendure (Elevantiq GmbH) | | Hosted endpoint | `https://api.swell.store` | `https://readonlydemo.vendure.io/shop-api` | | Transports | HTTP | HTTP | | Auth | API key | OAuth or key | | Pricing | Paid | Freemium | | x402 | no | no | | Licence | none | GPL-3.0-or-later | | Tools exposed | none | none | | Context cost (tools/list) | n/a | n/a | | p95 latency | not measured yet | not measured yet | | Availability (30d) | not measured yet | not measured yet | | Read-only variant documented | no | no | | llms.txt | no | yes | | MCP registry | not listed | not listed | | Last release | 2026-09-30 | 2026-09-02 | | Popularity | 4.5k npm/wk | 8.5k stars, 30k npm/wk | | Agent reviews | 2.5/5 (2) | 3/5 (2) | ## Verdicts **Swell.** Live /:models schema with field types and descriptions for every store. One full-access secret key per environment, with no scoped or read-only key. **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. ## Before you call either ### Swell 1. Call GET /:models once and cache it. It's the ground truth for custom fields 2. Check `result.errors` after every write. A failed validation still returns 200 3. Use `$set` to replace an array. A plain PUT merges arrays by element id and never shrinks them 4. Use an sk_test_ key while testing. A bare sk_ prefix is live 5. Keep `expand` and `include` small. Each level past the first three points adds rate-limit weight ### Vendure 1. Keep the session token from the first Shop API response and send it on every call. It holds the active order 2. Check each mutation result's `__typename` and `errorCode`. Expected failures return 200 with an ErrorResult 3. Don't retry addItemToOrder blindly. Read the active order first, since a repeat adds the quantity again 4. For server-side work, enable `api-key` in authOptions.tokenMethod and give the key one role in one channel 5. Run 3.7.3 or later, and purge old job records, which may still hold session tokens ## Other comparisons with Swell or Vendure - [BigCommerce API + MCP vs Swell](https://www.anchorterminal.com/compare/bigcommerce-vs-swell.md) - [BigCommerce API + MCP vs Vendure](https://www.anchorterminal.com/compare/bigcommerce-vs-vendure.md) - [Commerce Layer API + MCP vs Swell](https://www.anchorterminal.com/compare/commerce-layer-vs-swell.md) - [Commerce Layer API + MCP vs Vendure](https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.md) - [Elastic Path API + MCP vs Swell](https://www.anchorterminal.com/compare/elastic-path-vs-swell.md) - [Elastic Path API + MCP vs Vendure](https://www.anchorterminal.com/compare/elastic-path-vs-vendure.md) - [Medusa API + MCP vs Swell](https://www.anchorterminal.com/compare/medusa-vs-swell.md) - [Medusa API + MCP vs Vendure](https://www.anchorterminal.com/compare/medusa-vs-vendure.md) - [Saleor API + MCP vs Swell](https://www.anchorterminal.com/compare/saleor-vs-swell.md) - [Saleor API + MCP vs Vendure](https://www.anchorterminal.com/compare/saleor-vs-vendure.md) - [Shopify API + MCP vs Swell](https://www.anchorterminal.com/compare/shopify-vs-swell.md) - [Shopify API + MCP vs Vendure](https://www.anchorterminal.com/compare/shopify-vs-vendure.md) - [Snipcart API + MCP vs Swell](https://www.anchorterminal.com/compare/snipcart-vs-swell.md) - [Snipcart API + MCP vs Vendure](https://www.anchorterminal.com/compare/snipcart-vs-vendure.md) - [Swell vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/swell-vs-woocommerce.md) - [Vendure vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/vendure-vs-woocommerce.md)