> ## Documentation Index
> Fetch the complete documentation index at: https://developer.fabric.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Get items and limited children items

> Gets items (single item or bundles) by `skus` or parent `skus`. When a parent SKU is sent as query parameter, you'll get children items of those SKUs. When `parentSKU` is not specified, children items are not retrieved. Optionally, `page` and `size` can be used as query parameters. **Note**: <br /> 1) `status` and `date` query parameters works only with pagination when `parentSku` is omitted. Separate responses are shown for bundle and product.<br /> 2) when `parentSku` is passed as request parameter, it will only return the paginated response of children of `parentSKU`.



## OpenAPI

````yaml pim get /api-product/v2/product
openapi: 3.0.0
info:
  title: Product Catalog
  description: >-
    As brands and retailers grow, they often expand their item catalogs,
    resulting in the need to enrich and manage more product (commonly referred
    to as item in fabric) data. fabric Product Catalog alleviates the burden of
    managing large amounts of item data by means of a central storage
    repository. fabric Product Catalog helps you with improved data quality,
    consistent customer experience, reduced time to market, easy integration
    with external systems, reduced management costs and risks, faster and easier
    updates, and easy scaling. You can create, import, enrich, validate,
    distribute, and manage complex item information, centrally. As a result, you
    deliver product experiences that drive sales through every channel. <br />
    <br /> During onboarding, you are given the necessary credentials to access
    Product Catalog - Copilot UI, APIs, or both. As a prerequisite, you create
    the items to be sold, identify their unique as well as common properties,
    and envision their organization into categories and sub categories. A basic
    workflow is: <br /> 1) **Create item attributes** using POST
    /api-product/v1/product/attribute/bulk. <br /> 2) **Update attribute
    mapping** using POST /api-product/v1/product/attribute/mapping <br /> 3)
    **Create Primary category** using the POST /api-category/v1/category to
    create the original organizational structure. <br /> 4) **Assign item
    attributes** to Primary category using POST
    /api-category/v1/category/item-attribute. <br /> 5) **Create items** using
    POST /api-product/v1/product/bulk/insert. <br /> 6) **Create Alternate
    category**, for distribution management and fulfilling various merchandising
    objectives.
  version: 2.0.0
  contact:
    email: support@fabric.inc
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
servers:
  - url: https://live.copilot.fabric.inc
    description: Production
security: []
tags:
  - name: Category
    description: >-
      Categories (also called hierarchies or nodes) are hierarchical structures
      to organize items and services into intuitive groups. Organizing items in
      this way simplifies item discovery and lifecycle management. There are two
      types of categories - **Primary** and **Alternate**. They enable you to
      create, organize, and distribute item data.  - Primary category is the
      original catalog tree with nested levels of categories that place each
      item where it belongs, within a category. For example, `Computers` is a
      parent category with `Laptops` and `Desktops` as children categories, and
      `MacBook Pro` is an item within `Laptops`. This organization can be
      represented as Computers > Laptops > MacBook Pro.  - Alternate categories
      serve as alternate organizations of the Primary category. Their main
      purpose is distribution management by displaying items on your website
      based on separate browsing structure configurations you set to help you
      achieve various merchandizing objectives, such as organizational
      requirements, multi-regional assortments, multi-channel assortments, and
      collections. For example, a company that sells, repairs, and supports
      computers and related items and services will have a Primary category
      containing a full list of their SKUs. However, this Primary category is
      not granular enough to use on their storefront. Hence, multiple Alternate
      hierarchies are created to target specific shopper segment experiences.
      For laptop consumers they'll have one Alternate category, which lists all
      the laptops and PCs. For large businesses they'll have  another Alternate
      category, which lists all commercial laptops, PCs, printers, and servers.
      Both of the Alternate categories act as filters of the Primary category,
      tailored to the purpose of that merchandising strategy.  **Category**, a
      subset of Product Catalog endpoints, aims to simplify catalog management
      by letting you create, update, and get one or more categories, category
      attributes, and item attributes. In addition, you can add and update
      category sources, source exclusions, and item attribute conditions.  
      **Note**: The root name of primary category is PRIMARY, and it cannot be
      changed.
  - name: Product
    description: >-
      **Product**, a subset of Product Catalog endpoints, aims at making item
      management more efficient. They create, update, and get items, which may
      be individual items or collection of items (called bundles). Each item has
      a title, item ID, description, category, and assigned attributes. Multiple
      options of a given item become variants of that item. For example, a
      t-shirt with three sizes may have small, medium, and large variants. Each
      variant has its own item ID, attributes, and other data points. Each
      variant is nested under its parent item, allowing the different options to
      appear on the same product page. You can also create or update one or more
      item attributes and attribute groups.
  - name: Attributes
    description: >-
      Item attributes are the objective and factual descriptions of items that
      shoppers see when they browse through your site. Attributes may be
      technical specifications like size, weight, etc., design specifications
      like color, material, etc., or basic specifications like name,
      description, and ID. Ites attributes are crucial as they directly
      influence purchasing decisions. Complete and correct item information help
      shoppers narrow down their search and filter items with minimal cognitive
      load.
  - name: Bulk Import
    description: >-
      Set of endpoints to help bulk import of items, bundles, categories and
      attributes through CSV files
