---
title: "Get all Products"
method: GET
path: "/catalog/products"
tags: ["Shopper Catalog API"]
---

# Get all Products

`GET /catalog/products`

## Request

- Base URL: `https://euwest.api.elasticpath.com`
- URL: `https://euwest.api.elasticpath.com/catalog/products`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/elasticpath/apis/catalogs-introduction/docs/catalog/products/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves the list of products from the catalog. Only the products in a live status are retrieved.

### Catalog Rules

If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).

### Product and Node Associations

 You can see the parent nodes a product is associated within the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).

### Including Resources

Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug. 

| Parameter | Required | Description                                                                                                                                                                                                    |
|  :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `component_products` | Optional | The  component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle.  |
| `main_image`         | Optional | The main images associated with a product. |
| `files`              | Optional | Any files associated with a product. |

See [**Including Resources**](/guides/Getting-Started/includes).

### Filtering

This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.

| Operator | Description                                                                                     | Supported Attributes                                     | Example |
|:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |
| `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`.            | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |
| `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags`          | `filter=in(id,some-id)` |

### Building breadcrumbs in a storefront

In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.

An example is shown below:

`filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`

- Specify the node IDs directly attached to the product in the filter expression.
- You can include as many node IDs as required.
- It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.

## Query parameters

- `include` string[]
- `filter` string
- `page[limit]` integer
- `page[offset]` integer

## Headers

- `accept-language` string
- `EP-Channel` string
- `EP-Context-Tag` string

## Response `200`

The products of a catalog.

