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

# List all product variants

> List all product variants



## OpenAPI

````yaml https://openapi.commercengine.io/ce-admin.json get /catalog/products/{id}/variants
openapi: 3.1.0
info:
  title: CE Admin APIs
  version: '1.0'
  summary: Comprehensive admin interface for managing your e-commerce platform
  description: >-
    Complete administrative API suite for Commerce Engine, providing powerful
    tools to manage products, orders, customers, inventory, analytics, and
    system configuration. Designed for administrators and backend integrations
    requiring full platform control.
  license:
    name: All Rights Reserved
    url: https://www.commercengine.io/contact-us
  contact:
    email: support@commercengine.io
    url: https://www.commercengine.io/contact-us
    name: Support
servers:
  - url: https://staging.api.commercengine.io/api/v1/{store_id}/admin
    description: Staging Server
    variables:
      store_id:
        default: store_id
        description: Store ID
  - url: https://prod.api.commercengine.io/api/v1/{store_id}/admin
    description: Prod Server
    variables:
      store_id:
        default: store_id
        description: Store ID
security:
  - Authorization: []
tags:
  - name: Analytics
    description: Analytics
  - name: Catalog
    description: Catalog
  - name: Coupons & promotions
    description: Coupons & promotions
  - name: Customers
    description: Customers
  - name: Filter Options
    description: Filter Options
  - name: Inventories
    description: Inventories
  - name: Marketplace
    description: Marketplace
  - name: Marketplace Catalog
    description: Marketplace Catalog
  - name: Media Gallery
    description: Media Gallery
  - name: Metrics
    description: Metrics
  - name: Orders
    description: Orders
  - name: Payments
    description: Payments
  - name: Payouts
    description: Payouts
  - name: POS
    description: POS
  - name: POSAdmin
    description: Admin endpoints to be used as proxy in pos
  - name: Segments
    description: Segments
  - name: Shipping
    description: Shipping
  - name: SSE
    description: SSE
  - name: Store
    description: Store
  - name: Webhooks
    description: Webhooks
paths:
  /catalog/products/{id}/variants:
    parameters:
      - name: id
        in: path
        description: product id
        required: true
        schema:
          type: string
    get:
      tags:
        - Catalog
      summary: List all product variants
      description: List all product variants
      operationId: list-variants
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  success:
                    type: boolean
                  content:
                    properties:
                      variants:
                        type: array
                        items:
                          $ref: '#/components/schemas/Variant'
                    type: object
      security:
        - Authorization: []
components:
  schemas:
    Variant:
      title: Variant
      allOf:
        - $ref: '#/components/schemas/VariantCommonDetail'
        - type: object
          properties:
            name:
              type: string
            associated_options:
              type: array
              items:
                $ref: '#/components/schemas/AssociatedOption'
            images:
              type: array
              items:
                $ref: '#/components/schemas/ProductImage'
      examples: []
      x-tags:
        - Catalog
    VariantCommonDetail:
      title: VariantCommonDetail
      type: object
      properties:
        id:
          description: variant id
          type: string
          readOnly: true
        active:
          type: boolean
          readOnly: true
        stock_available:
          type: boolean
          readOnly: true
        is_default:
          type: boolean
        short_description:
          type:
            - string
            - 'null'
        metadata:
          type:
            - object
            - 'null'
          additionalProperties:
            type: string
        sku:
          description: variant sku. can be null for digital product.
          type:
            - string
            - 'null'
        slug:
          description: variant sku. can be null for digital product.
          type: string
        hsn_code:
          type: string
          readOnly: true
        on_offer:
          type: boolean
          readOnly: true
        on_promotion:
          type: boolean
          readOnly: true
        on_subscription:
          type: boolean
          readOnly: true
        product_type:
          enum:
            - physical
            - digital
          readOnly: true
        product_id:
          type: string
          readOnly: true
        product_name:
          type: string
          readOnly: true
        pricing:
          type: array
          items:
            $ref: '#/components/schemas/ProductPricing'
        created_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
        variant_attributes:
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
      examples: []
      x-tags:
        - Catalog
    AssociatedOption:
      title: AssociatedOption
      type: object
      required:
        - attribute_id
        - attribute_value
      properties:
        attribute_id:
          type: string
        attribute_value:
          oneOf:
            - type: string
              description: >-
                Attributes with type of **single-select**, the value will be
                represented as a **string**.
            - $ref: '#/components/schemas/ColorObject'
              description: >-
                **Color** attributes will have their value represented as a
                color object, specifying the color details with name and
                hexcode.
        attribute_name:
          type: string
          readOnly: true
        attribute_type:
          enum:
            - single-select
            - color
          readOnly: true
        key:
          description: value in snake case.
          type: string
          readOnly: true
    ProductImage:
      title: ProductImage
      type: object
      properties:
        title:
          type:
            - string
            - 'null'
          maxLength: 128
        alternate_text:
          type:
            - string
            - 'null'
          maxLength: 128
        sort_order:
          type: integer
          format: int32
        url_tiny:
          type: string
          maxLength: 512
        url_thumbnail:
          type: string
          maxLength: 512
        url_standard:
          type: string
          maxLength: 512
        url_zoom:
          type: string
          maxLength: 512
        file_id:
          type: string
        file_type:
          enum:
            - image
      x-tags:
        - Catalog
    ProductPricing:
      title: ProductPricing
      type: object
      required:
        - customer_group_id
        - cost_price
        - listing_price
        - selling_price
        - tax_rate
      properties:
        customer_group_id:
          description: >-
            customer group id. for different pricing model in case of multiple
            customer groups.
          type:
            - string
            - 'null'
        cost_price:
          type:
            - number
            - 'null'
          format: double
        listing_price:
          type: number
          format: double
        selling_price:
          type: number
          format: double
        min_order_quantity:
          type: integer
          format: int32
          default: 1
        max_order_quantity:
          type:
            - integer
            - 'null'
          format: int32
        incremental_quantity:
          type: integer
          format: int32
          default: 1
        tax_type:
          enum:
            - GST
          readOnly: true
        tax_rate:
          type: number
          format: double
      x-tags:
        - Catalog
    ProductAttribute:
      title: ProductAttribute
      type: object
      properties:
        attribute_id:
          type: string
        attribute_name:
          type: string
          readOnly: true
        attribute_type:
          type: string
          enum:
            - text
            - number
            - boolean
            - date
            - single-select
            - multi-select
            - color
          readOnly: true
        attribute_value:
          oneOf:
            - type: string
              description: >-
                string value for attribute type **text**, **single select** and
                **date**.
            - type: number
              description: numeric value for attribute type number.
            - type: boolean
              description: true/false for attribute type boolean.
            - type: array
              description: for attribute type = multi-select
              items:
                type: string
            - $ref: '#/components/schemas/ColorObject'
              description: for attribute type = color
        key:
          description: Value in snake case.
          type: string
          readOnly: true
      examples: []
      x-tags:
        - Catalog
    ColorObject:
      title: ColorObject
      type: object
      required:
        - name
        - hexcode
      properties:
        name:
          type: string
        hexcode:
          type: string
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````