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

# Upsert Products

<Warning>
  This page does not apply to installs made in 2025 or later of the Depict Shopify apps
</Warning>


## OpenAPI

````yaml post /catalog/v0/products
openapi: 3.1.0
info:
  title: Depict API
  version: '1.0'
servers: []
security: []
paths:
  /catalog/v0/products:
    post:
      tags:
        - Catalog Push API (v0)
      summary: Upsert Products
      operationId: upsert_products_catalog_v0_products_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertProductsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    UpsertProductsRequest:
      properties:
        merchant:
          type: string
          title: Merchant
        products:
          items:
            $ref: '#/components/schemas/APIProduct-Input'
          type: array
          title: Products
      additionalProperties: false
      type: object
      required:
        - merchant
        - products
      title: UpsertProductsRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    APIProduct-Input:
      properties:
        product_id:
          type: string
          title: Product Id
        item_group_id:
          type: string
          title: Item Group Id
        main_product_id:
          type: string
          title: Main Product Id
        image_urls:
          items:
            type: string
            maxLength: 2083
            minLength: 1
            format: uri
          type: array
          minItems: 1
          title: Image Urls
        category_ids:
          items:
            type: string
          type: array
          title: Category Ids
        brand:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand
        inactive:
          type: boolean
          title: Inactive
          default: false
        transaction_product_id:
          type: string
          title: Transaction Product Id
          description: >-
            The id by which this product is known in the order data in Google
            Analytics. Merchants should use the same id for the DPC purchase
            events.
        locale_attributes:
          items:
            $ref: >-
              #/components/schemas/realtime__routes__catalog_routes__APIProduct__APILocaleAttributes
          type: array
          title: Locale Attributes
        inventory_attributes:
          items:
            $ref: '#/components/schemas/APIInventoryAttributes'
          type: array
          title: Inventory Attributes
        store_attributes:
          title: Store Attributes
        pricelist_attributes:
          items:
            $ref: '#/components/schemas/APIPricelistAttributes'
          type: array
          title: Pricelist Attributes
        gender:
          anyOf:
            - $ref: '#/components/schemas/Gender'
            - type: 'null'
        age:
          anyOf:
            - $ref: '#/components/schemas/Age'
            - type: 'null'
        size:
          anyOf:
            - type: string
            - type: 'null'
          title: Size
        is_second_hand:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Second Hand
        color_hex:
          anyOf:
            - type: string
            - type: 'null'
          title: Color Hex
        custom_attributes:
          additionalProperties:
            anyOf:
              - type: integer
              - type: number
              - type: string
              - type: boolean
              - items:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: array
              - additionalProperties:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: object
              - type: 'null'
          type: object
          title: Custom Attributes
          default: {}
      additionalProperties: false
      type: object
      required:
        - product_id
        - item_group_id
        - main_product_id
        - image_urls
        - category_ids
        - transaction_product_id
        - locale_attributes
        - inventory_attributes
        - pricelist_attributes
      title: APIProduct
    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
    realtime__routes__catalog_routes__APIProduct__APILocaleAttributes:
      properties:
        locale_id:
          type: string
          title: Locale Id
        title:
          type: string
          title: Title
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        color_name:
          type: string
          title: Color Name
        size_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Size Name
        material:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Material
        custom_attributes:
          additionalProperties:
            anyOf:
              - type: integer
              - type: number
              - type: string
              - type: boolean
              - items:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: array
              - additionalProperties:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: object
              - type: 'null'
          type: object
          title: Custom Attributes
          default: {}
      additionalProperties: false
      type: object
      required:
        - locale_id
        - title
        - color_name
      title: APILocaleAttributes
    APIInventoryAttributes:
      properties:
        inventory_id:
          type: string
          title: Inventory Id
        in_stock:
          type: boolean
          title: In Stock
        quantity:
          anyOf:
            - type: integer
            - type: 'null'
          title: Quantity
        custom_attributes:
          additionalProperties:
            anyOf:
              - type: integer
              - type: number
              - type: string
              - type: boolean
              - items:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: array
              - additionalProperties:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: object
              - type: 'null'
          type: object
          title: Custom Attributes
          default: {}
      additionalProperties: false
      type: object
      required:
        - inventory_id
        - in_stock
      title: APIInventoryAttributes
    APIPricelistAttributes:
      properties:
        pricelist_id:
          type: string
          title: Pricelist Id
        sale_price:
          anyOf:
            - type: number
              minimum: 0
            - type: string
          title: Sale Price
        original_price:
          anyOf:
            - type: number
              minimum: 0
            - type: string
          title: Original Price
        currency:
          type: string
          pattern: >-
            ^AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHF|CLP|CNY|COP|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GGP|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|IMP|INR|IQD|IRR|ISK|JEP|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SPL|SRD|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TVD|TWD|TZS|UAH|UGX|USD|UYU|UZS|VEF|VND|VUV|WST|XAF|XCD|XDR|XOF|XPF|YER|ZAR|ZMW|ZWD$
          title: Currency
        custom_attributes:
          additionalProperties:
            anyOf:
              - type: integer
              - type: number
              - type: string
              - type: boolean
              - items:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: array
              - additionalProperties:
                  anyOf:
                    - type: integer
                    - type: number
                    - type: string
                    - type: boolean
                    - type: 'null'
                type: object
              - type: 'null'
          type: object
          title: Custom Attributes
          default: {}
      additionalProperties: false
      type: object
      required:
        - pricelist_id
        - sale_price
        - original_price
        - currency
      title: APIPricelistAttributes
    Gender:
      type: string
      enum:
        - unisex
        - men
        - women
      title: Gender
    Age:
      type: string
      enum:
        - baby
        - kid
        - teen
        - adult
      title: Age
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````