- ProductListData: Container for a list of products.
  - `meta` PageMeta: Contains the results for the entire collection.
    - `results` object: Total number of results for the entire collection.
      - `total` integer: Total number of results for the entire collection.
    - `page` object
      - `limit` integer: The maximum number of records for all pages.
      - `offset` integer: The current offset by number of pages.
      - `current` integer: The current number of pages.
      - `total` integer: The total number of records for the entire collection.
  - `data` Product[]
    - `attributes` ProductAttributes: A product's attributes.
      - `published_at` string, date-time, nullable: The date and time a product was published in a catalog.
      - `base_product` boolean: If this product is a `parent` product. A `parent` product is a product that has child products that have been built using the `build child products` endpoint.
      - `base_product_id` string: The unique identifier of a `parent` product.
      - `commodity_type` string: The commodity type, either `physical` or `digital`.
      - `curated_product` boolean: If a product is curated, then the `curated_product` attribute with a value of `true` is displayed. If a product is not curated, the `curated_product` attribute is not displayed.
      - `upc_ean` string: The universal product code or european article number of the product.
      - `manufacturer_part_num` string: The manufacturer part number of the product.
      - `tags` string[]: A list of tags associated with the product. A tag must be HTML compatible characters excluding commas and will be stored in lowercase letters.
      - `price_modifiers` string[]: A list of price modifier names.
      - `created_at` string, date-time: The date and time a product was created.
      - `description` string: A description of the product.
      - `name` string: A name of a product.
      - `price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
      - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
      - `tiers` Tiers: The price tier that an item is eligible for based on the quantity purchased. You cannot have conflicting tiers within the same currencies block.
      - `components` Components: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.
      - `custom_inputs` CustomInputs: You can allow your shoppers to add custom text to a product when adding product items to their carts. This is useful, for example, if you have a product like a T-shirt that can be personalized or you sell greetings cards that can be printed with your shoppers personalized messages. You can do this using the `custom_inputs` attribute. - You can rename input to something more representative of the input that shoppers are adding, for example, `message` or `front`. - `name` is the name that is displayed in your storefront. - You can add validation rules. For example, the input field must be a string and/or up to 255 characters in length. The limit is 255 characters.
      - `sku` string: The unique stock keeping unit of the product.
      - `slug` string: A label for the product that is used in the URL paths. A slug can contain A to Z, a to z, 0 to 9, hyphen, underscore, and period. Spaces or other special characters like ^, [], *, and $ are not allowed. By default, the product name is used as the slug.
      - `status` string: The status of the product, either `live` or `draft`.
      - `external_ref` string, nullable: The unique attribute associated with the product. This could be an external reference from a separate company system, for example.
      - `updated_at` string, date-time: The date and time a product was updated.
      - `extensions` Extensions: With extension templates, you can attach a specific set of custom fields to your products in Product Experience Manager. For example, a **Book** template might contain the attributes, such as **ISBN**, **Author**, **Number of pages**, **Year Published**, or **Condition (New/Used)**.
    - `id` string: A unique identifier for a product.
    - `relationships` ProductRelationships: Relationships allow you to move between requests. Includes links to the parent and child products, bundle component products, files, and main images associated with a product.
      - `parent` object: The details of a `parent` product. A `parent` product is a product that has child products that have been built using the `Build Child Products` endpoint.
        - `data` ProductReference: A product identifier.
          - `id` string, uuid: A unique identifier for a product.
          - `type` 'product': This represents the type of object being returned. Always `product`.
      - `children` object: The details of a `child` product. When you configure product variations and variation options for parent products, the child products derived from the parent products are automatically created in Commerce.
        - `data` ProductReference[]: A list of product identifiers.
          - `id` string, uuid: A unique identifier for a product.
          - `type` 'product': This represents the type of object being returned. Always `product`.
        - `links` SelfLink: Links are used to allow you to move between requests.
          - `self` string, required: Single entities use a self parameter with a link to that specific resource.
      - `files` FilesRelationship: In Product Experience Manager, products can have associated rich media assets, such as product images or a file containing additional product details.
        - `data` FileReference[]
          - `type` 'file': This represents the type of object being returned. Always `file`.
          - `id` string, uuid: A unique identifier for a file.
          - `created_at` string, date-time: The date and time a file is created.
      - `main_image` MainImageRelationship: In Product Experience Manager, products can also have associated product images.
        - `data` object: The images associated with a product.
          - `type` 'main_image': This represents the type of object being returned. Always `main_image`.
          - `id` string, uuid: A unique identifier for an image.
      - `component_products` ComponentProductsRelationship: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity. You can link to the products that make up your bundle components.
        - `data` ProductReference[]: A list of product identifiers.
          - `id` string, uuid: A unique identifier for a product.
          - `type` 'product': This represents the type of object being returned. Always `product`.
        - `links` SelfLink: Links are used to allow you to move between requests.
          - `self` string, required: Single entities use a self parameter with a link to that specific resource.
      - `bundles` BundlesRelationship: Present only when the product is an option in at least one bundle component in the release. `data` is always empty; follow `links.self` to list the bundles that contain the product.
        - `data` ProductReference[]
          - `id` string, uuid: A unique identifier for a product.
          - `type` 'product': This represents the type of object being returned. Always `product`.
        - `links` SelfLink: Links are used to allow you to move between requests.
          - `self` string, required: Single entities use a self parameter with a link to that specific resource.
      - `custom_relationships` CustomRelationship: A product can have custom relationships added that link to other products. These can be used for Parent/Child relationships as well as products that you want to Cross Sell/Promote.
        - `data` ProductReference[]: A list of product identifiers.
          - `id` string, uuid: A unique identifier for a product.
          - `type` 'product': This represents the type of object being returned. Always `product`.
        - `links` CustomRelationshipLinks: For each custom relationship in use on the product, there will be a link to follow.
    - `type` string: This represents the type of object being returned. Always `product`.
    - `meta` ProductMeta: A product's metadata contains information about products, for example, the nodes a product is associated with, any child products, bundle configurations, and so on.
      - `bread_crumbs` object: The relationship among the array of nodes a product is associated with, demonstrating the linking of the children nodes with the parent nodes. Up to 10 levels of parent nodes are displayed, depending on the number of levels of parent nodes you have.
      - `bread_crumb_nodes` string[]: An array of parent node IDs that a product is associated with. Up to 10 levels of parent nodes are displayed, depending on the number of levels of parent nodes you have.
      - `catalog_id` string: A unique identifier of the catalog a product is associated with.
      - `pricebook_id` string, nullable: The unique identifier of the price book a product is associated with.
      - `display_price` DisplayPrice: A price formatted for display.
        - `with_tax` FormattedPrice: A price formatted for display.
          - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
          - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
          - `formatted` string: The format of the price for display.
          - `float_price` number: The price in displayable float format
        - `without_tax` FormattedPrice: A price formatted for display.
          - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
          - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
          - `formatted` string: The format of the price for display.
          - `float_price` number: The price in displayable float format
      - `catalog_source` 'pim': The source of a catalog. Always `pim`.
      - `sale_id` string: With sales pricing, a store can optionally add a sale price to a product price. For example, a store can schedule seasonal pricing on products without creating a new price book and catalog ruleset. Optionally, a store can schedule the date ranges for the sale products. This is the unique identifier of a sale.
      - `sale_expires` string, date-time, nullable: The expiration date and time of the sale, provided in UTC.
      - `original_price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
      - `original_display_price` DisplayPrice: A price formatted for display.
        - `with_tax` FormattedPrice: A price formatted for display.
          - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
          - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
          - `formatted` string: The format of the price for display.
          - `float_price` number: The price in displayable float format
        - `without_tax` FormattedPrice: A price formatted for display.
          - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
          - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
          - `formatted` string: The format of the price for display.
          - `float_price` number: The price in displayable float format
      - `bundle_configuration` BundleConfiguration: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.
        - `selected_options` object, required: The product options included in a component. This can be the ID of another bundle.
      - `component_products` object: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.
      - `component_product_data` object: This will contain the component product details (with bundle specific pricing) in the configure bundle response for the selected options.
      - `price_modifiers` object: You can use price modifiers to change the price property of child products. By default, child products inherit the same price as their base products. Using price modifiers, you can enable child products to inherit a different price.
      - `tiers` object: You can use tiers to allow your store to offer different pricing for minimum quantities of items that your shoppers purchase.
      - `variation_matrix` object: The `variation_matrix` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. If no variations are available, the `variation_matrix` is empty.
      - `variations` Variation[]: If you specified `build_rules` for a product, the `variations` object lists the variation option IDs that you specified to include when building your child products. If no `build_rules` are specified, all the variation and variation options available for a product are displayed. If a product does not have any variations, then the `variations` object is not displayed.
        - `id` string, uuid: A unique identifier of a variation.
        - `name` string: The name of a variation.
        - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
        - `option` VariationOption: The options available for a variation.
          - `id` string, uuid: A unique identifier for an option.
          - `name` string: The name of the option.
          - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
          - `description` string: The option description to display to customers.
        - `options` VariationOption[]: The options available for this variation.
          - `id` string, uuid: A unique identifier for an option.
          - `name` string: The name of the option.
          - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
          - `description` string: The option description to display to customers.
      - `child_option_ids` string[], nullable: An array of variation options IDs that a child product has.
      - `child_variations` Variation[], nullable: If this is a child product, the `child_variations` object lists the variation option IDs that define this child product.
        - `id` string, uuid: A unique identifier of a variation.
        - `name` string: The name of a variation.
        - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
        - `option` VariationOption: The options available for a variation.
          - `id` string, uuid: A unique identifier for an option.
          - `name` string: The name of the option.
          - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
          - `description` string: The option description to display to customers.
        - `options` VariationOption[]: The options available for this variation.
          - `id` string, uuid: A unique identifier for an option.
          - `name` string: The name of the option.
          - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
          - `description` string: The option description to display to customers.
      - `product_types` string[]: Commerce automatically assigns types to the products you create. In Commerce Manager, you can see at a glance the product types in a list of a products. In addition, you can filter on product types in both the API and Commerce Manager. Product types can also be used in catalogs. For example, in your catalog, you can filter on parent so that only your parent products are displayed in your storefront. Products have one of the following types: - **standard** - Standard products are a standalone products. - **parent** - A parent product is a product that has child products that have been built using the `Build Child Products` endpoint. - **child** - When you configure product variations and variation options for parent products, the child products derived from the parent products are automatically created in Commerce. - **bundle** - A bundle is a purchasable product, comprising two or more standalone products (in other words, components) to be sold together.
      - `language` string: If you storefront supports multiple languages, your storefront's preferred language and locale.
      - `custom_relationships` string[]: In Commerce Manager you can define Custom Relationships for Products. These allow Merchandisers to set up Cross Sell/Parent Child Relationships between products for display to shoppers. This field will list the slugs(identifiers) of Custom Relationships that have been associated with this product. This will allow conditional rendering of related product sections if needed and provides the slug(s) needed to list the related products for the Product
      - `available_prices` object[]: If pricebook segmentation is enabled, this will show all the available prices for the product in the CV delta file and will show selected available prices via the admin api
        - `pricebook_id` string: A unique identifier of a price book.
        - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
        - `sales` object: A set of sale specifications
        - `price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
        - `tiers` Tiers: The price tier that an item is eligible for based on the quantity purchased. You cannot have conflicting tiers within the same currencies block.
      - `alternative_prices` object[]: If pricebook segmentation is enabled, this will show all the alternative prices for the product. Will just include 'List Price' initially
        - `name` string: A name to signify what the alternative price means to the shopper... i.e. 'List Price'
        - `pricebook_id` string: A unique identifier of a price book.
        - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
        - `sale_id` string: The unique identifier of a sale.
        - `sale_expires` string, date-time, nullable: The expiration date and time of the sale, provided in UTC.
        - `price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
        - `display_price` DisplayPrice: A price formatted for display.
          - `with_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
          - `without_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
        - `original_display_price` DisplayPrice: A price formatted for display.
          - `with_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
          - `without_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
        - `original_price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
        - `tiers` object: You can use tiers to allow your store to offer different pricing for minimum quantities of items that your shoppers purchase.
      - `available_pricebook_ids` string[], nullable: An array of all pricebooks that have prices for this product
  - `included` IncludedResponse: Included is an array of resources that are included in the response.
    - `main_images` ElasticPathFile[]: The main images associated with a product.
      - `id` string, uuid: The unique identifier for this file.
      - `type` string: The type represents the object being returned.
      - `file_name` string: The name of the file.
      - `mime_type` string: The mime type of the file.
      - `file_size` integer: The size of the file. Required when uploading files.
      - `public` boolean: DEPRECATED Whether the file public or not. Required when uploading files.
      - `meta` object
        - `timestamps` object: The date and time the file was created.
          - `created_at` string: The date and time the file was created.
        - `dimensions` object: The file dimensions.
          - `width` integer: The width of the file.
          - `height` integer: The height of the file.
      - `links` object: Links are used to allow you to move between requests.
        - `self` string: Single entities use a self parameter with a link to that specific resource.
      - `link` object: The publicly available URL for this file.
        - `href` string: The publicly available URL for this file.
        - `meta` object
          - `results` object: Contains the results for the entire collection.
            - `total` integer: Total number of results for the entire collection.
    - `component_products` Product[]: Returns a list of component products in a product bundle. If a bundle has no component products (in other words, is not a product bundle), an empty array is returned.
      - `attributes` ProductAttributes: A product's attributes.
        - `published_at` string, date-time, nullable: The date and time a product was published in a catalog.
        - `base_product` boolean: If this product is a `parent` product. A `parent` product is a product that has child products that have been built using the `build child products` endpoint.
        - `base_product_id` string: The unique identifier of a `parent` product.
        - `commodity_type` string: The commodity type, either `physical` or `digital`.
        - `curated_product` boolean: If a product is curated, then the `curated_product` attribute with a value of `true` is displayed. If a product is not curated, the `curated_product` attribute is not displayed.
        - `upc_ean` string: The universal product code or european article number of the product.
        - `manufacturer_part_num` string: The manufacturer part number of the product.
        - `tags` string[]: A list of tags associated with the product. A tag must be HTML compatible characters excluding commas and will be stored in lowercase letters.
        - `price_modifiers` string[]: A list of price modifier names.
        - `created_at` string, date-time: The date and time a product was created.
        - `description` string: A description of the product.
        - `name` string: A name of a product.
        - `price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
        - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
        - `tiers` Tiers: The price tier that an item is eligible for based on the quantity purchased. You cannot have conflicting tiers within the same currencies block.
        - `components` Components: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.
        - `custom_inputs` CustomInputs: You can allow your shoppers to add custom text to a product when adding product items to their carts. This is useful, for example, if you have a product like a T-shirt that can be personalized or you sell greetings cards that can be printed with your shoppers personalized messages. You can do this using the `custom_inputs` attribute. - You can rename input to something more representative of the input that shoppers are adding, for example, `message` or `front`. - `name` is the name that is displayed in your storefront. - You can add validation rules. For example, the input field must be a string and/or up to 255 characters in length. The limit is 255 characters.
        - `sku` string: The unique stock keeping unit of the product.
        - `slug` string: A label for the product that is used in the URL paths. A slug can contain A to Z, a to z, 0 to 9, hyphen, underscore, and period. Spaces or other special characters like ^, [], *, and $ are not allowed. By default, the product name is used as the slug.
        - `status` string: The status of the product, either `live` or `draft`.
        - `external_ref` string, nullable: The unique attribute associated with the product. This could be an external reference from a separate company system, for example.
        - `updated_at` string, date-time: The date and time a product was updated.
        - `extensions` Extensions: With extension templates, you can attach a specific set of custom fields to your products in Product Experience Manager. For example, a **Book** template might contain the attributes, such as **ISBN**, **Author**, **Number of pages**, **Year Published**, or **Condition (New/Used)**.
      - `id` string: A unique identifier for a product.
      - `relationships` ProductRelationships: Relationships allow you to move between requests. Includes links to the parent and child products, bundle component products, files, and main images associated with a product.
        - `parent` object: The details of a `parent` product. A `parent` product is a product that has child products that have been built using the `Build Child Products` endpoint.
          - `data` ProductReference: A product identifier.
            - `id` string, uuid: A unique identifier for a product.
            - `type` 'product': This represents the type of object being returned. Always `product`.
        - `children` object: The details of a `child` product. When you configure product variations and variation options for parent products, the child products derived from the parent products are automatically created in Commerce.
          - `data` ProductReference[]: A list of product identifiers.
            - `id` string, uuid: A unique identifier for a product.
            - `type` 'product': This represents the type of object being returned. Always `product`.
          - `links` SelfLink: Links are used to allow you to move between requests.
            - `self` string, required: Single entities use a self parameter with a link to that specific resource.
        - `files` FilesRelationship: In Product Experience Manager, products can have associated rich media assets, such as product images or a file containing additional product details.
          - `data` FileReference[]
            - `type` 'file': This represents the type of object being returned. Always `file`.
            - `id` string, uuid: A unique identifier for a file.
            - `created_at` string, date-time: The date and time a file is created.
        - `main_image` MainImageRelationship: In Product Experience Manager, products can also have associated product images.
          - `data` object: The images associated with a product.
            - `type` 'main_image': This represents the type of object being returned. Always `main_image`.
            - `id` string, uuid: A unique identifier for an image.
        - `component_products` ComponentProductsRelationship: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity. You can link to the products that make up your bundle components.
          - `data` ProductReference[]: A list of product identifiers.
            - `id` string, uuid: A unique identifier for a product.
            - `type` 'product': This represents the type of object being returned. Always `product`.
          - `links` SelfLink: Links are used to allow you to move between requests.
            - `self` string, required: Single entities use a self parameter with a link to that specific resource.
        - `bundles` BundlesRelationship: Present only when the product is an option in at least one bundle component in the release. `data` is always empty; follow `links.self` to list the bundles that contain the product.
          - `data` ProductReference[]
            - `id` string, uuid: A unique identifier for a product.
            - `type` 'product': This represents the type of object being returned. Always `product`.
          - `links` SelfLink: Links are used to allow you to move between requests.
            - `self` string, required: Single entities use a self parameter with a link to that specific resource.
        - `custom_relationships` CustomRelationship: A product can have custom relationships added that link to other products. These can be used for Parent/Child relationships as well as products that you want to Cross Sell/Promote.
          - `data` ProductReference[]: A list of product identifiers.
            - `id` string, uuid: A unique identifier for a product.
            - `type` 'product': This represents the type of object being returned. Always `product`.
          - `links` CustomRelationshipLinks: For each custom relationship in use on the product, there will be a link to follow.
      - `type` string: This represents the type of object being returned. Always `product`.
      - `meta` ProductMeta: A product's metadata contains information about products, for example, the nodes a product is associated with, any child products, bundle configurations, and so on.
        - `bread_crumbs` object: The relationship among the array of nodes a product is associated with, demonstrating the linking of the children nodes with the parent nodes. Up to 10 levels of parent nodes are displayed, depending on the number of levels of parent nodes you have.
        - `bread_crumb_nodes` string[]: An array of parent node IDs that a product is associated with. Up to 10 levels of parent nodes are displayed, depending on the number of levels of parent nodes you have.
        - `catalog_id` string: A unique identifier of the catalog a product is associated with.
        - `pricebook_id` string, nullable: The unique identifier of the price book a product is associated with.
        - `display_price` DisplayPrice: A price formatted for display.
          - `with_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
          - `without_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
        - `catalog_source` 'pim': The source of a catalog. Always `pim`.
        - `sale_id` string: With sales pricing, a store can optionally add a sale price to a product price. For example, a store can schedule seasonal pricing on products without creating a new price book and catalog ruleset. Optionally, a store can schedule the date ranges for the sale products. This is the unique identifier of a sale.
        - `sale_expires` string, date-time, nullable: The expiration date and time of the sale, provided in UTC.
        - `original_price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
        - `original_display_price` DisplayPrice: A price formatted for display.
          - `with_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
          - `without_tax` FormattedPrice: A price formatted for display.
            - `amount` integer: The price in the lowest denomination for the specified currency. This is a product's list price.
            - `currency` string: The three-letter ISO code of the currencies associated with this price and the amount.
            - `formatted` string: The format of the price for display.
            - `float_price` number: The price in displayable float format
        - `bundle_configuration` BundleConfiguration: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.
          - `selected_options` object, required: The product options included in a component. This can be the ID of another bundle.
        - `component_products` object: A bundle is a purchasable product, comprising of one or more products that you want to sell together. You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.
        - `component_product_data` object: This will contain the component product details (with bundle specific pricing) in the configure bundle response for the selected options.
        - `price_modifiers` object: You can use price modifiers to change the price property of child products. By default, child products inherit the same price as their base products. Using price modifiers, you can enable child products to inherit a different price.
        - `tiers` object: You can use tiers to allow your store to offer different pricing for minimum quantities of items that your shoppers purchase.
        - `variation_matrix` object: The `variation_matrix` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. If no variations are available, the `variation_matrix` is empty.
        - `variations` Variation[]: If you specified `build_rules` for a product, the `variations` object lists the variation option IDs that you specified to include when building your child products. If no `build_rules` are specified, all the variation and variation options available for a product are displayed. If a product does not have any variations, then the `variations` object is not displayed.
          - `id` string, uuid: A unique identifier of a variation.
          - `name` string: The name of a variation.
          - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
          - `option` VariationOption: The options available for a variation.
            - `id` string, uuid: A unique identifier for an option.
            - `name` string: The name of the option.
            - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
            - `description` string: The option description to display to customers.
          - `options` VariationOption[]: The options available for this variation.
            - `id` string, uuid: A unique identifier for an option.
            - `name` string: The name of the option.
            - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
            - `description` string: The option description to display to customers.
        - `child_option_ids` string[], nullable: An array of variation options IDs that a child product has.
        - `child_variations` Variation[], nullable: If this is a child product, the `child_variations` object lists the variation option IDs that define this child product.
          - `id` string, uuid: A unique identifier of a variation.
          - `name` string: The name of a variation.
          - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
          - `option` VariationOption: The options available for a variation.
            - `id` string, uuid: A unique identifier for an option.
            - `name` string: The name of the option.
            - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
            - `description` string: The option description to display to customers.
          - `options` VariationOption[]: The options available for this variation.
            - `id` string, uuid: A unique identifier for an option.
            - `name` string: The name of the option.
            - `sort_order` integer, nullable: If you specified a `sort_order` when creating your variations and variation options, then use the `sort_order` value to program your storefront to display the variations and variation options in the order that you want.
            - `description` string: The option description to display to customers.
        - `product_types` string[]: Commerce automatically assigns types to the products you create. In Commerce Manager, you can see at a glance the product types in a list of a products. In addition, you can filter on product types in both the API and Commerce Manager. Product types can also be used in catalogs. For example, in your catalog, you can filter on parent so that only your parent products are displayed in your storefront. Products have one of the following types: - **standard** - Standard products are a standalone products. - **parent** - A parent product is a product that has child products that have been built using the `Build Child Products` endpoint. - **child** - When you configure product variations and variation options for parent products, the child products derived from the parent products are automatically created in Commerce. - **bundle** - A bundle is a purchasable product, comprising two or more standalone products (in other words, components) to be sold together.
        - `language` string: If you storefront supports multiple languages, your storefront's preferred language and locale.
        - `custom_relationships` string[]: In Commerce Manager you can define Custom Relationships for Products. These allow Merchandisers to set up Cross Sell/Parent Child Relationships between products for display to shoppers. This field will list the slugs(identifiers) of Custom Relationships that have been associated with this product. This will allow conditional rendering of related product sections if needed and provides the slug(s) needed to list the related products for the Product
        - `available_prices` object[]: If pricebook segmentation is enabled, this will show all the available prices for the product in the CV delta file and will show selected available prices via the admin api
          - `pricebook_id` string: A unique identifier of a price book.
          - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
          - `sales` object: A set of sale specifications
          - `price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
          - `tiers` Tiers: The price tier that an item is eligible for based on the quantity purchased. You cannot have conflicting tiers within the same currencies block.
        - `alternative_prices` object[]: If pricebook segmentation is enabled, this will show all the alternative prices for the product. Will just include 'List Price' initially
          - `name` string: A name to signify what the alternative price means to the shopper... i.e. 'List Price'
          - `pricebook_id` string: A unique identifier of a price book.
          - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
          - `sale_id` string: The unique identifier of a sale.
          - `sale_expires` string, date-time, nullable: The expiration date and time of the sale, provided in UTC.
          - `price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
          - `display_price` DisplayPrice: A price formatted for display.
            - `with_tax` FormattedPrice: A price formatted for display.
              - …
            - `without_tax` FormattedPrice: A price formatted for display.
              - …
          - `original_display_price` DisplayPrice: A price formatted for display.
            - `with_tax` FormattedPrice: A price formatted for display.
              - …
            - `without_tax` FormattedPrice: A price formatted for display.
              - …
          - `original_price` Currencies: A collection of one or more currencies objects that consists of the [**three-letter ISO code**](https://www.iso.org/iso-3166-country-codes.html) of the currencies associated with this price and the amount. This is the product's price.
          - `tiers` object: You can use tiers to allow your store to offer different pricing for minimum quantities of items that your shoppers purchase.
        - `available_pricebook_ids` string[], nullable: An array of all pricebooks that have prices for this product
    - `files` ElasticPathFile[]: The files associated with a product.
      - `id` string, uuid: The unique identifier for this file.
      - `type` string: The type represents the object being returned.
      - `file_name` string: The name of the file.
      - `mime_type` string: The mime type of the file.
      - `file_size` integer: The size of the file. Required when uploading files.
      - `public` boolean: DEPRECATED Whether the file public or not. Required when uploading files.
      - `meta` object
        - `timestamps` object: The date and time the file was created.
          - `created_at` string: The date and time the file was created.
        - `dimensions` object: The file dimensions.
          - `width` integer: The width of the file.
          - `height` integer: The height of the file.
      - `links` object: Links are used to allow you to move between requests.
        - `self` string: Single entities use a self parameter with a link to that specific resource.
      - `link` object: The publicly available URL for this file.
        - `href` string: The publicly available URL for this file.
        - `meta` object
          - `results` object: Contains the results for the entire collection.
            - `total` integer: Total number of results for the entire collection.
  - `links` Links: Links allow you to move between requests.
    - `self` string, uri-reference, nullable: Single entities use a `self` parameter with a link the specific resource.
    - `first` string, uri-reference, nullable: Always the first page.
    - `last` string, uri-reference, nullable: This is `null` if there is only one page.
    - `prev` string, uri-reference, nullable: This is `null` if there is only one page.
    - `next` string, uri-reference, nullable: This is `null` if there is only one page.

## Other responses

- `default`: The unexpected error.

---

[API](https://skmtc.dev/elasticpath/apis/catalogs-introduction.md) - [All operations](https://skmtc.dev/elasticpath/apis/catalogs-introduction/llms.txt) - [OpenAPI document](https://skmtc.dev/elasticpath/apis/catalogs-introduction/revisions/eb541d5dea51?raw)
