---
title: "List products"
method: GET
path: "/api/v1/commerce/products"
tags: ["commerce"]
---

# List products

`GET /api/v1/commerce/products`

## Request

- Base URL: `https://app.blueticked.com`
- URL: `https://app.blueticked.com/api/v1/commerce/products`
- Auth: HTTP bearer

List the shop's products with live stock levels, newest first (up to 200).

`stock_quantity: null` means stock is not tracked for that product, different from `0`, which means sold out.

`updated_at` is when the product was last changed.

`source` is `blueticked` for products created here and `meta_catalog` for ones imported from a Meta Commerce Manager catalog (with `source_ref` holding the catalog retailer id).

Soft-deleted products never appear; deactivated ones do, with `is_active: false`.

## Response `200`

Success

- object
  - `ok` boolean, required
  - `products` object[], required
    - `compare_at_cents` number, nullable, required
    - `id` string, uuid, required
    - `name` string, required
    - `slug` string, nullable, required
    - `description` string, nullable, required
    - `price_cents` number, nullable, required
    - `currency` string, required
    - `image_url` string, nullable, required
    - `images` object[], required
      - `url` string, required
      - `storage_path` string, nullable, required
      - `alt` string, required
      - `sort` number, required
    - `sku` string, nullable, required
    - `stock_quantity` number, nullable, required
    - `source` string, required
    - `source_ref` string, nullable, required
    - `is_active` boolean, required
    - `created_at` string, date-time, required
    - `variants` object[], required
      - `id` string, uuid, required
      - `compare_at_cents` number, nullable, required
      - `name` string, required
      - `price_cents` number, nullable, required
      - `stock_quantity` number, nullable, required
      - `is_active` boolean, required
      - `sort` number, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: Validation failed
- `401`: Unauthorized: missing or invalid API key
- `402`: Insufficient wallet balance
- `403`: Forbidden: scope, plan limit, or suspension
- `404`: Not found
- `409`: Conflict (idempotency-key reuse or resource in use)
- `422`: Understood but refused: the request is well-formed, the action is not permitted for this resource
- `429`: Rate limited
- `500`: Internal error
- `502`: An upstream provider refused or failed the request
- `503`: Channel or send queue unavailable

---

[API](https://skmtc.dev/blueticked/apis/blueticked-api.md) · [All operations](https://skmtc.dev/blueticked/apis/blueticked-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blueticked/apis/blueticked-api/revisions/07132284f4ff?raw)
