Depict Products API

The Products API from Depict — 6 operation(s) for products.

OpenAPI Specification

depict-products-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Depict Lite Ab Test Products API
  version: 1.0.0
  description: 'REST API behind Depict Lite, the native Shopify app: onboarding, collections, boost & bury, dashboards, A/B testing and multi-store management. Endpoints are served under the /api/lite prefix and require an Auth0-issued bearer token.'
servers:
- url: /api/lite
tags:
- name: Products
paths:
  /api/v1/merchants/{merchant_id}/products:
    post:
      tags:
      - Products
      summary: List Products Post Endpoint
      operationId: list_products_post_endpoint_api_v1_merchants__merchant_id__products_post
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      - name: locale
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Locale
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ListProductsRequest'
              default:
                limit: 50
                sort_by: revenue_desc
                include_metrics: false
                shopper_facing_only: false
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicListProductsResult'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/merchants/{merchant_id}/products/metrics:
    post:
      tags:
      - Products
      summary: Get Products Metrics Endpoint
      description: 'Per-product metrics for an explicit set of products.


        Lets the collection grid paint immediately (products are fetched without

        metrics) and then overlay the numbers. The expensive whole-catalog fetch is

        shared via the cached, single-flighted ``fetch_collection_metrics``, so on a

        warm cache this endpoint is just an in-memory slice keyed by the requested

        ids. Missing ids resolve to zeroed metrics, mirroring the inline

        ``include_metrics`` path.'
      operationId: get_products_metrics_endpoint_api_v1_merchants__merchant_id__products_metrics_post
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ProductMetricsRequest'
              default:
                main_product_ids: []
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductMetricsResponse'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/merchants/{merchant_id}/products/dead-stock:
    get:
      tags:
      - Products
      summary: Get Dead Stock Products Endpoint
      description: 'Merchant-wide dead stock: products with stock on hand but zero sales in

        the metrics period (the same definition as

        ``CollectionMetricsSummary.dead_stock``, which counts these per collection).

        Backed by the cached whole-catalog ``fetch_collection_metrics``, so on a

        warm cache this is an in-memory filter. Items are sorted by inventory

        (worst offenders first) and capped at ``DEAD_STOCK_MAX_ITEMS``; ``total``

        is the uncapped count. Products no longer in the catalog are dropped.'
      operationId: get_dead_stock_products_endpoint_api_v1_merchants__merchant_id__products_dead_stock_get
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      - name: market_group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Market Group Id
      - name: market
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Market
      - name: locale
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Locale
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeadStockResponse'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/merchants/{merchant_id}/products/filters:
    post:
      tags:
      - Products
      summary: List Product Filters Endpoint
      operationId: list_product_filters_endpoint_api_v1_merchants__merchant_id__products_filters_post
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      - name: locale
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Locale
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ProductFiltersRequest'
              default:
                shopper_facing_only: false
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductFiltersResponse'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/merchants/{merchant_id}/products/visibility:
    get:
      tags:
      - Products
      summary: Get Product Visibility Endpoint
      operationId: get_product_visibility_endpoint_api_v1_merchants__merchant_id__products_visibility_get
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      - name: main_product_ids
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 100
          title: Main Product Ids
      - name: market_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Market Ids
      - name: market_group_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Market Group Ids
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductVisibilityResponse'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Products
      summary: Patch Product Visibility Endpoint
      operationId: patch_product_visibility_endpoint_api_v1_merchants__merchant_id__products_visibility_patch
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductVisibilityPatchRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductVisibilityResponse'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/merchants/{merchant_id}/products/{main_product_id}:
    get:
      tags:
      - Products
      summary: Get Product Endpoint
      operationId: get_product_endpoint_api_v1_merchants__merchant_id__products__main_product_id__get
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      - name: main_product_id
        in: path
        required: true
        schema:
          type: string
          title: Main Product Id
      - name: locale_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Locale Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductResult'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ListProductsRequest:
      properties:
        locale_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Locale Id
        market:
          anyOf:
          - type: string
          - type: 'null'
          title: Market
        market_group_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Market Group Id
        limit:
          type: integer
          maximum: 100
          minimum: 1
          title: Limit
          default: 50
        cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
        sort_by:
          allOf:
          - $ref: '#/components/schemas/SortOption'
          default: revenue_desc
        search:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
        filters:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/GenericFilterValue'
            type: object
          - type: 'null'
          title: Filters
        include_metrics:
          type: boolean
          title: Include Metrics
          default: false
        shopper_facing_only:
          type: boolean
          title: Shopper Facing Only
          default: false
      type: object
      title: ListProductsRequest
    ProductVisibilityPatchRequest:
      properties:
        scope:
          type: string
          enum:
          - market
          - market_group
          - global_market_group
          title: Scope
          default: market_group
        market_id:
          anyOf:
          - type: string
            maxLength: 256
            minLength: 1
          - type: 'null'
          title: Market Id
        market_group_id:
          anyOf:
          - type: string
            maxLength: 256
            minLength: 1
          - type: 'null'
          title: Market Group Id
        updates:
          items:
            $ref: '#/components/schemas/ProductVisibilityUpdateRequest'
          type: array
          maxItems: 100
          minItems: 1
          title: Updates
      type: object
      required:
      - updates
      title: ProductVisibilityPatchRequest
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ListedProduct:
      properties:
        main_product_id:
          type: string
          title: Main Product Id
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        main_image_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Main Image Url
        hover_image_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Hover Image Url
        metadata:
          items:
            oneOf:
            - $ref: '#/components/schemas/OnSaleMetadata'
            - $ref: '#/components/schemas/LowStockMetadata'
            - $ref: '#/components/schemas/OutOfStockMetadata'
            - $ref: '#/components/schemas/NewInMetadata'
            - $ref: '#/components/schemas/InactiveMetadata'
            - $ref: '#/components/schemas/LimitedAvailabilityMetadata'
            - $ref: '#/components/schemas/BestsellerMetadata'
            - $ref: '#/components/schemas/TrendingMetadata'
            - $ref: '#/components/schemas/SlowMoverMetadata'
            - $ref: '#/components/schemas/StarProductMetadata'
            discriminator:
              propertyName: type
              mapping:
                bestseller: '#/components/schemas/BestsellerMetadata'
                inactive: '#/components/schemas/InactiveMetadata'
                limited_availability: '#/components/schemas/LimitedAvailabilityMetadata'
                low_stock: '#/components/schemas/LowStockMetadata'
                new_in: '#/components/schemas/NewInMetadata'
                on_sale: '#/components/schemas/OnSaleMetadata'
                out_of_stock: '#/components/schemas/OutOfStockMetadata'
                slow_mover: '#/components/schemas/SlowMoverMetadata'
                star_product: '#/components/schemas/StarProductMetadata'
                trending: '#/components/schemas/TrendingMetadata'
          type: array
          title: Metadata
        metrics:
          anyOf:
          - $ref: '#/components/schemas/ProductMetrics'
          - type: 'null'
        is_auto_hidden:
          type: boolean
          title: Is Auto Hidden
          default: false
        hidden_in_market_groups:
          items:
            type: string
          type: array
          title: Hidden In Market Groups
          default: []
        hidden_in_markets:
          items:
            $ref: '#/components/schemas/HiddenVisibilityLocation'
          type: array
          title: Hidden In Markets
          default: []
      type: object
      required:
      - main_product_id
      - title
      - main_image_url
      - hover_image_url
      - metadata
      title: ListedProduct
    BestsellerMetadata:
      properties:
        type:
          type: string
          enum:
          - bestseller
          const: bestseller
          title: Type
          default: bestseller
        meta_data:
          type: number
          title: Meta Data
        n_days:
          type: integer
          title: N Days
      type: object
      required:
      - meta_data
      - n_days
      title: BestsellerMetadata
    Variant:
      properties:
        id:
          type: string
          title: Id
        main_product_id:
          type: string
          title: Main Product Id
        name:
          type: string
          title: Name
        color_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Color Name
        image_url:
          anyOf:
          - type: string
            maxLength: 2083
            minLength: 1
            format: uri
          - type: string
          title: Image Url
      type: object
      required:
      - id
      - main_product_id
      - name
      - color_name
      - image_url
      title: Variant
    FilterValueOption:
      properties:
        value:
          type: string
          title: Value
        label:
          type: string
          title: Label
        count:
          type: integer
          title: Count
        swatch:
          anyOf:
          - type: string
          - type: 'null'
          title: Swatch
        children:
          items:
            $ref: '#/components/schemas/FilterValueOption'
          type: array
          title: Children
          default: []
        selected:
          type: boolean
          title: Selected
          default: false
      type: object
      required:
      - value
      - label
      - count
      title: FilterValueOption
    GenericFilterValue:
      properties:
        values:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Values
        paths:
          anyOf:
          - items:
              items:
                type: string
              type: array
            type: array
          - type: 'null'
          title: Paths
        operator:
          type: string
          enum:
          - or
          - and
          title: Operator
          default: or
        min_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Value
        max_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Value
      type: object
      title: GenericFilterValue
    ProductFiltersRequest:
      properties:
        locale_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Locale Id
        market_group_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Market Group Id
        filters:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/GenericFilterValue'
            type: object
          - type: 'null'
          title: Filters
        search:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
        shopper_facing_only:
          type: boolean
          title: Shopper Facing Only
          default: false
      type: object
      title: ProductFiltersRequest
    SortOptionItem:
      properties:
        id:
          type: string
          title: Id
        label:
          type: string
          title: Label
        selected:
          type: boolean
          title: Selected
      type: object
      required:
      - id
      - label
      - selected
      title: SortOptionItem
    HiddenVisibilityLocation:
      properties:
        market_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Market Id
        market_group_id:
          type: string
          title: Market Group Id
        source:
          type: string
          title: Source
        scope:
          anyOf:
          - type: string
          - type: 'null'
          title: Scope
      type: object
      required:
      - market_group_id
      - source
      title: HiddenVisibilityLocation
    LowStockMetadata:
      properties:
        type:
          type: string
          enum:
          - low_stock
          const: low_stock
          title: Type
          default: low_stock
        sizes_in_stock:
          type: integer
          title: Sizes In Stock
        sizes_total:
          type: integer
          title: Sizes Total
      type: object
      required:
      - sizes_in_stock
      - sizes_total
      title: LowStockMetadata
    SortOption:
      type: string
      enum:
      - relevance
      - created_at_asc
      - created_at_desc
      - sale_price_asc
      - sale_price_desc
      - title_asc
      - title_desc
      - clicks_asc
      - clicks_desc
      - views_asc
      - views_desc
      - sold_asc
      - sold_desc
      - revenue_asc
      - revenue_desc
      - ctr_asc
      - ctr_desc
      - str_asc
      - str_desc
      - inventory_asc
      - inventory_desc
      title: SortOption
    DynamicListProductsResult:
      properties:
        products:
          items:
            $ref: '#/components/schemas/ListedProduct'
          type: array
          title: Products
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
        has_more:
          type: boolean
          title: Has More
          default: false
        sort_options:
          items:
            $ref: '#/components/schemas/SortOptionItem'
          type: array
          title: Sort Options
        stats:
          $ref: '#/components/schemas/ProductListingStats'
      type: object
      required:
      - products
      - sort_options
      - stats
      title: DynamicListProductsResult
    ProductVisibilityUpdateRequest:
      properties:
        main_product_id:
          type: string
          maxLength: 512
          minLength: 1
          title: Main Product Id
        plp:
          anyOf:
          - type: string
            enum:
            - hidden_explicit
            - visible_explicit
            - inherit
          - type: 'null'
          title: Plp
        search:
          anyOf:
          - type: string
            enum:
            - hidden_explicit
            - visible_explicit
            - inherit
          - type: 'null'
          title: Search
        recs:
          anyOf:
          - type: string
            enum:
            - hidden_explicit
            - visible_explicit
            - inherit
          - type: 'null'
          title: Recs
        expected_updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expected Updated At
      type: object
      required:
      - main_product_id
      title: ProductVisibilityUpdateRequest
    NewInMetadata:
      properties:
        type:
          type: string
          enum:
          - new_in
          const: new_in
          title: Type
          default: new_in
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
      type: object
      title: NewInMetadata
    PriceListItem:
      properties:
        id:
          type: string
          title: Id
        original_price:
          type: number
          title: Original Price
        sale_price:
          type: number
          title: Sale Price
        currency:
          type: string
          title: Currency
      type: object
      required:
      - id
      - original_price
      - sale_price
      - currency
      title: PriceListItem
    app__usecase__get_product__Collection:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        filter:
          type: string
          title: Filter
        exist:
          type: boolean
          title: Exist
        children:
          items:
            $ref: '#/components/schemas/app__usecase__get_product__Collection'
          type: array
          title: Children
      type: object
      required:
      - id
      - name
      - filter
      - exist
      - children
      title: Collection
    ProductVisibilityResponse:
      properties:
        visibility:
          additionalProperties:
            additionalProperties:
              additionalProperties:
                $ref: '#/components/schemas/ProductVisibilitySurfaceState'
              type: object
            type: object
          type: object
          title: Visibility
      type: object
      required:
      - visibility
      title: ProductVisibilityResponse
    LimitedAvailabilityMetadata:
      properties:
        type:
          type: string
          enum:
          - limited_availability
          const: limited_availability
          title: Type
          default: limited_availability
        hidden_market_count:
          type: integer
          title: Hidden Market Count
        total_market_count:
          type: integer
          title: Total Market Count
      type: object
      required:
      - hidden_market_count
      - total_market_count
      title: LimitedAvailabilityMetadata
    ProductFiltersResponse:
      properties:
        available_filters:
          items:
            $ref: '#/components/schemas/DynamicAvailableFilter'
          type: array
          title: Available Filters
          default: []
      type: object
      title: ProductFiltersResponse
    SlowMoverMetadata:
      properties:
        type:
          type: string
          enum:
          - slow_mover
          const: slow_mover
          title: Type
          default: slow_mover
        meta_data:
          type: number
          title: Meta Data
        n_days:
          type: integer
          title: N Days
      type: object
      required:
      - meta_data
      - n_days
      title: SlowMoverMetadata
    StarProductMetadata:
      properties:
        type:
          type: string
          enum:
          - star_product
          const: star_product
          title: Type
          default: star_product
        meta_data:
          type: number
          title: Meta Data
        n_days:
          type: integer
          title: N Days
      type: object
      required:
      - meta_data
      - n_days
      title: StarProductMetadata
    DeadStockItem:
      properties:
        main_product_id:
          type: string
          title: Main Product Id
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        image_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Image Url
        inventory:
          type: integer
          title: Inventory
        views:
          type: integer
          title: Views
        clicks:
          type: integer
          title: Clicks
        ctr:
          type: number
          title: Ctr
        prev_sold:
          type: integer
          title: Prev Sold
      type: object
      required:
      - main_product_id
      - inventory
      - views
      - clicks
      - ctr
      - prev_sold
      title: DeadStockItem
    ProductMetricsResponse:
      properties:
        metrics:
          additionalProperties:
            $ref: '#/components/schemas/ProductMetrics'
          type: object
          title: Metrics
        revenue_currency:
          type: string
          title: Revenue Currency
          default: ''
      type: object
      required:
      - metrics
      title: ProductMetricsResponse
    ProductListingStats:
      properties:
        all_products:
          type: integer
          title: All Products
        all_out_of_stock:
          type: integer
          title: All Out Of Stock
        all_low_stock:
          type: integer
          title: All Low Stock
        total_products:
          type: integer
          title: Total Products
        out_of_stock:
          type: integer
          title: Out Of Stock
        low_stock:
          type: integer
          title: Low Stock
        on_sale:
          type: integer
          title: On Sale
        new_in:
          type: integer
          title: New In
        inactive:
          type: integer
          title: Inactive
        bestseller:
          type: integer
          title: Bestseller
        trending:
          type: integer
          title: Trending
        slow_mover:
          type: integer
          title: Slow Mover
        star_product:
          type: integer
          title: Star Product
      type: object
      required:
      - all_products
      - all_out_of_stock
      - all_low_stock
      - total_products
      - out_of_stock
      - low_stock
      - on_sale
      - new_in
      - inactive
      - bestseller
      - trending
      - slow_mover
      - star_product
      title: ProductListingStats
    ProductMetrics:
      properties:
        clicks:
          type: integer
          title: Clicks
          default: 0
        prev_clicks:
          type: integer
          title: Prev Clicks
          default: 0
        views:
          type: integer
          title: Views
          default: 0
        prev_views:
          type: integer
          title: Prev Views
          default: 0
        sold:
          type: integer
          title: Sold
          default: 0
        prev_sold:
          type: integer
          title: Prev Sold
          default: 0
        revenue:
          anyOf:
          - type: number
          - type: 'null'
          title: Revenue
          default: 0
        prev_revenue:
          anyOf:
          - type: number
          - type: 'null'
          title: Prev Revenue
          default: 0
        revenue_currency:
          type: string
          title: Revenue Currency
          default: ''
        inventory:
          type: integer
          title: Inventory
          default: 0
        click_through_rate:
          type: number
          title: Click Through Rate
          default: 0
        prev_click_through_rate:
          type: number
          title: Prev Click Through Rate
          default: 0
        sell_through_rate:
          type: number
          title: Sell Through Rate
          default: 0
        prev_sell_through_rate:
          type: number
          title: Prev Sell Through Rate
          default: 0
        add_to_carts:
          type: integer
          title: Add To Carts
          default: 0
        prev_add_to_carts:
          type: integer
          title: Prev Add To Carts
          default: 0
      type: object
      title: ProductMetrics
    InactiveMetadata:
      properties:
        type:
          type: string
          enum:
          - inactive
          const: inactive
          title: Type
          default: inactive
      type: object
      title: InactiveMetadata
    TrendingMetadata:
      properties:
        type:
          type: string
          enum:
          - trending
          const: trending
          title: Type
          default: trending
        meta_data:
          type: number
          title: Meta Data
        n_days:
          type: integer
          title: N Days
      type: object
      required:
      - meta_data
      - n_days
      title: TrendingMetadata
    OnSaleMetadata:
      properties:
        type:
          type: string
          enum:
          - on_sale
          const: on_sale
          title: Type
          default: on_sale
        min_percentage:
          type: integer
          title: Min Percentage
        max_percentage:
          type: integer
          title: Max Percentage
      type: object
      required:
      - min_percentage
      - max_percentage
      title: OnSaleMetadata
    InventorySize:
      properties:
        size:
          type: string
          title: Size
        quantity:
          type: integer
          title: Quantity
      type: object
      required:
      - size
      - quantity
      title: InventorySize
    GetProductResult:
      properties:
        main_product_id:
          type: string
          title: Main Product Id
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        color_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Color Name
        size:
          anyOf:
          - type: string
          - type: 'null'
          title: Size
        main_image_url:
          anyOf:
          - type: string
            maxLength: 2083
            minLength: 1
            format: uri
          - type: string
          title: Main Image Url
        hover_image_url:
          anyOf:
          - type: string
            maxLength: 2083
         

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/depict/refs/heads/main/openapi/depict-products-api-openapi.yml