Depict.AI Catalog Push API (v0) API

The Catalog Push API (v0) API from Depict.AI — 6 operation(s) for catalog push api (v0).

OpenAPI Specification

depictai-catalog-push-api-v0-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Depict Lite Ab Test Catalog Push API (v0) 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: Catalog Push API (v0)
paths:
  /catalog/v0/product_ids:
    get:
      tags:
      - Catalog Push API (v0)
      summary: List Product Ids
      operationId: list_product_ids_catalog_v0_product_ids_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title: Response List Product Ids Catalog V0 Product Ids Get
      security:
      - HTTPBearer: []
  /catalog/v0/category_ids:
    get:
      tags:
      - Catalog Push API (v0)
      summary: List Category Ids
      operationId: list_category_ids_catalog_v0_category_ids_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title: Response List Category Ids Catalog V0 Category Ids Get
      security:
      - HTTPBearer: []
  /catalog/v0/products:
    get:
      tags:
      - Catalog Push API (v0)
      summary: Get Products
      operationId: get_products_catalog_v0_products_get
      security:
      - HTTPBearer: []
      parameters:
      - name: product_ids
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
          title: Product Ids
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/APIProduct-Output'
                title: Response Get Products Catalog V0 Products Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Catalog Push API (v0)
      summary: Upsert Products
      operationId: upsert_products_catalog_v0_products_post
      security:
      - HTTPBearer: []
      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'
    delete:
      tags:
      - Catalog Push API (v0)
      summary: Delete Products
      operationId: delete_products_catalog_v0_products_delete
      security:
      - HTTPBearer: []
      parameters:
      - name: product_id
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
          title: Product Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /catalog/v0/categories:
    get:
      tags:
      - Catalog Push API (v0)
      summary: Get Categories
      operationId: get_categories_catalog_v0_categories_get
      security:
      - HTTPBearer: []
      parameters:
      - name: category_ids
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
          title: Category Ids
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/APICategory-Output'
                title: Response Get Categories Catalog V0 Categories Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Catalog Push API (v0)
      summary: Upsert Categories
      operationId: upsert_categories_catalog_v0_categories_post
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertCategoriesRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Catalog Push API (v0)
      summary: Delete Categories
      operationId: delete_categories_catalog_v0_categories_delete
      security:
      - HTTPBearer: []
      parameters:
      - name: category_id
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
          title: Category Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /catalog/v0/product_attribute_config:
    get:
      tags:
      - Catalog Push API (v0)
      summary: Get Product Attribute Config
      operationId: get_product_attribute_config_catalog_v0_product_attribute_config_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: '#/components/schemas/AttributeMetadata'
                type: object
                title: Response Get Product Attribute Config Catalog V0 Product Attribute Config Get
      security:
      - HTTPBearer: []
    post:
      tags:
      - Catalog Push API (v0)
      summary: Set Product Attribute Config
      operationId: set_product_attribute_config_catalog_v0_product_attribute_config_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetProductAttributeConfigRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /catalog/v0/category_attribute_config:
    get:
      tags:
      - Catalog Push API (v0)
      summary: Get Category Attribute Config
      operationId: get_category_attribute_config_catalog_v0_category_attribute_config_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: '#/components/schemas/AttributeMetadata'
                type: object
                title: Response Get Category Attribute Config Catalog V0 Category Attribute Config Get
      security:
      - HTTPBearer: []
    post:
      tags:
      - Catalog Push API (v0)
      summary: Set Category Attribute Config
      operationId: set_category_attribute_config_catalog_v0_category_attribute_config_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCatalogAttributeConfigRequest'
        required: true
      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:
    SetProductAttributeConfigRequest:
      properties:
        merchant:
          type: string
          title: Merchant
        attributes:
          additionalProperties:
            $ref: '#/components/schemas/AttributeConfig'
          type: object
          title: Attributes
        locales:
          items:
            type: string
          type: array
          title: Locales
        pricelists:
          items:
            type: string
          type: array
          title: Pricelists
        inventories:
          items:
            type: string
          type: array
          title: Inventories
      additionalProperties: false
      type: object
      required:
      - merchant
      - attributes
      - locales
      - pricelists
      - inventories
      title: SetProductAttributeConfigRequest
    Gender:
      type: string
      enum:
      - unisex
      - men
      - women
      title: Gender
    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
    APICategory-Input:
      properties:
        category_id:
          type: string
          title: Category Id
        parent_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Parent Id
        locale_attributes:
          items:
            $ref: '#/components/schemas/realtime__routes__catalog_routes__APICategory__APILocaleAttributes'
          type: array
          title: Locale Attributes
        store_attributes:
          title: Store Attributes
        display_breadcrumb:
          type: boolean
          title: Display Breadcrumb
          default: true
        appear_in_quicklinks:
          type: boolean
          title: Appear In Quicklinks
          default: false
        show_in_filter:
          type: boolean
          title: Show In Filter
          default: true
        show_in_search_suggestions:
          type: boolean
          title: Show In Search Suggestions
          default: true
      additionalProperties: false
      type: object
      required:
      - category_id
      - locale_attributes
      title: APICategory
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    realtime__routes__catalog_routes__APICategory__APILocaleAttributes:
      properties:
        locale_id:
          type: string
          title: Locale Id
        title:
          type: string
          title: Title
        uri:
          anyOf:
          - type: string
          - type: 'null'
          title: Uri
      additionalProperties: false
      type: object
      required:
      - locale_id
      - title
      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
    Age:
      type: string
      enum:
      - baby
      - kid
      - teen
      - adult
      title: Age
    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
    Dimension:
      type: string
      enum:
      - base
      - inventory
      - locale
      - store
      - pricelist
      title: Dimension
    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
    AttributeMetadata:
      properties:
        attribute_type:
          $ref: '#/components/schemas/AttributeType'
        dimension:
          $ref: '#/components/schemas/Dimension'
        required:
          type: boolean
          title: Required
          default: true
        dimension_keys:
          items:
            type: string
          type: array
          uniqueItems: true
          title: Dimension Keys
      additionalProperties: false
      type: object
      required:
      - attribute_type
      - dimension
      - dimension_keys
      title: AttributeMetadata
      description: Full information about an attribute, generated during ingestion
    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
    SetCatalogAttributeConfigRequest:
      properties:
        merchant:
          type: string
          title: Merchant
        attributes:
          additionalProperties:
            $ref: '#/components/schemas/AttributeConfig'
          type: object
          title: Attributes
        locales:
          items:
            type: string
          type: array
          title: Locales
      additionalProperties: false
      type: object
      required:
      - merchant
      - attributes
      - locales
      title: SetCatalogAttributeConfigRequest
    APIProduct-Output:
      type: object
      title: APIProduct
    UpsertCategoriesRequest:
      properties:
        merchant:
          type: string
          title: Merchant
        categories:
          items:
            $ref: '#/components/schemas/APICategory-Input'
          type: array
          title: Categories
      additionalProperties: false
      type: object
      required:
      - merchant
      - categories
      title: UpsertCategoriesRequest
    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
    AttributeConfig:
      properties:
        attribute_type:
          $ref: '#/components/schemas/AttributeType'
        dimension:
          $ref: '#/components/schemas/Dimension'
        required:
          type: boolean
          title: Required
          default: true
      additionalProperties: false
      type: object
      required:
      - attribute_type
      - dimension
      title: AttributeConfig
      description: The configuration of an attribute, available before ingestion
    AttributeType:
      type: string
      enum:
      - bool
      - int
      - float
      - str
      - datetime
      - gender
      - age
      - color_hex
      - dict[str,]
      - list[bool]
      - list[int]
      - list[float]
      - list[str]
      - list[dict[str,]]
      - any
      - uuid
      - list[uuid]
      title: AttributeType
    APICategory-Output:
      type: object
      title: APICategory
  securitySchemes:
    Auth0:
      type: oauth2
      flows:
        authorizationCode:
          scopes:
            openid: OpenID Connect
            profile: User profile
            email: User email
          authorizationUrl: https://depict.eu.auth0.com/oauth/authorize
          tokenUrl: https://depict.eu.auth0.com/oauth/token
      x-tokenName: id_token