> ## 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.

# Retrieve a product by product ID

> Use this endpoint to retrieve a single product by its `productId`. 
You must specify the query parameters `productId` and `locale`. 
Optionally, you can set the following query parameters to `true` to refine the search results:
  - `excludeBundleProducts`: Exclude bundled products from the response.
  - `excludeCollections`: Exclude collections from the response.
  - `excludeCategories`: Exclude categories from the response.
  - `excludeAttributes`: Exclude attributes from the response. 
  - `excludeVariants`: Exclude variants from the response. 

If you don't have the `productId`, use one of the endpoints to retrieve the product:
  - [Retrieve a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/update-with-sku). 
  - [Retrieve a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/update-by-item).




## OpenAPI

````yaml cc.openapi get /catalog-connector/products/{productId}
openapi: 3.0.0
info:
  description: >-
    fabric's **Catalog Connector** API is a lightweight service that you can use
    when you have your own Product Information Management (PIM) and only want to
    integrate with other fabric services, such as Offers and OMS (excluding the
    fabric Products API service). It supports CRUD operations to add and manage
    products in the Catalog Connector based on SKU, product ID, and item ID.
    Using Catalog Connector API, you can retrieve an import template, import
    product data into the Catalog Connector, export data, and check the status
    of previous imports and exports. Additionally, you can search for products
    based on specified filter conditions and perform bulk operations to manage
    products.
  title: Catalog - Connector
  version: 3.0.0
  x-audience: external-public
  contact:
    email: support@fabric.inc
    name: Product team
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
  termsOfService: https://fabric.inc/terms-of-use
servers:
  - url: https://api.fabric.inc/v3
    description: Production URL
security:
  - authorization: []
tags:
  - name: Catalog Connector Files
    description: >-
      Retrieve an import template, import a file to the Catalog Connector, view
      import and export status, and download a previously processed file.
  - name: Catalog Connector Jobs
    description: >-
      Export data from the Catalog Connector and retrieve the status of
      previously processed files.
  - name: General Catalog Connector Operations
    description: Search for products based on the specified filter conditions.
  - name: Catalog Connector Operations by SKU
    description: Supports product operations based on SKU.
  - name: Catalog Connector Operations by Product ID
    description: Supports product operations based on Product ID.
  - name: Catalog Connector Operations by Item ID
    description: Supports product operations based on Item ID.
externalDocs:
  description: Find out more about Catalog Connector (previously called PIM Connector)
  url: https://developer.fabric.inc/docs/products-overview
paths:
  /catalog-connector/products/{productId}:
    get:
      tags:
        - Catalog Connector Operations by Product ID
      summary: Retrieve a product by product ID
      description: >
        Use this endpoint to retrieve a single product by its `productId`. 

        You must specify the query parameters `productId` and `locale`. 

        Optionally, you can set the following query parameters to `true` to
        refine the search results:
          - `excludeBundleProducts`: Exclude bundled products from the response.
          - `excludeCollections`: Exclude collections from the response.
          - `excludeCategories`: Exclude categories from the response.
          - `excludeAttributes`: Exclude attributes from the response. 
          - `excludeVariants`: Exclude variants from the response. 

        If you don't have the `productId`, use one of the endpoints to retrieve
        the product:
          - [Retrieve a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/update-with-sku). 
          - [Retrieve a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/update-by-item).
      operationId: getCatalogByProductId
      parameters:
        - in: path
          name: productId
          schema:
            type: string
          required: true
          example: 6482b9524ffa4978fd9cbf5c
          description: The UUID of the product.
        - $ref: '#/components/parameters/localeParameter'
        - $ref: '#/components/parameters/xFabricTenantId'
        - $ref: '#/components/parameters/xFabricRequestId'
        - $ref: '#/components/parameters/excludeBundleProductsParameter'
        - $ref: '#/components/parameters/excludeCollectionsParameter'
        - $ref: '#/components/parameters/excludeCategoriesParameter'
        - $ref: '#/components/parameters/excludeAttributesParameter'
        - $ref: '#/components/parameters/excludeVariantsParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                Item:
                  $ref: '#/components/examples/ItemExample'
                Variant:
                  $ref: '#/components/examples/variantExample'
                Bundle:
                  $ref: '#/components/examples/bundleExample'
              schema:
                $ref: '#/components/schemas/product'
          headers:
            x-fabric-request-id:
              $ref: '#/components/headers/xFabricRequestId'
        '400':
          $ref: '#/components/responses/badRequest'
        '401':
          $ref: '#/components/responses/notAuthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFoundError'
        '413':
          $ref: '#/components/responses/payloadLimitExceededError'
        '500':
          $ref: '#/components/responses/internalServerError'