externalDocs:
  description: Find out more about Product Catalog
  url: /v3/product-catalog/user-guides/product-catalog/overview
paths:
  /api-product/v2/product:
    get:
      tags:
        - Product
      summary: Get items and limited children items
      description: >-
        Gets items (single item or bundles) by `skus` or parent `skus`. When a
        parent SKU is sent as query parameter, you'll get children items of
        those SKUs. When `parentSKU` is not specified, children items are not
        retrieved. Optionally, `page` and `size` can be used as query
        parameters. **Note**: <br /> 1) `status` and `date` query parameters
        works only with pagination when `parentSku` is omitted. Separate
        responses are shown for bundle and product.<br /> 2) when `parentSku` is
        passed as request parameter, it will only return the paginated response
        of children of `parentSKU`.
      operationId: getProductsV2
      parameters:
        - $ref: '#/components/parameters/xSiteContent'
        - in: query
          name: skus
          description: >-
            Stock Keeping Units (SKUs). <br /> **Note**: Either `skus` or
            `itemIds` can be used to get specific items. If they are omitted,
            all items are returned in a paginated response. Using the query
            parameters `page` and `size`, you can narrow down the search
            results.
          schema:
            type: string
          example: BUNDLE-01
        - in: query
          name: page
          description: >-
            Page number to be retrieved. Applicable only in a paginated response
            and always paired with `size`.
          schema:
            type: number
            example: 1
        - in: query
          name: size
          description: >-
            Number of records per page. Applicable only in a paginated response
            and always paired with `page`.
          schema:
            type: number
            example: 10
        - in: query
          name: status
          description: >-
            Item status. <br /> **Note**: <br /> 1) Returns a paginated
            response. <br /> 2) When used as the only criteria, must be paired
            with `size` and `page` to narrow down the search results.
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
            example: ACTIVE
        - in: query
          name: type
          description: 'Item type. **Note**: Set page and size to use this filter.'
          schema:
            type: string
            enum:
              - ITEM
              - BUNDLE
        - in: query
          name: createdAfter
          description: >-
            Items created after a specific date. Valid date formats are
            'YYYY/MM/DD', 'YYYY-MM-DDTHH:mm:ss.SSSZ'. <br /> **Note**: <br /> 1)
            Applicable only when `skus` and `itemIds` are omitted. <br /> 2)
            Returns paginated response. <br /> 3) Must be paired with `size` and
            `page` to narrow down the search results.
          schema:
            type: string
            example: '2021-05-28T16:36:50.055Z'
        - in: query
          name: createdBefore
          description: >-
            Items created before a specific date. Valid date formats are
            'YYYY/MM/DD', 'YYYY-MM-DDTHH:mm:ss.SSSZ'. <br /> **Note**: <br /> 1)
            Applicable only when `skus` and `itemIds` are omitted. <br /> 2)
            Returns paginated response. <br /> 3) Must be paired with `size` and
            `page` narrow down the search results.
          schema:
            type: string
            example: '2021-05-28T16:36:50.055Z'
        - in: query
          name: modifiedAfter
          description: >-
            Items modified after a specific date. Valid date formats are
            'YYYY/MM/DD', 'YYYY-MM-DDTHH:mm:ss.SSSZ'. <br /> **Note**: <br /> 1)
            Applicable only when `skus` or `itemIds` are omitted. <br /> 2)
            Returns paginated response. <br /> 3) Must be paired with `size` and
            `page` to narrow down the search results.
          schema:
            type: string
            example: '2021-05-28T16:36:50.055Z'
        - in: query
          name: modifiedBefore
          description: >-
            Items modified before a specific date. Valid date formats are
            'YYYY/MM/DD', 'YYYY-MM-DDTHH:mm:ss.SSSZ'. <br /> **Note**: <br /> 1)
            Applicable only when `skus` and `itemIds` are omitted. <br /> 2)
            Returns paginated response. <br /> 3) Must be paired with `size` and
            `page` to narrow down the search results.
          schema:
            type: string
            example: '2021-05-28T16:36:50.055Z'
        - in: query
          name: parentSku
          description: >-
            Parent SKU to get its children items. <br /> **Note** <br /> 1) To
            get a p paginates response, optionally, `size` and `page` can be
            used as query parameters. When they are omitted, this endpoint
            returns all children. <br /> 2) Only `page` and `size` are supported
            with this query parameter, to narrow down the search results.
          schema:
            type: string
            example: parent123
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ItemProductsV2Response'
                  - $ref: '#/components/schemas/BundleProductsResponse'
                  - $ref: '#/components/schemas/NoProductsResponse'
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      security:
        - authorization: []
