---
title: "List products"
method: GET
path: "/products"
tags: ["Products"]
---

# List products

`GET /products`

Lists products in the catalog. Includes products synced from Stripe, Shopify/WooCommerce, and products pushed via the Commerce API.

## Query parameters

- `limit` integer
- `offset` integer
- `provider` 'api' | 'stripe' | 'shopify' | 'woocommerce' | 'manual'
- `search` string

## Response `200`

Products listed successfully

- object
  - `success` boolean
  - `products` CommerceProduct[]
    - `id` string — Internal Sequenzy product ID
    - `productId` string, nullable — Your product identifier (providerProductId)
    - `providerProductId` string, nullable — Provider product identifier
    - `provider` 'api' | 'stripe' | 'shopify' | 'woocommerce' | 'manual'
    - `title` string
    - `description` string, nullable
    - `imageUrl` string, nullable
    - `url` string, nullable
    - `price` integer, nullable — Unit price in cents
    - `priceCents` integer, nullable
    - `compareAtPrice` integer, nullable
    - `compareAtPriceCents` integer, nullable
    - `currency` string, nullable
    - `inStock` boolean
    - `providerCreatedAt` string, date-time, nullable — Product creation time reported by the source catalog. Used for newest-product ranking.
    - `digitalDelivery` ProductDigitalDelivery, nullable — Distributable file delivered after a purchase of this product.
      - `url` string
      - `source` 'upload' | 'url'
      - `fileName` string, nullable
      - `fileSizeBytes` integer, nullable
      - `mimeType` string, nullable
      - `updatedAt` string, date-time, nullable
    - `variants` object[]
      - `variantId` string
      - `title` string
      - `sku` string, nullable
      - `priceCents` integer, nullable
      - `compareAtPriceCents` integer, nullable
      - `imageUrl` string, nullable
      - `inStock` boolean
      - `inventoryQuantity` integer, nullable
      - `options` object[]
        - `name` string
        - `value` string
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `pagination` object
    - `limit` integer
    - `offset` integer
    - `count` integer — Number of products in this page
    - `total` integer — Total products matching the filters across the whole catalog
    - `hasMore` boolean — Whether more products remain. Page until this is false.

## Other responses

- `400` — Invalid provider filter
- `401` — Unauthorized

---

[API](https://skmtc.net/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.net/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/versions/af1cf9620482/schema)
