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

# Get a product

> Retrieves a single product by its ID, scoped to the store, with shop, currency and category populated.

Retrieves a single product by its ID, scoped to the store, with shop, currency and category populated. Returns 404 if the product does not exist in this store. Requires the `READ_INVENTORY` scope.


## OpenAPI

````yaml GET /products/{id}
openapi: 3.1.0
info:
  title: Salesive Store API
  description: >-
    REST interface for querying products, categories, and merchandising banners
    exposed by Salesive storefronts.
  version: 1.0.0
servers:
  - description: Production
    url: https://store.salesive.com/api/v1
security:
  - BearerAuth: []
    ShopIdHeader: []
paths:
  /products/{id}:
    get:
      summary: Get product
      description: >-
        Retrieve details for a single catalog item by identifier or slug.
        Standard product catalogs accept slug lookups; food (restaurant) and
        service (business) storefronts currently resolve by item ID and return
        the matching `catalogType`/`itemType` (`food` or `service`).
      parameters:
        - $ref: '#/components/parameters/XShopIdHeader'
        - name: id
          in: path
          required: true
          description: Product's MongoDB identifier or slug.
          schema:
            type: string
      responses:
        '200':
          description: Product detail response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        '404':
          description: Product not found.
components:
  parameters:
    XShopIdHeader:
      name: x-shop-id
      in: header
      description: >-
        Optional identifier that scopes responses to a specific storefront when
        the referer cannot be inferred.
      required: false
      schema:
        type: string
  schemas:
    Product:
      type: object
      required:
        - id
        - name
        - price
      properties:
        id:
          type: string
          description: Unique product identifier.
        itemType:
          type: string
          enum:
            - product
            - food
            - service
          description: Catalog item type.
        catalogType:
          type: string
          enum:
            - product
            - food
            - service
          description: Catalog response type for the current storefront.
        name:
          type: string
          description: Display name of the product.
        description:
          type: string
          description: Rich description of the product.
        price:
          type: number
          format: float
          description: Unit price for the product.
        currency:
          type: string
          description: ISO currency code for the product price.
        category:
          type: string
          description: Identifier of the category the product belongs to.
        status:
          type: string
          description: Derived status such as active or archived.
        images:
          type: array
          items:
            type: string
            format: uri
          description: Optional list of image URLs for the product.
        addons:
          type: array
          items:
            $ref: '#/components/schemas/FoodAddon'
          description: Available add-ons for food catalog items.
        variants:
          type: array
          items:
            type: object
            properties:
              sku:
                type: string
              options:
                type: object
                additionalProperties:
                  type: string
              stock:
                type: integer
                minimum: 0
          description: Optional list of variant definitions for the product.
    FoodAddon:
      type: object
      required:
        - name
        - price
        - maxQuantity
        - available
      properties:
        _id:
          type: string
        name:
          type: string
        description:
          type: string
          description: >-
            Optional helper text shown in the UI and returned by add-on
            endpoints.
        price:
          type: number
        maxQuantity:
          type: integer
          minimum: 1
        image:
          type:
            - string
            - 'null'
          format: uri
        available:
          type: boolean
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT issued by the Salesive Store API for authenticated shoppers.
    ShopIdHeader:
      type: apiKey
      in: header
      name: x-shop-id
      description: >-
        Optional storefront identifier sent as a header to scope responses to a
        specific shop. Try It requests remember this value once provided.

````