components:
  parameters:
    xSiteContent:
      name: x-site-context
      in: header
      description: >-
        The `x-site-context` header is a JSON object that contains information
        about the source you wish to pull from. The mandatory `account` is the
        24 character identifier found in Copilot. The `channel` (Sales channel
        ID), `stage` (environment name), and `date` attributes can be used to
        further narrow the scope of your data source.
      required: true
      schema:
        type: string
        example: >-
          {"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account":
          "1234abcd5678efgh9ijklmno","stage":"production"}
  schemas:
    ItemProductsV2Response:
      type: object
      properties:
        totalSize:
          type: number
          example: 100
          description: Total number of records (items)
        pageSize:
          type: number
          example: 10
          description: Number of records (items) in a page
        pages:
          description: Number of pages for the given `pageSize`
          type: number
          example: 10
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductV2'
    BundleProductsResponse:
      type: object
      properties:
        totalSize:
          description: Total number of records
          type: number
          example: 100
        pageSize:
          description: Number of records in a page
          type: number
          example: 10
        pages:
          description: Number of pages for the given `pageSize`
          type: number
          example: 10
        products:
          type: array
          items:
            $ref: '#/components/schemas/Bundle'
    NoProductsResponse:
      type: object
      properties:
        pageSize:
          type: number
          example: 0
          description: Number of records in a page
        totalSize:
          type: number
          example: 0
          description: Total number of records
        pages:
          type: number
          example: 0
          description: Number of pages for the given `pageSize`
        products:
          description: Item details
          type: array
          items:
            type: string
          example: []
    ClientError:
      type: object
      properties:
        code:
          description: Error code for machine consumption
          type: string
          example: 400
        message:
          description: Human-readable error description
          type: string
          example: Client error
    ServerError:
      type: object
      properties:
        code:
          description: Error code
          type: string
          example: 500
        message:
          description: Human-readable error description
          type: string
          example: >-
            An internal error occurred. If the issue persists please contact
            support@fabric.inc.
    ProductV2:
      type: object
      properties:
        sku:
          type: string
          example: MOBO-X570
          description: Stock Keeping Unit (SKU) of item
        itemId:
          type: number
          example: 4
          description: Item ID
        childrenSize:
          description: Number of children or variants of the item
          type: number
          default: 0
        type:
          description: Item type - ITEM or BUNDLE
          type: string
          example: ITEM
          default: ITEM
        status:
          type: boolean
          example: true
          description: 'true: Item is Active <br /> false: Item is Inactive'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/ProductCategory'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
    Bundle:
      type: object
      properties:
        sku:
          type: string
          example: BUNDLE-01
          description: Stock Keeping Unit (SKU), a unique identifier of bundle
        itemId:
          type: number
          example: 4
          description: Item ID
        type:
          description: Item type - Bundle (default) or Item
          type: string
          example: BUNDLE
        status:
          type: boolean
          example: true
          description: 'true: Bundle is active <br /> false: Bundle is inactive'
        bundleItems:
          type: array
          items:
            $ref: '#/components/schemas/GetBundleItems'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/ProductCategory'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
        createdOn:
          type: string
          example: '2022-03-07T22:50:10.668Z'
          description: Time of bundle creation (UTC format)
        modifiedOn:
          type: string
          example: '2022-03-07T22:52:01.720Z'
          description: Time when bundle was last updated (UTC format)
    ProductCategory:
      type: object
      properties:
        id:
          type: string
          example: 621c121bff2e4507c199b7cb
          description: A 24-character system-generated category ID
        name:
          type: string
          example: electronics
          description: Category name
        nodeId:
          description: Numeric category ID
          type: number
          example: 30
        breadcrumbs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 621c10f3ff2e4507c199b66b
                description: A 24-character system-generated breadcrumb ID
              nodeId:
                description: Numeric category ID
                type: number
                example: 31
              name:
                type: string
                example: PRIMARY
                description: Category name
              attributes:
                type: array
                items:
                  $ref: '#/components/schemas/ProductAttribute'
    ProductAttribute:
      allOf:
        - $ref: '#/components/schemas/Attribute'
        - type: object
          properties:
            description:
              type: string
              description: Explains purpose of the selected attribute
            mapping:
              type: string
              example: description
              description: Attribute mapping (as received)
    GetBundleItems:
      type: object
      properties:
        sku:
          type: string
          example: MOBO-1023
          description: Stock Keeping Unit (SKU) of item
        itemId:
          type: number
          example: 1
          description: Item ID
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
        quantity:
          description: Item quantity
          type: number
          example: 6
        children:
          type: array
          items:
            $ref: '#/components/schemas/BundleChild'
    Attribute:
      type: object
      properties:
        id:
          description: A 24-character system-generated attribute ID
          type: string
          example: 619a8ba6f1875f6dbcaf0521
        name:
          description: Attribute name
          type: string
          example: notes
        description:
          type: string
          description: Attribute description
          example: Notes for this particular category.
        type:
          type: string
          enum:
            - TEXT
            - BOOLEAN
            - SERIAL
            - DECIMAL
            - INTEGER
            - DATETIME
          example: TEXT
        value:
          type: string
          example: Unable to fulfill demand.
          description: Value corresponding to `type`
    BundleChild:
      type: object
      properties:
        sku:
          type: string
          description: Stock Keeping Unit (SKU) of item
        itemId:
          type: number
          description: Item ID
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
  securitySchemes:
    authorization:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: S2S access token (JWT) from fabric Identity service (during Login)

````