Swell website screenshot

Swell

Swell is a customizable, API-first headless commerce platform powering modern B2C, B2B, subscription, and marketplace experiences. It exposes a server-side Backend API for managing the full commerce data model (products, variants, carts, orders, payments, refunds, shipments, returns, subscriptions, accounts, invoices, coupons, promotions, gift cards, content, files, events, webhooks) plus a public-key client-side Frontend API for storefronts and an experimental GraphQL endpoint. The platform ships official Node and PHP libraries, a universal JavaScript SDK (Swell.js), headless storefront starters for Next.js (Horizon, verswell-commerce, nextjs-commerce) and Nuxt (Origin), a Swell Apps platform with CLI and Apps SDK for extending the data and logic layers via custom data models, events, notifications, webhooks, and edge functions running in 200+ locations, plus AI coding-agent skills and Claude Code plugins.

5 APIs 11 Features
CommerceHeadless CommerceAPI-FirstB2CB2BSubscriptionsMarketplacesWholesaleStorefrontCheckoutPaymentsCartsOrdersCatalogInternationalization

APIs

Swell Backend API

Server-side REST API authorized with a secret API key and store ID. Covers products, variants, stock, categories, attributes, purchase links, carts, orders, payments, refunds, s...

Swell Frontend API

Public-key-authorized REST API designed for storefronts, JAMstack apps, and SSR frameworks. Powers Swell.js and the official Next.js (Horizon, verswell-commerce, nextjs-commerce...

Swell GraphQL API

Experimental (alpha) GraphQL endpoint that exposes a curated subset of the storefront commerce model — products, attributes, categories, accounts, sessions, carts, orders, payme...

Swell Webhooks

Event-driven HTTP callbacks for cart, order, subscription, payment, account, and product lifecycle events. Configurable via the dashboard (Developer → Webhooks) or programmatica...

Swell Apps Platform

Swell Apps extend the platform with custom data models (added fields or new entities), events (triggering functions, webhooks, and notifications), edge functions deployed to 200...

Collections

Arazzo Workflows

Swell Create Cart and Apply Coupon

Create a backend cart with items and apply a coupon code to it.

ARAZZO

Swell Build Cart and Convert to Order

Create a cart, populate its items, then convert it into an order.

ARAZZO

Swell Find and Cancel Active Subscription

Locate an account's active subscription and cancel it, branching when none exists.

ARAZZO

Swell Capture and Refund Payment

Record a payment against an order, then issue a refund against that payment.

ARAZZO

Swell Create Category and Product

Create a category and then create a product assigned to that category.

ARAZZO

Swell Create and Verify Product

Create a product in the catalog and immediately retrieve it to confirm it was stored.

ARAZZO

Swell Create and Verify Subscription

Create a recurring subscription for an account and product, then read it back.

ARAZZO

Swell Find-or-Create Customer and Order

Look up a customer by email and reuse it or create it, then place an order.

ARAZZO

Swell Onboard Customer and Place Order

Create a customer account and immediately place an order for that account.

ARAZZO

Swell Storefront Validate and Apply Coupon

Validate a coupon code, then apply it to the session cart only when it is valid.

ARAZZO

Swell Storefront Add Item and Submit Order

Look up a product, add it to the session cart, then submit the cart as an order.

ARAZZO

Swell Storefront Register and Log In

Create a storefront customer account and immediately authenticate the session.

ARAZZO

Swell Storefront Adjust Cart Item Quantity

Read the session cart, then update the quantity of one of its line items.

ARAZZO

GraphQL

Swell GraphQL API

Experimental (alpha) GraphQL endpoint that exposes a curated subset of the storefront commerce model — products, attributes, categories, accounts, sessions, carts, orders, payme...

GRAPHQL

Pricing Plans

Swell Io Plans Pricing

5 plans

PLANS

Rate Limits

Swell Io Rate Limits

0 limits

RATE LIMITS

FinOps

Features

Customizable, API-first core

Every commerce primitive — products, carts, orders, subscriptions — is exposed as a REST resource with full CRUD and rich querying.

Headless storefront

Build any storefront — Next.js, Nuxt, Astro, mobile, native — against the public-key Frontend API and Swell.js SDK.

Native subscriptions

First-class recurring billing with plans, trials, intervals, billing limits, and dunning baked into products and orders.

B2B and wholesale

Account groups, volume pricing, invoicing, and price lists for B2B and wholesale alongside D2C flows.

Marketplaces

Multi-vendor selling with split fulfillment, vendor accounts, and per-vendor reporting.

230 currencies, 170 languages

Built-in internationalization for global stores including priced currencies on higher plans.

Apps platform with edge functions

Extend the data model, events, notifications, and admin UI via the Swell Apps platform; functions run in 200+ locations with no cold start.

Custom wire protocol

Official Node and PHP libraries use a custom protocol on port 8443 for improved performance and caching versus plain HTTPS.

MongoDB-style querying

Powerful `where` filters with comparison, logical, and array operators, plus `expand`, `include`, `sort`, `search`, and field projection.

Webhooks with retries and IP allowlist

Reliable event delivery with documented retry schedule, auto-disable, and a published source-IP allowlist for inbound verification.

AI coding-agent skills

Official Claude Code plugins and AI coding-agent skills for Swell-aware development workflows.

Use Cases

Direct-to-consumer brands

Power D2C storefronts with full control over product, cart, checkout, and payment UX.

Subscription commerce

Box-of-the-month, SaaS-style, replenishment, and membership models with native subscription billing.

B2B and wholesale

Account-group pricing, invoicing, net terms, and bulk ordering for wholesale channels.

Multi-vendor marketplaces

Operate marketplaces with vendor onboarding, split fulfillment, and per-vendor payouts.

Headless omnichannel

Serve web, native mobile, in-store, and AI-agent surfaces from a single commerce backend.

AI-driven commerce

Back conversational commerce agents and AI shopping assistants with a clean, query-rich API.

Composable enterprise commerce

Combine Swell with best-of-breed CMS, search, payments, ERP, and analytics for enterprise stacks.

Integrations

Stripe

Default card processing and tokenization for most Swell stores.

PayPal

PayPal Express, billing agreements, and subscription processing.

Braintree

Multi-currency card processing.

Authorize.net

Card processing gateway.

Amazon Pay

Fast, account-based checkout via Amazon.

Apple Pay

Mobile wallet payments.

Google Pay

Digital wallet payments.

Klarna

Buy-now-pay-later installments.

Affirm

Buy-now-pay-later financing.

Paysafecard

Prepaid voucher payments.

QuickPay

Payment service provider integration.

99Minds.io

Omnichannel gift card and loyalty programs.

Klaviyo

Email, SMS, mobile push, and web marketing automation.

Mailchimp

Email marketing and automation.

Omnisend

Email and SMS marketing platform.

Churn Buster

Subscription retention and dunning.

Oppizi

Offline marketing campaign attribution.

Algolia

Hosted product search and discovery.

Avalara

Sales-tax calculation and filing.

Contentful

Headless CMS via the official Swell Contentful app.

Builder.io

Visual page-building CMS.

Vercel

Frontend deployment and edge hosting for Swell storefronts.

Anthropic Claude

Official Claude Code plugins and AI coding-agent skills for Swell development workflows.

Solutions

D2C Commerce

Headless storefronts for direct-to-consumer brands.

B2B Commerce

Wholesale catalogs, account groups, invoicing, and net-terms billing.

Subscriptions

Native recurring billing with flexible plans, trials, and limits.

Marketplaces

Multi-vendor selling with split fulfillment and per-vendor reporting.

Omnichannel

Serve web, native, in-store, and agent surfaces from a single commerce backend.

Enterprise

Custom-priced plans for merchants exceeding $10M annual sales with negotiated SLAs.

Semantic Vocabularies

Swell Io Context

57 classes · 0 properties

JSON-LD

API Governance Rules

Swell API Rules

7 rules · 3 errors 3 warnings 1 info

SPECTRAL

JSON Structure

Swell Account Structure

13 properties

JSON STRUCTURE

Swell Order Structure

19 properties

JSON STRUCTURE

Swell Product Structure

26 properties

JSON STRUCTURE

Swell Subscription Structure

13 properties

JSON STRUCTURE

Example Payloads

Swell Account Create Example

2 fields

EXAMPLE

Swell Cart Add Item Example

2 fields

EXAMPLE

Swell Order Create Example

2 fields

EXAMPLE

Swell Product Create Example

2 fields

EXAMPLE

Swell Webhook Event Example

5 fields

EXAMPLE

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Website
Website
🌐
DeveloperPortal
DeveloperPortal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🚀
GettingStarted
GettingStarted
💰
Pricing
Pricing
📝
Signup
Signup
🔗
Login
Login
🌐
Console
Console
🟢
StatusPage
StatusPage
📄
ChangeLog
ChangeLog
📰
Blog
Blog
💬
Support
Support
🔗
Contact
Contact
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
👥
GitHubOrganization
GitHubOrganization
🔗
Forums
Forums
🔗
X
X
🔗
LinkedIn
LinkedIn
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
Resources
Resources
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
JSONLD
JSONLD
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Swell Frontend API
  version: 2025-01
request:
  auth:
    type: apikey
    key: Authorization
    value: '{{Authorization}}'
    placement: header
items:
- info:
    name: Products
    type: folder
  items:
  - info:
      name: List Products
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/products
      params:
      - name: limit
        value: ''
        type: query
      - name: page
        value: ''
        type: query
      - name: search
        value: ''
        type: query
      - name: category
        value: ''
        type: query
        description: Filter by category ID or slug.
      - name: sort
        value: ''
        type: query
      - name: expand
        value: ''
        type: query
    docs: List Products
  - info:
      name: Retrieve Product
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/products/:slug
      params:
      - name: slug
        value: ''
        type: path
        description: Product slug or ID.
    docs: Retrieve Product
- info:
    name: Categories
    type: folder
  items:
  - info:
      name: List Categories
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/categories
    docs: List Categories
  - info:
      name: Retrieve Category
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/categories/:slug
      params:
      - name: slug
        value: ''
        type: path
    docs: Retrieve Category
- info:
    name: Attributes
    type: folder
  items:
  - info:
      name: List Attributes
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/attributes
    docs: List Attributes
- info:
    name: Cart
    type: folder
  items:
  - info:
      name: Retrieve Current Cart
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/cart
    docs: Retrieve Current Cart
  - info:
      name: Update Current Cart
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/cart
      body:
        type: json
        data: '{}'
    docs: Update Current Cart
  - info:
      name: Add Item To Cart
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/cart/items
      body:
        type: json
        data: '{}'
    docs: Add Item To Cart
  - info:
      name: Update Cart Item
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/cart/items/:itemId
      params:
      - name: itemId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Cart Item
  - info:
      name: Remove Cart Item
      type: http
    http:
      method: DELETE
      url: https://{storeId}.swell.store/api/cart/items/:itemId
      params:
      - name: itemId
        value: ''
        type: path
    docs: Remove Cart Item
  - info:
      name: Apply Coupon To Cart
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/cart/apply-coupon
      body:
        type: json
        data: '{}'
    docs: Apply Coupon To Cart
  - info:
      name: Apply Gift Card To Cart
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/cart/apply-giftcard
      body:
        type: json
        data: '{}'
    docs: Apply Gift Card To Cart
  - info:
      name: Recover Cart
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/cart/recover/:token
      params:
      - name: token
        value: ''
        type: path
    docs: Recover Cart
- info:
    name: Checkout
    type: folder
  items:
  - info:
      name: Submit Order
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/cart/submit-order
    docs: Converts the current cart into an order. Requires billing.method and shipping.
- info:
    name: Account
    type: folder
  items:
  - info:
      name: Retrieve Current Account
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account
    docs: Retrieve Current Account
  - info:
      name: Create Account
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/account
      body:
        type: json
        data: '{}'
    docs: Create Account
  - info:
      name: Update Current Account
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/account
      body:
        type: json
        data: '{}'
    docs: Update Current Account
  - info:
      name: List Account Addresses
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account/addresses
    docs: List Account Addresses
  - info:
      name: Add Account Address
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/account/addresses
      body:
        type: json
        data: '{}'
    docs: Add Account Address
  - info:
      name: Update Account Address
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/account/addresses/:id
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Account Address
  - info:
      name: Delete Account Address
      type: http
    http:
      method: DELETE
      url: https://{storeId}.swell.store/api/account/addresses/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Delete Account Address
  - info:
      name: List Saved Cards
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account/cards
    docs: List Saved Cards
  - info:
      name: Tokenize Saved Card
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/account/cards
      body:
        type: json
        data: '{}'
    docs: Tokenize Saved Card
  - info:
      name: Remove Saved Card
      type: http
    http:
      method: DELETE
      url: https://{storeId}.swell.store/api/account/cards/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Remove Saved Card
- info:
    name: Account Session
    type: folder
  items:
  - info:
      name: Log In
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/account/login
      body:
        type: json
        data: '{}'
    docs: Log In
  - info:
      name: Log Out
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/account/logout
    docs: Log Out
  - info:
      name: Send Account Recovery Email
      type: http
    http:
      method: POST
      url: https://{storeId}.swell.store/api/account/recover
      body:
        type: json
        data: '{}'
    docs: Send Account Recovery Email
  - info:
      name: Reset Account Password
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/account/recover/:key
      params:
      - name: key
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Reset Account Password
- info:
    name: Orders
    type: folder
  items:
  - info:
      name: List Account Orders
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account/orders
    docs: List Account Orders
  - info:
      name: Retrieve Account Order
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account/orders/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve Account Order
- info:
    name: Subscriptions
    type: folder
  items:
  - info:
      name: List Account Subscriptions
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account/subscriptions
    docs: List Account Subscriptions
  - info:
      name: Retrieve Account Subscription
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/account/subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve Account Subscription
  - info:
      name: Update Account Subscription
      type: http
    http:
      method: PUT
      url: https://{storeId}.swell.store/api/account/subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Account Subscription
- info:
    name: Coupons
    type: folder
  items:
  - info:
      name: Validate Coupon Code
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/coupons/:code
      params:
      - name: code
        value: ''
        type: path
    docs: Validate Coupon Code
- info:
    name: Gift Cards
    type: folder
  items:
  - info:
      name: Retrieve Gift Card Balance
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/giftcards/:code
      params:
      - name: code
        value: ''
        type: path
    docs: Retrieve Gift Card Balance
- info:
    name: Store
    type: folder
  items:
  - info:
      name: Retrieve Store Settings
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/settings
    docs: Retrieve Store Settings
  - info:
      name: Retrieve Payment Settings
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/settings/payments
    docs: Retrieve Payment Settings
  - info:
      name: List Supported Currencies
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/settings/currencies
    docs: List Supported Currencies
- info:
    name: Content
    type: folder
  items:
  - info:
      name: List Navigation Menus
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/settings/menus
    docs: List Navigation Menus
  - info:
      name: List Content Records
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/content/:model
      params:
      - name: model
        value: ''
        type: path
        description: Custom content model slug.
    docs: List Content Records
  - info:
      name: Retrieve Content Record
      type: http
    http:
      method: GET
      url: https://{storeId}.swell.store/api/content/:model/:slug
      params:
      - name: model
        value: ''
        type: path
      - name: slug
        value: ''
        type: path
    docs: Retrieve Content Record
bundled: true