---
title: "List products V2"
method: GET
path: "/api/v2/products"
tags: ["Product"]
---

# List products V2

`GET /api/v2/products`

Returns a collection with all products.

## Query parameters

- `filter` object[]
  - `key` 'search' | 'id' | 'uuid' | 'category' | 'merchandiseGroup' | 'standardSupplier' | 'name' | 'number' | 'description' | 'project' | 'projectName' | 'purchasePriceNet' | 'purchasePriceGross' | 'salesChannel' | 'salesPriceNet' | 'salesPriceGross' | 'shopPriceDisplay' | 'purchasedCount' | 'availableCount' | 'inProductionCount' | 'ean' | 'manufacturerName' | 'manufacturerNumber' | 'customsTariffNumber' | 'freeField1' | 'freeField2' | 'freeField3' | 'freeField4' | 'freeField5' | 'freeField6' | 'freeField7' | 'freeField8' | 'freeField9' | 'freeField10' | 'freeField11' | 'freeField12' | 'freeField13' | 'freeField14' | 'freeField15' | 'freeField16' | 'freeField17' | 'freeField18' | 'freeField19' | 'freeField20' | 'freeField21' | 'freeField22' | 'freeField23' | 'freeField24' | 'freeField25' | 'freeField26' | 'freeField27' | 'freeField28' | 'freeField29' | 'freeField30' | 'freeField31' | 'freeField32' | 'freeField33' | 'freeField34' | 'freeField35' | 'freeField36' | 'freeField37' | 'freeField38' | 'freeField39' | 'freeField40' | 'onlyStockItems' | 'noStockItems' | 'onlyVariants' | 'noVariants' | 'onlyPartsList' | 'noPartsList' | 'onlyActive' | 'onlyLocked' | 'onlyInStock' | 'updatedAt' | 'isStockItem' | 'categoryId' | 'tagId' | 'isDiscountProduct' | 'isShippingCostsProduct' | 'isVariant' | 'variantOf' | 'externalReferenceNumber' | 'externalReferenceName' | 'externalReferenceTargetId'
  - `op` 'equals' | 'notEquals' | 'in' | 'notIn' | 'exactlyIn' | 'allIn' | 'allNotIn' | 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'greaterThan' | 'lessThan' | 'is' | 'lessThanOrEquals' | 'greaterThanOrEquals'
  - `value` union
    - string — Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.
    - string[] — Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.
- `page` object
  - `number` string, required — Page number should be an integer greater than or equal to 1
  - `size` string, required — Page size should usually be an integer between 10 and 50.
- `order` object[]
  - `field` 'id' | 'name' | 'number' | 'description' | 'project' | 'purchasePriceNet' | 'purchasePriceGross' | 'salesPriceNet' | 'salesPriceGross' | 'ean' | 'manufacturerName' | 'manufacturerNumber' | 'customsTariffNumber'
  - `dir` 'asc' | 'desc'

## Response `200`

Operation completed successfully.

