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

# Get Product by ID

> The "Get Product by ID" API allows to retrieve information for a specific product using its unique identifier. Use this endpoint to fetch details for a single product based on the provided product ID.



## OpenAPI

````yaml /api-reference/products/openapi.json get /products/{productId}
openapi: 3.0.0
info:
  title: Products API
  description: Documentation for products API
  version: '1.0'
  contact: {}
servers:
  - url: https://services.leadconnectorhq.com
security: []
tags:
  - name: Products
    description: Documentation for products API
  - name: Prices
    description: Documentation for products API
  - name: Store
    description: Documentation for products API
  - name: Collections
    description: Documentation for products API
  - name: Reviews
    description: Documentation for products API
paths:
  /products/{productId}:
    get:
      tags:
        - Products
      summary: Get Product by ID
      description: >-
        The "Get Product by ID" API allows to retrieve information for a
        specific product using its unique identifier. Use this endpoint to fetch
        details for a single product based on the provided product ID.
      operationId: get-product-by-id
      parameters:
        - name: Version
          in: header
          description: API Version
          required: true
          schema:
            type: string
            enum:
              - '2021-07-28'
        - name: productId
          required: true
          in: path
          description: ID or the slug of the product that needs to be returned
          schema:
            example: 6578278e879ad2646715ba9c
            type: string
        - name: locationId
          required: true
          in: query
          description: location Id
          schema:
            example: 6578278e879ad2646715ba9c
            type: string
        - name: sendWishlistStatus
          required: false
          in: query
          description: >-
            Parameter which will decide whether to show the wishlisting status
            of products
          schema:
            example: true
            type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductResponseDto'
        '400':
          description: Product not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestDTO'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedDTO'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableDTO'
      security:
        - Location-Access:
            - products.readonly
        - Agency-Access:
            - products.readonly
components:
  schemas:
    GetProductResponseDto:
      type: object
      properties:
        _id:
          type: string
          description: The unique identifier for the product.
          example: 655b33a82209e60b6adb87a5
        description:
          type: string
          description: product description
          example: This is a really awesome product
        variants:
          description: An array of variants for the product.
          type: array
          items:
            $ref: '#/components/schemas/ProductVariantDto'
        locationId:
          type: string
          description: The unique identifier for the location.
          example: 3SwdhCsvxI8Au3KsPJt6
        name:
          type: string
          description: The name of the product.
          example: Awesome Product
        productType:
          type: string
          description: The type of the product (e.g., PHYSICAL).
          example: PHYSICAL
        availableInStore:
          type: boolean
          description: Indicates whether the product is available in-store.
          example: true
        createdAt:
          format: date-time
          type: string
          description: The creation timestamp of the product.
          example: '2023-11-20T10:23:36.515Z'
        updatedAt:
          format: date-time
          type: string
          description: The last update timestamp of the product.
          example: '2024-01-23T09:57:04.846Z'
        statementDescriptor:
          type: string
          description: The statement descriptor for the product.
          example: abcde
        image:
          type: string
          description: The URL for the product image.
          example: >-
            https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/65af8d5df88bdb4b1022ee90.png
        collectionIds:
          description: An array of category Ids for the product
          example:
            - 65d71377c326ea78e1c47df5
            - 65d71377c326ea78e1c47d34
          type: array
          items:
            type: string
        isTaxesEnabled:
          type: boolean
          description: >-
            The field indicates whether taxes are enabled for the product or
            not.
          example: true
          default: false
        taxes:
          description: >-
            An array of ids of Taxes attached to the Product. If the expand
            query includes tax, the taxes will be of type `ProductTaxDto`.
            Please refer to the `ProductTaxDto` for additional details.
          example:
            - 654492a4e6bef380114de15a
          type: array
          items:
            type: string
        automaticTaxCategoryId:
          type: string
          description: Tax category ID for Automatic taxes calculation.
          example: 65d71377c326ea78e1c47df5
        label:
          $ref: '#/components/schemas/ProductLabelDto'
        slug:
          type: string
          description: The slug of the product by which the product will be navigated
          example: washing-machine
      required:
        - _id
        - locationId
        - name
        - productType
        - createdAt
        - updatedAt
    BadRequestDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        message:
          type: string
          example: Bad Request
      required:
        - statusCode
        - message
    UnauthorizedDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          type: string
          example: 'Invalid token: access token is invalid'
        error:
          type: string
          example: Unauthorized
      required:
        - statusCode
        - message
        - error
    UnprocessableDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 422
        message:
          type: array
          items:
            type: string
          example:
            - Unprocessable Entity
        error:
          type: string
          example: Unprocessable Entity
      required:
        - statusCode
        - message
        - error
    ProductVariantDto:
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for the variant.
          example: 38s63qmxfr4
        name:
          type: string
          description: The name of the variant.
          example: Size
        options:
          description: An array of options for the variant.
          type: array
          items:
            $ref: '#/components/schemas/ProductVariantOptionDto'
      required:
        - id
        - name
        - options
    ProductLabelDto:
      type: object
      properties:
        title:
          type: string
          description: The content for the product label.
          example: Featured
        startDate:
          type: string
          description: Start date in YYYY-MM-DDTHH:mm:ssZ format
          example: '2024-06-26T05:43:35.000Z'
        endDate:
          type: string
          description: Start date in YYYY-MM-DDTHH:mm:ssZ format
          example: '2024-06-30T05:43:39.000Z'
      required:
        - title
    ProductVariantOptionDto:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the option.
          example: h4z7u0im2q8
        name:
          type: string
          description: The name of the option.
          example: XL
      required:
        - id
        - name

````