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

# Retrieve List of Products

`GET /v1/products`

Results are not guaranteed to be consistent across paginated calls. As inventory is updated during fulfillment, products shift position in the sort order and may reappear on later pages. For consistent pagination, use the Products for Inventory Sync endpoint instead.

## Query parameters

- `search` string, nullable
- `page` integer
- `pageSize` integer
- `sortBy` string, nullable
- `sortOrder` 'DESC' | 'ASC'
- `status` 'blacklisted' | 'active' | 'disabled'
- `dateUpdatedStart` string, date-time
- `dateUpdatedEnd` string, date-time
- `dateCreatedStart` string, date-time
- `dateCreatedEnd` string, date-time

## Response `200`

Success

- object
  - `data` FulfillmentPublicApiBundleApiResourceProductProductListOutput[], required
    - `id` integer, required — Server-assigned numeric identifier of the product.
    - `sku` string, required — Stock Keeping Unit (SKU), the client's unique product code.
    - `name` string, required — Human-readable name of the product.
    - `created_at` string, date-time, required — ISO 8601 timestamp indicating when the product was created.
    - `updated_at` string, date-time, required — ISO 8601 timestamp indicating when the product was last updated.
    - `inventory_on_hand_last_updated_at` string, date-time, nullable, required — ISO 8601 timestamp of the most recent on-hand inventory change for this product, or null if no inventory has ever been recorded.
    - `is_active` boolean, nullable, required — Whether the product is currently active and available for fulfillment.
    - `product_type` string, required — Deprecated: Will be removed on 2026-09-30. Use type instead. Always returns "unit".
    - `type` 'pick_and_pack' | 'insert' | 'packaging', required
    - `replacement_cost` number, double, nullable, required — Declared replacement cost of a single unit of the product, in the currency given by replacement_cost_currency.
    - `replacement_cost_currency` string, nullable, required — ISO 4217 currency code for replacement_cost.
    - `inventory` FulfillmentPublicApiBundleApiResourceInventoryInventoryDetailOutput, required
      - `quantity_total_final` integer, required — Total finalized quantity across all locations: units that have completed receiving and are fully accounted for in inventory.
      - `quantity_total_available` integer, required — Total quantity available to allocate to new orders across all locations.
      - `quantity_total_on_hand` integer, required — Total quantity physically present in warehouses (including allocated, quarantined and unavailable units).
      - `quantity_total_quarantined` integer, required — Total quantity held in quarantine (e.g., pending inspection) and not available for fulfillment.
      - `quantity_total_unavailable` integer, required — Total quantity unavailable for fulfillment for reasons other than quarantine (e.g., damaged or reserved).
      - `locations` FulfillmentPublicApiBundleApiResourceLocationLocationListOutput[], required — Per-warehouse breakdown of the inventory totals above.
        - `quantity_final` integer, required — Finalized quantity at this warehouse: units fully received and accounted for in inventory.
        - `quantity_available` integer, required — Quantity available to allocate to new orders at this warehouse.
        - `quantity_on_hand` integer, required — Quantity physically present at this warehouse (including allocated, quarantined and unavailable units).
        - `quarantined_quantity` integer, required — Quantity held in quarantine at this warehouse and not available for fulfillment.
        - `quantity_unavailable` integer, required — Quantity at this warehouse unavailable for fulfillment for reasons other than quarantine.
        - `quantity_by_lot` FulfillmentPublicApiBundleApiResourceLotControlLotControlWithQuantityOutput[], required — On-hand quantity at this warehouse broken down by lot/expiration.
          - `lot` FulfillmentPublicApiBundleApiResourceLotControlLotControlOutput, required
            - `lot_number` string, nullable, required — Lot number assigned to the product batch, or null if the lot is identified only by expiration date.
            - `expiration_date` string, date-time, nullable, required — Lot expiration date in ISO 8601 format (YYYY-MM-DD), or null if not applicable.
          - `quantity_on_hand` integer, required — Quantity physically on hand for this lot at the location.
        - `warehouse` FulfillmentPublicApiBundleApiResourceWarehouseWarehouseDetailOutput, required
          - `id` integer, required
          - `name` string, required
          - `identifier` string, required
    - `hs_code` string, nullable, required — Deprecated: use $hsCodes Deprecated. Use hs_codes instead.
    - `hs_codes` FulfillmentAdminApiBundleApiResourceProductHsCodeDetailOutput[], required — Harmonized System (HS) codes assigned to this product, per customs region.
      - `hs_code` string, required — Harmonized System code used for customs classification in international trade.
      - `region` 'us' | 'uk' | 'eu', required
    - `barcodes` string[], required — Barcodes associated with this product (e.g., UPC, EAN).
    - `country_code` string, nullable, required — ISO 3166-1 alpha-2 country of origin code for the product.
    - `stock_out_days` integer, required — Projected number of days until the product runs out of stock based on recent sales velocity.
    - `custom_data` FulfillmentCommonBundleApiResourceIntegrationDataOutput[], required — Custom key-value pairs attached to this product, as supplied when creating or updating it.
      - `name` string, required — Key of the custom data entry.
      - `value` object, required — Value of the custom data entry; may be any JSON-serializable structure.
    - `weight` ShipMonkMeasurementOutputWeightOutput, required
      - `value` number, double, required — Numeric weight value, expressed in the unit given by the unit field.
      - `unit` 'kg' | 'g' | 'lb' | 'oz', required
    - `dimensions` ShipMonkMeasurementOutputDimensionsOutput, required
      - `length` number, double, required — Length in the unit specified by the sibling "unit" field.
      - `width` number, double, required — Width in the unit specified by the sibling "unit" field.
      - `height` number, double, required — Height in the unit specified by the sibling "unit" field.
      - `unit` 'm' | 'cm' | 'mm' | 'ft' | 'in', required
    - `product_bundles` FulfillmentPublicApiBundleApiResourceProductBundleOutput[], required — Bundles (multi-SKU kits) that include this product as a component.
      - `bundle_sku` string, required — SKU of the bundle product that contains this item as a component.
      - `products` FulfillmentPublicApiBundleApiResourceProductBundleProductOutput[], required — Component products that make up this bundle.
        - `sku` string, required — SKU of the product included in the bundle.
        - `quantity` integer, required — Number of units of this product included per bundle.
    - `product_handling_units` FulfillmentPublicApiBundleApiResourceProductProductHandlingUnitOutput[], nullable, required — Handling unit configurations defined for this product (inner carton, master carton, pallet).
      - `type` 'inner_carton' | 'master_carton' | 'pallet', required
      - `weight` ShipMonkMeasurementOutputWeightOutput, required
        - `value` number, double, required — Numeric weight value, expressed in the unit given by the unit field.
        - `unit` 'kg' | 'g' | 'lb' | 'oz', required
      - `dimensions` ShipMonkMeasurementOutputDimensionsOutput, required
        - `length` number, double, required — Length in the unit specified by the sibling "unit" field.
        - `width` number, double, required — Width in the unit specified by the sibling "unit" field.
        - `height` number, double, required — Height in the unit specified by the sibling "unit" field.
        - `unit` 'm' | 'cm' | 'mm' | 'ft' | 'in', required
      - `count` integer, required — Number of individual product units per handling unit.
  - `total` integer, required
  - `pages` integer, required
  - `page` integer, required

---

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