components:
  parameters:
    localeParameter:
      name: locale
      in: query
      example: en-US
      description: >
        The language code, which is a combination of language (ISO 639 format)
        and country (ISO 3166 format). 


        The default value is en-US.
      schema:
        type: string
      required: true
    xFabricTenantId:
      in: header
      name: x-fabric-tenant-id
      schema:
        type: string
      required: true
      example: 5f328bf0b5f328bf0b5f328b
      description: >-
        A header retrieved from your [Copilot Account
        Details](/v3/platform/settings/account-details/getting-the-account-id)
        that's used by the API to identify the tenant making the request. Tenant
        ID must be included in the authentication header for API requests to
        access any of fabric’s endpoints.
    xFabricRequestId:
      in: header
      name: x-fabric-request-id
      description: Unique request ID
      schema:
        type: string
      example: 263e731c-45c8-11ed-b878-0242ac120002
      required: false
    excludeBundleProductsParameter:
      name: excludeBundleProducts
      in: query
      example: false
      description: >-
        A flag indicating whether the products associated with a bundle should
        be excluded from the response. Set it to `true` to exclude products of a
        bundle and `false` to include them in the response.
      schema:
        type: boolean
      required: false
    excludeCollectionsParameter:
      name: excludeCollections
      in: query
      example: false
      description: >-
        A flag indicating whether the collections should be excluded from the
        response. Set it to `true` to exclude collections and `false` to include
        them in the response.
      schema:
        type: boolean
      required: false
    excludeCategoriesParameter:
      name: excludeCategories
      in: query
      example: false
      description: >-
        A flag indicating whether the categories should be excluded from the
        response. Set it to `true` to exclude categories and `false` to include
        them in the response.
      schema:
        type: boolean
      required: false
    excludeAttributesParameter:
      name: excludeAttributes
      in: query
      example: false
      description: >-
        A flag indicating whether attributes should be excluded from the
        response. Set it to `true` to exclude attributes and `false` to include
        them in the response.
      schema:
        type: boolean
      required: false
    excludeVariantsParameter:
      name: excludeVariants
      in: query
      example: false
      description: >-
        A flag indicating whether item variants should be excluded from the
        response. Set it to `true` to exclude variants and `false` to include
        them in the response.
      schema:
        type: boolean
      required: false
  examples:
    ItemExample:
      value:
        sku: NIKE237765
        productName: Nike runner shoes
        id: 6482b9524ffa4978fd9cbf5c
        itemId: 2700537
        categoryName: Sport Shoes
        categoryId: 648014741adc8a9de14e1a68
        images:
          - https://myawsomestore.com/is/image/nike/8801290_s7
        attributes:
          - name: Color
            value: black
            id: 6480216349256438cb7d53b5
            type: TEXT
          - name: Wide Fit
            value: false
            id: 640db94f9fc28b255d155a42
            type: BOOLEAN
        type: ITEM
        variants:
          - sku: NIKE237766
            productName: Nike runner white shoes
            id: 648aa9280d7b561b4663038c
            itemId: 2700538
            images:
              - https://myawsomestore.com/is/image/nike/8801291_s7
            attributes:
              - name: Color
                value: White
                id: 6480216349256438cb7d53b5
                type: TEXT
              - name: Wide Fit
                value: true
                id: 640db94f9fc28b255d155a42
                type: BOOLEAN
            createdAt: '2021-12-13T13:56:09.006Z'
            updatedAt: '2021-12-13T13:56:09.006Z'
        categories:
          - name: Sport Shoes
            id: 648014741adc8a9de14e1a68
            isRoot: false
            attributes:
              - name: Fit
                value: Relaxed Fit
                id: 648014741adc8a9de14e1a00
                type: TEXT
          - name: Shoes
            id: 648aa9258fdef29675dbce42
            isRoot: true
            attributes:
              - name: Material
                value: Mesh
        collections:
          - name: Flash sale
            id: 648055dff4aa98d6c43e02da
            hierarchy:
              - name: Flash Sale
                id: 648055dff4aa98d6c43e02da
                isRoot: false
                attributes:
                  - name: Duration
                    value: 600
                    type: NUMBER
              - name: Sales
                id: 648055e0f4aa98d6c43e02f7
                isRoot: true
        createdAt: '2021-12-13T13:56:09.006Z'
        updatedAt: '2021-12-13T13:56:09.006Z'
    variantExample:
      value:
        sku: NIKE237766
        productName: Nike runner white shoes
        id: 648aa9280d7b561b4663038c
        itemId: 2700538
        categoryName: Sport Shoes
        categoryId: 648014741adc8a9de14e1a68
        images:
          - https://myawsomestore.com/is/image/nike/8801291_s7
        attributes:
          - name: Color
            value: White
            id: 6480216349256438cb7d53b5
            type: TEXT
          - name: Wide Fit
            value: true
            id: 640db94f9fc28b255d155a42
            type: BOOLEAN
        type: VARIANT
        parentSku: NIKE237765
        parentId: 6482b9524ffa4978fd9cbf5c
        categories:
          - name: Sport Shoes
            id: 648014741adc8a9de14e1a68
            isRoot: false
            attributes:
              - name: Fit
                value: Relaxed Fit
                id: 648014741adc8a9de14e1a00
                type: TEXT
          - name: Shoes
            id: 648aa9258fdef29675dbce42
            isRoot: true
            attributes:
              - name: Material
                value: Mesh
        collections:
          - name: Flash sale
            id: 648055dff4aa98d6c43e02da
            hierarchy:
              - name: Flash Sale
                id: 648055dff4aa98d6c43e02da
                isRoot: false
                attributes:
                  - name: Duration
                    value: 600
                    type: NUMBER
              - name: Sales
                id: 648055e0f4aa98d6c43e02f7
                isRoot: true
        createdAt: '2021-12-13T13:56:09.006Z'
        updatedAt: '2021-12-13T13:56:09.006Z'
    bundleExample:
      value:
        sku: BUNDLE237765
        productName: Nike runner shoes bundle
        id: 60ad7e9d858eb50007abbb19#2700540
        itemId: 2700540
        categoryName: Sport Shoes
        categoryId: 648014741adc8a9de14e1a68
        images:
          - https://myawsomestore.com/is/image/nike/8801290_s7
          - https://myawsomestore.com/is/image/nike/8801291_s7
        attributes:
          - name: Shoes Combo
            value: true
            type: BOOLEAN
        type: BUNDLE
        bundleProducts:
          - sku: NIKE237766
            quantity: 1
            productName: Nike runner white shoes
            id: 648aa9280d7b561b4663038c
            itemId: 2700538
            type: VARIANT
            images:
              - https://myawsomestore.com/is/image/nike/8801291_s7
            attributes:
              - name: Color
                value: White
                id: 6480216349256438cb7d53b5
                type: TEXT
              - name: Wide Fit
                value: true
                id: 640db94f9fc28b255d155a42
                type: BOOLEAN
            createdAt: '2021-12-13T13:56:09.006Z'
            updatedAt: '2021-12-13T13:56:09.006Z'
          - sku: NIKE237765
            quantity: 1
            productName: Nike runner shoes
            id: 6482b9524ffa4978fd9cbf5c
            itemId: 2700537
            type: ITEM
            images:
              - https://myawsomestore.com/is/image/nike/8801290_s7
            attributes:
              - name: Color
                value: black
                id: 6480216349256438cb7d53b5
                type: TEXT
              - name: Wide Fit
                value: false
                id: 640db94f9fc28b255d155a42
                type: BOOLEAN
            createdAt: '2021-12-13T13:56:09.006Z'
            updatedAt: '2021-12-13T13:56:09.006Z'
        categories:
          - name: Sport Shoes
            id: 648014741adc8a9de14e1a68
            isRoot: false
            attributes:
              - name: Fit
                value: Relaxed Fit
                id: 648014741adc8a9de14e1a00
                type: TEXT
          - name: Shoes
            id: 648aa9258fdef29675dbce42
            isRoot: true
            attributes:
              - name: Material
                value: Mesh
        collections:
          - name: Flash sale
            id: 648055dff4aa98d6c43e02da
            hierarchy:
              - name: Flash Sale
                id: 648055dff4aa98d6c43e02da
                isRoot: false
                attributes:
                  - name: Duration
                    value: 600
                    type: NUMBER
              - name: Sales
                id: 648055e0f4aa98d6c43e02f7
                isRoot: true
        createdAt: '2021-12-13T13:56:09.006Z'
        updatedAt: '2021-12-13T13:56:09.006Z'
  schemas:
    product:
      description: The details of a product based on the product type.
      anyOf:
        - $ref: '#/components/schemas/itemCatalog'
        - $ref: '#/components/schemas/variantCatalog'
        - $ref: '#/components/schemas/bundleCatalog'
    itemCatalog:
      description: The details of an item.
      allOf:
        - $ref: '#/components/schemas/extendedCommonProductSchema'
      type: object
      properties:
        type:
          $ref: '#/components/schemas/itemProductType'
        variants:
          type: array
          description: The details of item variants.
          items:
            $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
    variantCatalog:
      description: The details of an item variant.
      allOf:
        - $ref: '#/components/schemas/extendedCommonProductSchema'
      type: object
      properties:
        type:
          $ref: '#/components/schemas/variantProductType'
        parentSku:
          $ref: '#/components/schemas/sku'
        parentId:
          type: string
          description: A 24-character system-generated ID of the parent item.
          example: 648014741adc8a9de14e1a68
    bundleCatalog:
      description: The details of a bundle.
      allOf:
        - $ref: '#/components/schemas/extendedCommonProductSchema'
      type: object
      properties:
        type:
          $ref: '#/components/schemas/bundleProductType'
        bundleProducts:
          type: array
          description: The details of a bundle.
          items:
            $ref: '#/components/schemas/bundleProductSchema'
    genericError:
      type: object
      description: The details of the error.
      properties:
        message:
          type: string
          description: A placeholder error message for all the 4xx, 5xx errors
          example: Request is invalid
        type:
          type: string
          description: A placeholder error type for all the 4xx, 5xx errors
          example: Bad request
        errors:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                description: The error type.
                example: CLIENT_ERROR
              message:
                type: string
                description: The error message corresponding to the `type`.
                example: Invalid request. Unable to find/create product
    extendedCommonProductSchema:
      description: Additional details of a product.
      allOf:
        - $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
      type: object
      properties:
        categoryName:
          type: string
          description: The name of the category.
          example: Shoes
        categoryId:
          type: string
          description: A 24-character system-generated category ID.
          example: 648055dff4aa98d6c43e02da
        categories:
          type: array
          description: >-
            The list of categories, including their paths from the leaf category
            to the root category.
          items:
            $ref: '#/components/schemas/category'
        collections:
          type: array
          description: >-
            The details of the collection used to display products on the
            storefront.
          items:
            type: object
            additionalProperties: false
            description: The collection details.
            properties:
              id:
                type: string
                description: A 24-character system-generated collection ID.
                example: 648014741adc8a9de14e1a68
              name:
                type: string
                description: The name of the collection.
                example: Flash Sale
              hierarchy:
                type: array
                description: >-
                  The list of collections, including their paths from the leaf
                  collection to the root collection.
                items:
                  $ref: '#/components/schemas/category'
    itemProductType:
      type: string
      description: Represents the `item` product type.
      enum:
        - ITEM
      example: ITEM
    commonProductSchemaWithIdentifiers:
      allOf:
        - $ref: '#/components/schemas/commonProductSchema'
      type: object
      description: >-
        A common schema for product, variants, and bundles along with their
        identifiers.
      properties:
        sku:
          $ref: '#/components/schemas/sku'
        id:
          $ref: '#/components/schemas/id'
        itemId:
          type: integer
          format: int32
          example: 1682313863
          description: A unique identifier of an item, a variant or a bundle.
    variantProductType:
      type: string
      description: Represents the `variant` product type.
      enum:
        - VARIANT
      example: VARIANT
    sku:
      type: string
      description: Product SKU
      example: 24ggs67-e89b-12e3-a456-026614174119
    bundleProductType:
      type: string
      description: Represents the `bundle` product type.
      enum:
        - BUNDLE
      example: BUNDLE
    bundleProductSchema:
      description: The details of the bundle.
      type: object
      properties:
        quantity:
          type: integer
          format: int32
          description: The quantity of the bundle.
          example: 2
        type:
          $ref: '#/components/schemas/productType'
      allOf:
        - $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
    category:
      type: object
      additionalProperties: false
      description: The details of a category.
      properties:
        id:
          type: string
          description: A 24-character system-generated category ID.
          example: 648055dff4aa98d6c43e02da
        name:
          type: string
          description: The name of the category.
          example: Shoes
        isRoot:
          type: boolean
          description: >-
            A flag indicating whether the given category is a root category. Set
            it to `true` if it's a root category and `false` if it isn't a root
            category.
          example: true
        attributes:
          type: array
          description: The details of an attribute.
          items:
            $ref: '#/components/schemas/attribute'
    commonProductSchema:
      type: object
      description: A common schema for product, variants, and bundles.
      properties:
        productName:
          type: string
          description: The name of the product.
          example: Nike Men's Training Shoe
        images:
          type: array
          description: The list of product images.
          items:
            type: string
          example:
            - https://myawsomestore.com/is/image/nike/8801290_s7
        attributes:
          type: array
          description: The name of the attribute and its value.
          items:
            $ref: '#/components/schemas/attribute'
        createdAt:
          type: string
          description: The time of product creation, in UTC format.
          format: date-time
          example: '2021-12-13T13:56:09.006Z'
        updatedAt:
          type: string
          description: The time of last update to product, in UTC format.
          format: date-time
          example: '2021-12-13T13:56:09.006Z'
    id:
      type: string
      example: 5f7329dfd5288b0011332366
      description: A 24-character system-generated ID.
    productType:
      type: string
      description: The type of product.
      enum:
        - BUNDLE
        - VARIANT
        - ITEM
      example: ITEM
    attribute:
      type: object
      additionalProperties: false
      description: The details of the attribute.
      properties:
        name:
          $ref: '#/components/schemas/attributeName'
        value:
          $ref: '#/components/schemas/attributeValue'
        id:
          $ref: '#/components/schemas/attributeId'
        type:
          $ref: '#/components/schemas/attributeType'
    attributeName:
      type: string
      description: The name of the attribute.
      example: isOnSale
    attributeValue:
      anyOf:
        - $ref: '#/components/schemas/booleanSchema'
        - $ref: '#/components/schemas/stringSchema'
        - $ref: '#/components/schemas/integerSchema'
        - $ref: '#/components/schemas/doubleSchema'
        - $ref: '#/components/schemas/arrayOfStringsSchema'
      example: false
      description: The attribute value.
    attributeId:
      type: string
      description: A 24-character system-generated attribute ID.
      example: 6480216349256438cb7d53b5
    attributeType:
      type: string
      description: The type of attribute.
      enum:
        - NUMBER
        - BOOLEAN
        - TEXT
        - LOV
      example: TEXT
    booleanSchema:
      type: boolean
      nullable: true
      description: Represents a boolean schema.
      example: true
    stringSchema:
      type: string
      nullable: true
      description: Represents a string schema.
      example: blue
    integerSchema:
      type: integer
      nullable: true
      format: int32
      description: Represents an integer schema.
      example: 1
    doubleSchema:
      type: number
      nullable: true
      format: double
      description: Represents a double schema.
      example: 1
    arrayOfStringsSchema:
      type: array
      description: Represents an array of string schema.
      items:
        type: string
        nullable: true
        description: Represents a string schema.
  headers:
    xFabricRequestId:
      schema:
        type: string
      required: false
      example: 263e731c-45c8-11ed-b878-0242ac120002
      description: Unique request ID
  responses:
    badRequest:
      description: Request is invalid or malformed
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/xFabricRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
    notAuthorized:
      description: The requester is unauthorized.
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/xFabricRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: UNAUTHORIZED_ERROR
            message: Requester is unauthorized
    forbidden:
      description: The user isn't allowed to perform this action.
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/xFabricRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: REQUEST_DENIED
            message: User does not have the required permission
    notFoundError:
      description: The requested entity isn't found
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/xFabricRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: NOT_FOUND
            message: Resource not found
    payloadLimitExceededError:
      description: The payload limit is exceeded. It should be less than 10MB.
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/xFabricRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: PAYLOAD_LIMIT_EXCEEDED_ERROR
            message: Payload exceeds maximum configured size
    internalServerError:
      description: Internal server error
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/xFabricRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: SERVER_ERROR
            message: Internal Server Error
  securitySchemes:
    authorization:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        This is the authorization token used to authenticate the request. You
        must pass the access token generated from the system app. For more
        information, see the [Making your first API
        request](/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure)
        section.

````