- object
  - `data` object[]
    - `id` string — Resource identifier.
    - `uuid` string — UUID identifier of the resource.
    - `project` object — An object with id and name
      - `id` string, required — Resource identifier.
      - `name` string, required
    - `merchandiseGroup` object, nullable — An optional object with id and name
      - `id` string, required — Resource identifier.
      - `name` string, required
    - `name` string — Name of the product.
    - `stockCount` number
    - `number` string — Number / SKU of the product.
    - `description` string — Description of the product.
    - `internalComment` string — Text only for internal information.
    - `shortDescription` string — Short description of the product.
    - `standardSupplier` object, nullable — Reference to a standard supplier for this product
      - `id` string, nullable, required — Nullable resource identifier
    - `thumbnailUrl` string, nullable — URL of the product's thumbnail.
    - `thumbnailId` string, nullable — ID of the product's thumbnail.
    - `tags` object[]
      - `id` string
      - `key` string
      - `name` string
      - `color` string — Hexadecimal color value in 6-digit format without the leading # character.
    - `purchasePriceNet` object, nullable — Optional Money object with amount and currency
      - `amount` string, float
      - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
    - `purchasePriceGross` object, nullable — Optional Money object with amount and currency
      - `amount` string, float
      - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
    - `salesPriceNet` object, nullable — Optional Money object with amount and currency
      - `amount` string, float
      - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
    - `salesPriceGross` object, nullable — Optional Money object with amount and currency
      - `amount` string, float
      - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
    - `ean` string, nullable — EAN of the product.
    - `manufacturer` object
      - `name` string, nullable — Name of the manufacturer.
      - `number` string, nullable — Product number at the manufacturer.
      - `link` string, nullable — URI of the manufacturer.
    - `customsTariffNumber` string, nullable — Customs tariff number of the product.
    - `isShippingCostsProduct` boolean — Determines if a product is used as a shipping costs product. For more information have a look into our handbook.
    - `discount` object
      - `isDiscountProduct` boolean — Determines if a product is used as a discount. For more information have a look into our handbook.
      - `discountPercentage` number, float — Shows the discount value if the product is a discount. For more information have a look into our handbook.
    - `stockStats` object
      - `purchasedCount` string, float, nullable
      - `totalCount` string, float, nullable
      - `availableCount` string, float, nullable
      - `inProductionCount` string, float, nullable
    - `minimumOrderQuantity` number — Numerical minimum order quantity of the product.
    - `minimumStorageQuantity` number — Numerical minimum storage quantity of the product.
    - `allowPurchaseFromAllSuppliers` boolean — Shows if the product can be purchased from all suppliers.
    - `isCustomProduct` boolean — Shows if the product is a custom product.
    - `isDeleted` boolean — Shows if the product is deleted.
    - `hasBatches` boolean — Shows if the product has batches.
    - `serialNumbersMode` string — Shows one of the 4 different modes if the product has serial numbers or not and how they are handled. For more information about the different modes have a look into our handbook.
    - `hasBestBeforeDate` boolean — Shows if the product has a best before date.
    - `hasBillOfMaterials` boolean — Shows if the product has a bill of materials.
    - `isAssembledJustInTime` boolean — Shows if the product is assembled just in time.
    - `isProductionProduct` boolean — Shows if the product is made in production.
    - `isExternallyProduced` boolean — Shows if the product is externally produced.
    - `hidePriceOnDocuments` boolean — Shows if the price is hidden on documents.
    - `ageRating` string, nullable — Shows if the product has an age rating. Currently only used for the shipping service provider DHL.
    - `countryOfOrigin` string, nullable — Two-digit ISO country code for country of origin of the product.
    - `unit` object — Shows the name of the product unit.
      - `name` string
    - `textsAndDescriptions` object — Contains localized text and descriptions for the product.
      - `inCatalog` boolean — Indicates if the product is included in the catalog.
      - `primaryLanguage` object
        - `name` string — name
        - `shortDescription` string — shortDescription
        - `description` string — description
        - `shopDescription` string — shopDescription
        - `metaTitle` string — metaTitle
        - `metaDescription` string — metaDescription
        - `metaKeywords` string — metaKeywords
        - `catalogName` string — catalogName
        - `catalogText` string — catalogText
      - `english` object
        - `name` string — name
        - `shortDescription` string — shortDescription
        - `description` string — description
        - `shopDescription` string — shopDescription
        - `metaTitle` string — metaTitle
        - `metaDescription` string — metaDescription
        - `metaKeywords` string — metaKeywords
        - `catalogName` string — catalogName
        - `catalogText` string — catalogText
    - `measurements` object
      - `width` object
        - `value` number, float, required
        - `unit` 'cm', required — Currently only cm as unit allowed.
      - `height` object
        - `value` number, float, required
        - `unit` 'cm', required — Currently only cm as unit allowed.
      - `length` object
        - `value` number, float, required
        - `unit` 'cm', required — Currently only cm as unit allowed.
      - `weight` object
        - `value` number, float, required
        - `unit` 'kg', required — Currently only kg as unit allowed.
      - `netWeight` object
        - `value` number, float, required
        - `unit` 'kg', required — Currently only kg as unit allowed.
    - `isStockItem` boolean — Shows if the product is a stock item.
    - `defaultStorageLocation` object, nullable — Default storage location of the product.
      - `id` string — Resource identifier.
    - `isStockTakingDisabled` boolean — Shows if the product is used for stock taking.
    - `hideJustInTimeItemsOnDocuments` boolean — Shows if the just in time items of the parts list are visible on documents.
    - `isDisabled` boolean — Shows if the product is locked.
    - `disabledReason` string, nullable — Shows the reason why the product is locked when clicking into the product.
    - `salesTax` 'standard' | 'reduced' | 'free' — Shows the sales tax of the product.
    - `regionOfOrigin` string — Region where the product originates from.
    - `freeFields` object[]
      - `id` string, required — Resource identifier.
      - `name` string, nullable, required
      - `value` string, required
    - `isMatrixProduct` boolean — Shows if the product is a matrix product.
    - `stockTaking` object — Contains settings for stock taking.
      - `hasStockTakingValue` boolean — Shows if the stock taking value should be used instead of the purchase price for stock taking.
      - `stockTakingValue` number, float — Shows the stock taking value for stock taking.
    - `calculatedPurchasePrice` object — Contains settings for the calculated purchase price.
      - `hasCalculatedPurchasePrice` boolean — Shows if the calculatedPurchasePrice should be used.
      - `price` object — Money object with amount and currency. If no currency is set, EUR is returned.
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
    - `calculatoryPurchasePriceSettings` object — Contains settings for the calculatory purchase price triggers.
      - `addPurchasePriceToCalculationTriggers` string[], nullable — Define triggers that will add a purchase price to the product calculation.
      - `calculatoryPurchasePriceRecalculationTriggers` string[], nullable — Define triggers that will execute the calculatory purchase price recalculation.
      - `calculatoryPurchasePriceRecalculationMethod` 'allRecordedPurchasesWeightedAverage' | 'latestPurchaseOrdersWeightedAverage' | 'movingAverage', nullable — defines the calculation method or price recalculation
    - `salesChannel` object
      - `description` string
      - `meta` object
        - `title` string
        - `description` string
        - `keywords` string
      - `isStockNumberSyncActive` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
        - boolean
        - 0 | 1
        - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
      - `isSoldOut` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
        - boolean
        - 0 | 1
        - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
      - `isRemainingQuantity` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
        - boolean
        - 0 | 1
        - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
      - `suggestedRetailPrice` string, float, nullable — Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook.
      - `isVisible` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
        - boolean
        - 0 | 1
        - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
      - `suggestedStockQuantity` string — Shows the suggested stock quantity for all sales channel.
      - `deliveryTime` string — Shows the delivery time for all sales channels.
      - `createNewProductDuringImport` boolean — Shows if a new product is generated during the sales order import from all sales channels.
      - `channels` object[], nullable
        - `id` string — Resource identifier.
        - `salesChannel` object — Reference to another resource
          - `id` string, required — Resource identifier.
        - `isActive` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
          - boolean
          - 0 | 1
          - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
        - `useIndividualSalesChannelSettings` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
          - boolean
          - 0 | 1
          - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
        - `isStockNumberSyncActive` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
          - boolean
          - 0 | 1
          - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
        - `isRemainingQuantity` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
          - boolean
          - 0 | 1
          - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
        - `suggestedRetailPrice` string — Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook.
        - `suggestedStockQuantity` string — Sets the suggested stock quantity for the sales channel.
        - `deliveryTime` string — Shows the delivery time.
        - `handlingTime` string, nullable — Sets the handling time in days for this product. Must be a non-negative integer. This value is only relevant for Amazon sales channels; other sales channels ignore this field.
        - `createNewProductDuringImport` union — Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
          - boolean
          - 0 | 1
          - 'true' | 'false' | 'True' | 'False' | 'TRUE' | 'FALSE'
    - `options` object[]
      - `id` string — Resource identifier.
      - `name` string
      - `values` object[]
        - `id` string — Resource identifier.
        - `name` string
        - `sort` integer
    - `selectedOptions` object[]
      - `id` string — Resource identifier.
      - `name` string
      - `values` object[]
        - `id` string — Resource identifier.
        - `name` string
        - `sort` integer
    - `isVariant` boolean, nullable — Shows if the product is a variant from another product.
    - `variantOf` object, nullable — Reference to a parent product
      - `id` string, required — Resource identifier.
    - `variants` object[]
      - `id` string — Resource identifier.
      - `options` object[]
        - `id` string — Resource identifier.
    - `mainVariant` object, nullable — Reference to a main variant of this product
      - `id` string, required — Resource identifier.
    - `categories` object[]
      - `id` string — Resource identifier.
    - `updatedAt` string, date-time — Timestamp of when the product was updated.
  - `extra` union
    - object
      - `totalCount` integer, required — the total count of all items
      - `page` object, required — The pagination object containing the current page number and size
        - `number` integer, required — The current page number
        - `size` integer, required — The size of the pages
    - object
      - `totalCount` integer, nullable, required — the total count of all items
      - `cursor` object, required — The pagination object containing the current page number and size
        - `nextCursor` string, required — Cursoer to use for next page request
        - `size` integer, required — The size of the pages

## Other responses

- `400` — IETF RFC 9457 Problem API compliant response
- `401` — Unable to authenticate the client
- `403` — Unable to authorize the client
- `406` — Requested resource representation does not exist.
- `429` — Too many API calls made.

---

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