openapi: 3.1.0 info: title: Depict Lite Ab Test Collections 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: Collections paths: /collections: get: summary: List Collections operationId: list_collections_collections_get security: - Auth0: [] parameters: - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/LiteCollectionListDto' title: Response List Collections Collections Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/award-status: get: summary: Get Award Status description: Get the award status configuration for the merchant. operationId: get_award_status_collections_award_status_get security: - Auth0: [] parameters: - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AwardStatusConfig' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections put: summary: Update Award Status description: Update the award status configuration for the merchant. operationId: update_award_status_collections_award_status_put security: - Auth0: [] parameters: - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AwardStatusConfig' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/nbr-of-active-collections: get: summary: Get Nbr Of Active Collections operationId: get_nbr_of_active_collections_collections_nbr_of_active_collections_get security: - Auth0: [] parameters: - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: anyOf: - type: integer - type: 'null' title: Response Get Nbr Of Active Collections Collections Nbr Of Active Collections Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/data-sorted-by: post: summary: Get Data Sorted Collections operationId: get_data_sorted_collections_collections_data_sorted_by_post security: - Auth0: [] parameters: - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GetDataSortedPaginatedCollectionsRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GetPaginatedDataCollectionsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/activation: put: summary: Set Activation Status operationId: set_activation_status_collections_activation_put security: - Auth0: [] parameters: - name: active in: query required: true schema: type: boolean title: Active - name: collection_id in: query required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}: get: summary: Get Collection operationId: get_collection_collections__collection_id__get security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: version in: query required: false schema: anyOf: - type: string format: uuid - type: 'null' title: Version - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/LiteCollectionDto' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections put: summary: Update Collection operationId: update_collection_collections__collection_id__put security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LiteCollectionUpdateInput' responses: '200': description: Successful Response content: application/json: schema: type: string format: uuid title: Response Update Collection Collections Collection Id Put '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/products: post: summary: Get Collection Products description: 'Returns all products in a collection, sorted according to the given sort order, the collections pinned products, and either the collection''s boost bury rules or the specified rules.' operationId: get_collection_products_collections__collection_id__products_post security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: sort_order in: query required: true schema: $ref: '#/components/schemas/LiteCollectionSortOrder' - name: version in: query required: false schema: anyOf: - type: string format: uuid - type: 'null' title: Version - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: content: application/json: schema: anyOf: - type: array items: oneOf: - $ref: '#/components/schemas/BadgeBoostBuryRule' - $ref: '#/components/schemas/CollectionBoostBuryRule' - $ref: '#/components/schemas/TagBoostBuryRule' discriminator: propertyName: type mapping: badge: '#/components/schemas/BadgeBoostBuryRule' collection: '#/components/schemas/CollectionBoostBuryRule' tag: '#/components/schemas/TagBoostBuryRule' - type: 'null' title: Boost Bury Rules responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/LiteCollectionProductDto' title: Response Get Collection Products Collections Collection Id Products Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/shopify/shopify-ordering: post: summary: Get Db Shopify Ordering description: Returns all products in a collection, sorted according to exactly what is currently pushed to Shopify. operationId: get_db_shopify_ordering_collections__collection_id__shopify_shopify_ordering_post security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/LiteCollectionProductDto' title: Response Get Db Shopify Ordering Collections Collection Id Shopify Shopify Ordering Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/initial-products: get: summary: Get Initial Collection Products description: 'Returns all products in a collection, sorted according to what should be initially displayed in the Collection view. IE if the collection is completely untouched, without a Depict version, the current Shopify order. Or if there is at least one Depict version, sorted according to the currently saved main version, without any changes.' operationId: get_initial_collection_products_collections__collection_id__initial_products_get security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/LiteCollectionProductDto' title: Response Get Initial Collection Products Collections Collection Id Initial Products Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/product-clicks: get: summary: Get Collection Product Clicks operationId: get_collection_product_clicks_collections__collection_id__product_clicks_get security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: from_date in: query required: true schema: type: string format: date title: From Date - name: to_date in: query required: true schema: type: string format: date title: To Date - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GetCollectionProductClicksResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/product-orders: get: summary: Get Collection Product Orders operationId: get_collection_product_orders_collections__collection_id__product_orders_get security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: from_date in: query required: true schema: type: string format: date title: From Date - name: to_date in: query required: true schema: type: string format: date title: To Date - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: type: object additionalProperties: type: integer title: Response Get Collection Product Orders Collections Collection Id Product Orders Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/revert: post: summary: Revert Collection operationId: revert_collection_collections__collection_id__revert_post security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RevertCollectionRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/preview-url: post: summary: Get Collection Preview Url operationId: get_collection_preview_url_collections__collection_id__preview_url_post security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: version in: query required: false schema: anyOf: - type: string format: uuid - type: 'null' title: Version - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GetCollectionPreviewUrlRequest' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/GetCollectionPreviewUrlSuccessResponse' - $ref: '#/components/schemas/GetCollectionPreviewUrlWrongPasswordErrorResponse' discriminator: propertyName: status mapping: success: '#/components/schemas/GetCollectionPreviewUrlSuccessResponse' wrong_password: '#/components/schemas/GetCollectionPreviewUrlWrongPasswordErrorResponse' title: Response Get Collection Preview Url Collections Collection Id Preview Url Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/versions: get: summary: Get Collection Versions operationId: get_collection_versions_collections__collection_id__versions_get security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/LiteCollectionVersionDto' title: Response Get Collection Versions Collections Collection Id Versions Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/update_version: put: summary: Update Collection Version operationId: update_collection_version_collections__collection_id__update_version_put security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LiteCollectionVersionTableUpdateInput' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/LiteCollectionVersionDto' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/delete_version/{version}: delete: summary: Delete Collection Version operationId: delete_collection_version_collections__collection_id__delete_version__version__delete security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: version in: path required: true schema: type: string format: uuid title: Version - name: merchant_id in: query required: true schema: type: string title: Merchant Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /collections/{collection_id}/publish_version/{version}: put: summary: Publish Collection Version operationId: publish_collection_version_collections__collection_id__publish_version__version__put security: - Auth0: [] parameters: - name: collection_id in: path required: true schema: type: string title: Collection Id - name: merchant_id in: query required: true schema: type: string title: Merchant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LiteCollectionPublishVersionInput' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Collections /api/v1/merchants/{merchant_id}/collections: get: tags: - Collections summary: List Collections Endpoint operationId: list_collections_endpoint_api_v1_merchants__merchant_id__collections_get security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_type in: query required: false schema: anyOf: - $ref: '#/components/schemas/CollectionType' - type: 'null' title: Collection Type - name: parent_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Parent Id - name: search in: query required: false schema: anyOf: - type: string maxLength: 256 - type: 'null' title: Search - name: sort_by in: query required: false schema: allOf: - $ref: '#/components/schemas/CollectionListSortBy' default: updated_at_desc title: Sort By - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 default: 50 title: Limit - name: cursor in: query required: false schema: anyOf: - type: string - type: 'null' title: Cursor - name: include_metrics in: query required: false schema: type: boolean default: false title: Include Metrics - 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/CollectionListResponse' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/favourites: get: tags: - Collections summary: List Collection Favourites Endpoint operationId: list_collection_favourites_endpoint_api_v1_merchants__merchant_id__collections_favourites_get security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: include_metrics in: query required: false schema: type: boolean default: false title: Include Metrics - 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/CollectionFavouritesResponse' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/{collection_id}/favourite: put: tags: - Collections summary: Add Collection Favourite Endpoint operationId: add_collection_favourite_endpoint_api_v1_merchants__merchant_id__collections__collection_id__favourite_put security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id responses: '204': description: Successful Response '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Collections summary: Remove Collection Favourite Endpoint operationId: remove_collection_favourite_endpoint_api_v1_merchants__merchant_id__collections__collection_id__favourite_delete security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id responses: '204': description: Successful Response '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/{collection_id}: get: tags: - Collections summary: Get Collection Endpoint operationId: get_collection_endpoint_api_v1_merchants__merchant_id__collections__collection_id__get security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection 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 - name: market_group_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Market Group Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CollectionDetail' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - Collections summary: Save Collection Endpoint operationId: save_collection_endpoint_api_v1_merchants__merchant_id__collections__collection_id__patch security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id - name: locale in: query required: false schema: anyOf: - type: string - type: 'null' title: Locale requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CollectionSaveRequest' responses: '200': description: Successful Response content: application/json: schema: {} '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/{collection_id}/curation: get: tags: - Collections summary: Get Collection Curation Endpoint operationId: get_collection_curation_endpoint_api_v1_merchants__merchant_id__collections__collection_id__curation_get security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id - name: market in: query required: false schema: anyOf: - type: string - type: 'null' title: Market - name: include_auto_hidden in: query required: false schema: type: boolean default: true title: Include Auto Hidden - name: include_metrics in: query required: false schema: type: boolean default: false title: Include Metrics - name: locale in: query required: false schema: anyOf: - type: string - type: 'null' title: Locale - name: market_group_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Market Group Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CollectionCurationResponse' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/{collection_id}/metrics: get: tags: - Collections summary: Get Collection Metrics Endpoint operationId: get_collection_metrics_endpoint_api_v1_merchants__merchant_id__collections__collection_id__metrics_get security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id - name: market in: query required: false schema: anyOf: - type: string - type: 'null' title: Market - name: start_timestamp in: query required: false schema: anyOf: - type: integer - type: 'null' title: Start Timestamp - name: end_timestamp in: query required: false schema: anyOf: - type: integer - type: 'null' title: End Timestamp - name: locale in: query required: false schema: anyOf: - type: string - type: 'null' title: Locale - name: market_group_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Market Group Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CollectionMetricsSummary' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/{collection_id}/analytics: get: tags: - Collections summary: Get Collection Analytics Endpoint operationId: get_collection_analytics_endpoint_api_v1_merchants__merchant_id__collections__collection_id__analytics_get security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id - name: market in: query required: false schema: anyOf: - type: string - type: 'null' title: Market - name: start_timestamp in: query required: false schema: anyOf: - type: integer - type: 'null' title: Start Timestamp - name: end_timestamp in: query required: false schema: anyOf: - type: integer - type: 'null' title: End Timestamp - name: locale in: query required: false schema: anyOf: - type: string - type: 'null' title: Locale - name: market_group_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Market Group Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CollectionAnalyticsDetail' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/merchants/{merchant_id}/collections/{collection_id}/products: post: tags: - Collections summary: List Collection Products Endpoint operationId: list_collection_products_endpoint_api_v1_merchants__merchant_id__collections__collection_id__products_post security: - Auth0: [] parameters: - name: merchant_id in: path required: true schema: type: string title: Merchant Id - name: collection_id in: path required: true schema: type: string format: uuid title: Collection Id - name: locale in: query required: false schema: anyOf: - type: string - type: 'null' title: Locale requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CollectionProductsRequest' default: mode: auto limit: 25 include_metrics: false included_main_product_ids: [] excluded_main_product_ids: [] title: Request responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CollectionProductsResponse' '404': description: Not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: VideoContent: properties: type: type: string enum: - video const: video title: Type default: video url: type: string title: Url link: anyOf: - type: string - type: 'null' title: Link type: object required: - url - link title: VideoContent CollectionProductMode: type: string enum: - auto - search - preview title: CollectionProductMode AnalyticsInventoryBreakdown: properties: hidden: type: integer title: Hidden default: 0 low_stock: type: integer title: Low Stock default: 0 ok: type: integer title: Ok default: 0 at_risk: type: integer title: At Risk default: 0 total: type: integer title: Total default: 0 avg_stock_coverage_days: anyOf: - type: number - type: 'null' title: Avg Stock Coverage Days variants_in_stock: type: integer title: Variants In Stock default: 0 variants_total: type: integer title: Variants Total default: 0 variant_availability_pct: anyOf: - type: number - type: 'null' title: Variant Availability Pct type: object title: AnalyticsInventoryBreakdown description: 'Inventory health for the in-scope products. ``hidden`` is the count of manually-hidden products. ``low_stock`` counts visible products with ``0 < inventory <= LOW_STOCK_UNITS``; ``ok`` counts visible products with ``inventory > LOW_STOCK_UNITS``. Fully out-of-stock visible products (``inventory == 0``) are counted in ``total`` but not in ``ok``/``low_stock``. ``total`` is the number of in-scope products (visible + hidden). ``at_risk`` is ``hidden + low_stock``. ``avg_stock_coverage_days`` is ``total_inventory / (units_sold / period_days)`` and ``None`` when nothing sold in the period. ``variant_availability_pct`` (0-100) is in-stock variants รท total variants across the in-scope products'' size/colour variants (``variants_in_stock`` / ``variants_total`` are the raw sums). ``None`` when the merchant has no variant-level inventory data.' GetDataSortedPaginatedCollectionsRequest: properties: offset: type: integer title: Offset default: 0 page_size: type: integer title: Page Size default: 50 query: anyOf: - type: string - type: 'null' title: Query order_by: allOf: - $ref: '#/components/schemas/CollectionDataOrderBy' default: top_views from_date: type: string format: date title: From Date to_date: type: string format: date title: To Date reverse: type: boolean title: Reverse default: false filter_by: anyOf: - $ref: '#/components/schemas/CollectionFilterBy' - type: 'null' type: object required: - from_date - to_date title: GetDataSortedPaginatedCollectionsRequest CollectionDetail: properties: collection_id: type: string format: uuid title: Collection Id parent_id: anyOf: - type: string format: uuid - type: 'null' title: Parent Id collection_type: $ref: '#/components/schemas/CollectionType' externally_owned: type: boolean title: Externally Owned title: type: string title: Title localized_titles: additionalProperties: type: string type: object title: Localized Titles default: {} uri: type: string title: Uri n_main_products: anyOf: - type: integer - type: 'null' title: N Main Products manual_product_count: anyOf: - type: integer - type: 'null' title: Manual Product Count image_urls: items: type: string type: array title: Image Urls default: [] cover_image_url: anyOf: - type: string - type: 'null' title: Cover Image Url content_blocks: items: $ref: '#/components/schemas/ContentBlock' type: array title: Content Blocks default: [] chunk_type: anyOf: - $ref: '#/components/schemas/ChunkType' - type: 'null' ranking_type: allOf: - $ref: '#/components/schemas/CollectionRankingType' default: top show_in_filter: type: boolean title: Show In Filter default: true show_in_search_suggestions: type: boolean title: Show In Search Suggestions default: false appear_in_quicklinks: type: boolean title: Appear In Quicklinks default: true display_breadcrumb: type: boolean title: Display Breadcrumb default: true children: items: $ref: '#/components/schemas/CollectionChild' type: array title: Children default: [] permissions: $ref: '#/components/schemas/CollectionPermissions' market_context: $ref: '#/components/schemas/CollectionMarketContext' type: object required: - collection_id - collection_type - externally_owned - title - uri - permissions - market_context title: CollectionDetail LiteCollectionUpdateInput: properties: sort_order: $ref: '#/components/schemas/LiteCollectionSortOrder' pinned_main_product_ids: items: type: string type: array title: Pinned Main Product Ids collection_boost_rules: items: oneOf: - $ref: '#/components/schemas/BadgeBoostBuryRule' - $ref: '#/components/schemas/CollectionBoostBuryRule' - $ref: '#/components/schemas/TagBoostBuryRule' discriminator: propertyName: type mapping: badge: '#/components/schemas/BadgeBoostBuryRule' collection: '#/components/schemas/CollectionBoostBuryRule' tag: '#/components/schemas/TagBoostBuryRule' type: array title: Collection Boost Rules version: anyOf: - type: string format: uuid - type: 'null' title: Version main: type: boolean title: Main use_collection_specific_boost_bury: type: boolean title: Use Collection Specific Boost Bury unpin_oos: type: boolean title: Unpin Oos type: object required: - sort_order - pinned_main_product_ids - collection_boost_rules - version - main - use_collection_specific_boost_bury - unpin_oos title: LiteCollectionUpdateInput CollectionFavouritesResponse: properties: collections: items: $ref: '#/components/schemas/CollectionSummary' type: array title: Collections type: object required: - collections title: CollectionFavouritesResponse CollectionCurationOverrides: properties: market_groups: items: type: string type: array title: Market Groups default: [] markets: items: type: string type: array title: Markets default: [] type: object title: CollectionCurationOverrides 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 CollectionAnalyticsDetail: properties: collection_id: type: string format: uuid title: Collection Id title: type: string title: Title period: $ref: '#/components/schemas/CollectionMetricsPeriod' summary: $ref: '#/components/schemas/CollectionMetricsSummary' scroll_depth: anyOf: - type: number - type: 'null' title: Scroll Depth inventory: $ref: '#/components/schemas/AnalyticsInventoryBreakdown' top_products: items: $ref: '#/components/schemas/AnalyticsProductRef' type: array title: Top Products default: [] needs_attention: items: $ref: '#/components/schemas/AnalyticsAttentionProduct' type: array title: Needs Attention default: [] pinned_vs_auto: items: $ref: '#/components/schemas/AnalyticsPinnedVsAutoItem' type: array title: Pinned Vs Auto default: [] sell_through_by_tier: items: $ref: '#/components/schemas/AnalyticsTierStr' type: array title: Sell Through By Tier default: [] position_performance: items: $ref: '#/components/schemas/AnalyticsPositionBand' type: array title: Position Performance default: [] total_products: type: integer title: Total Products default: 0 type: object required: - collection_id - title - period - summary - inventory title: CollectionAnalyticsDetail description: 'Rich payload for the Collection Analytics drawer. ``scroll_depth`` is always ``None`` for now -- there is no scroll tracking, documented as a data gap. ``summary`` reuses the same aggregate as the ``/metrics`` endpoint.' LiteVariant: properties: id: type: string title: Id image_url: anyOf: - type: string - type: 'null' title: Image Url selected_options: items: $ref: '#/components/schemas/VariantOption' type: array title: Selected Options type: object required: - id - image_url - selected_options title: LiteVariant CollectionAutoLift: properties: score: anyOf: - type: number - type: 'null' title: Score pinned_ctr: type: number title: Pinned Ctr default: 0 auto_ctr: type: number title: Auto Ctr default: 0 delta_pts: anyOf: - type: number - type: 'null' title: Delta Pts type: object title: CollectionAutoLift description: 'Derived "Auto Lift" score: how the click-through rate of auto-sorted (non-pinned) products compares to the merchant''s manually pinned products. ``score`` is normalised to 0-100 where ``50`` means auto and pinned perform equally, ``100`` means auto CTR is >= 2x pinned CTR, and ``0`` means auto products get no clicks. Computed as ``clamp(50 * auto_ctr / pinned_ctr, 0, 100)``. It is ``None`` when the collection has no pinned products or no auto (non-pinned) products, so there is nothing to compare. ``pinned_ctr`` and ``auto_ctr`` are percentages (0-100); ``delta_pts`` is ``auto_ctr - pinned_ctr`` in percentage points.' AnalyticsAttentionProduct: 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 sku: anyOf: - type: string - type: 'null' title: Sku revenue: anyOf: - type: number - type: 'null' title: Revenue units_sold: type: integer title: Units Sold default: 0 ctr: type: number title: Ctr default: 0 rank: type: integer title: Rank position: anyOf: - type: integer - type: 'null' title: Position reason: type: string enum: - low_ctr - no_sales - low_revenue title: Reason type: object required: - main_product_id - rank - reason title: AnalyticsAttentionProduct description: 'A worst-performing product plus why it was flagged. ``no_sales`` means it had stock but sold nothing; ``low_ctr`` means its CTR is in the bottom quartile of the collection; ``low_revenue`` is the fallback for otherwise weak revenue.' RevertCollectionRequest: properties: sort_order: $ref: '#/components/schemas/CollectionSortOrder' pinned_main_product_ids: items: type: string type: array title: Pinned Main Product Ids type: object required: - sort_order - pinned_main_product_ids title: RevertCollectionRequest LiteCollectionDto: properties: collection_id: type: string title: Collection Id title: type: string title: Title description: type: string title: Description handle: type: string title: Handle image_urls: items: type: string type: array title: Image Urls shopify_sort_order: $ref: '#/components/schemas/CollectionSortOrder' sort_order: $ref: '#/components/schemas/LiteCollectionSortOrder' has_depict_configuration: type: boolean title: Has Depict Configuration description: '''Depict configuration'' meaning sort order, pinned products, content blocks, etc.' sync_back_to_shopify: type: boolean title: Sync Back To Shopify unpin_oos: type: boolean title: Unpin Oos updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At description: The last time the Depict configuration for this collection was updated shopify_updated_at: type: string format: date-time title: Shopify Updated At use_collection_specific_boost_bury: type: boolean title: Use Collection Specific Boost Bury main_version: anyOf: - type: string format: uuid - type: 'null' title: Main Version pinned_main_product_ids: items: type: string type: array title: Pinned Main Product Ids collection_boost_rules: items: oneOf: - $ref: '#/components/schemas/BadgeBoostBuryRule' - $ref: '#/components/schemas/CollectionBoostBuryRule' - $ref: '#/components/schemas/TagBoostBuryRule' discriminator: propertyName: type mapping: badge: '#/components/schemas/BadgeBoostBuryRule' collection: '#/components/schemas/CollectionBoostBuryRule' tag: '#/components/schemas/TagBoostBuryRule' type: array title: Collection Boost Rules version: anyOf: - type: string format: uuid - type: 'null' title: Version type: object required: - collection_id - title - description - handle - image_urls - shopify_sort_order - sort_order - has_depict_configuration - sync_back_to_shopify - unpin_oos - shopify_updated_at - use_collection_specific_boost_bury - main_version - pinned_main_product_ids - collection_boost_rules - version title: LiteCollectionDto GetPaginatedDataCollectionsResponse: properties: offset: type: integer title: Offset has_next: type: boolean title: Has Next collections: items: $ref: '#/components/schemas/LiteDashboardCollectionDto' type: array title: Collections type: object required: - offset - has_next - collections title: GetPaginatedDataCollectionsResponse 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 NewInProductBadge: properties: type: type: string enum: - new_in const: new_in title: Type published_at: type: string format: date-time title: Published At type: object required: - type - published_at title: NewInProductBadge 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 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 CollectionSummary: properties: collection_id: type: string format: uuid title: Collection Id parent_id: anyOf: - type: string format: uuid - type: 'null' title: Parent Id collection_type: $ref: '#/components/schemas/CollectionType' externally_owned: type: boolean title: Externally Owned title: type: string title: Title uri: type: string title: Uri updated_at: type: string title: Updated At n_main_products: anyOf: - type: integer - type: 'null' title: N Main Products manual_product_count: anyOf: - type: integer - type: 'null' title: Manual Product Count image_urls: items: type: string type: array title: Image Urls default: [] cover_image_url: anyOf: - type: string - type: 'null' title: Cover Image Url chunk_type: anyOf: - $ref: '#/components/schemas/ChunkType' - type: 'null' metrics: anyOf: - $ref: '#/components/schemas/CollectionMetricsSummary' - type: 'null' type: object required: - collection_id - collection_type - externally_owned - title - uri - updated_at title: CollectionSummary TagBoostBuryRule: properties: strength: type: integer title: Strength type: type: string enum: - tag const: tag title: Type default: tag tags: items: type: string type: array title: Tags type: object required: - strength - tags title: TagBoostBuryRule CollectionPermissions: properties: can_edit_metadata: type: boolean title: Can Edit Metadata can_edit_visibility: type: boolean title: Can Edit Visibility can_update_products: type: boolean title: Can Update Products can_pin_products: type: boolean title: Can Pin Products can_hide_products: type: boolean title: Can Hide Products can_edit_images: type: boolean title: Can Edit Images can_edit_content: type: boolean title: Can Edit Content can_delete: type: boolean title: Can Delete type: object required: - can_edit_metadata - can_edit_visibility - can_update_products - can_pin_products - can_hide_products - can_edit_images - can_edit_content - can_delete title: CollectionPermissions CollectionCurationResponse: properties: pinned_products: items: $ref: '#/components/schemas/CollectionProduct' type: array title: Pinned Products hidden_products: items: $ref: '#/components/schemas/CollectionProduct' type: array title: Hidden Products overrides: $ref: '#/components/schemas/CollectionCurationOverrides' type: object required: - pinned_products - hidden_products - overrides title: CollectionCurationResponse CollectionProductsRequest: properties: locale_id: anyOf: - type: string - type: 'null' title: Locale Id market_group_id: anyOf: - type: string - type: 'null' title: Market Group Id market: anyOf: - type: string - type: 'null' title: Market mode: allOf: - $ref: '#/components/schemas/CollectionProductMode' default: auto search: anyOf: - type: string maxLength: 256 - type: 'null' title: Search sort_by: anyOf: - type: string - type: 'null' title: Sort By ranking_type: anyOf: - $ref: '#/components/schemas/CollectionRankingType' - type: 'null' cursor: anyOf: - type: string - type: 'null' title: Cursor limit: type: integer maximum: 100 minimum: 1 title: Limit default: 25 include_metrics: type: boolean title: Include Metrics default: false included_main_product_ids: items: type: string type: array maxItems: 2000 title: Included Main Product Ids excluded_main_product_ids: items: type: string type: array maxItems: 2000 title: Excluded Main Product Ids type: object title: CollectionProductsRequest GetCollectionPreviewUrlSuccessResponse: properties: status: type: string enum: - success const: success title: Status render_url: type: string title: Render Url type: object required: - status - render_url title: GetCollectionPreviewUrlSuccessResponse AnalyticsPinnedVsAutoItem: properties: main_product_id: type: string title: Main Product Id title: anyOf: - type: string - type: 'null' title: Title pinned_ctr: type: number title: Pinned Ctr default: 0 auto_ctr: type: number title: Auto Ctr default: 0 delta_pts: type: number title: Delta Pts default: 0 verdict: type: string enum: - better_auto - better_pinned - no_data title: Verdict type: object required: - main_product_id - verdict title: AnalyticsPinnedVsAutoItem description: 'Per-pinned-product comparison against the collection''s auto-cohort CTR. ``pinned_ctr`` is the product''s own CTR; ``auto_ctr`` is the aggregate CTR of all non-pinned products (a documented approximation of the counterfactual "if this had been auto-sorted"). ``delta_pts`` is ``auto_ctr - pinned_ctr``. ``verdict`` is ``better_auto`` when auto beats pinned by >0.5pts, ``better_pinned`` when pinned beats auto by >0.5pts, else ``no_data`` (neutral band or the product got no views). CTRs are percentages (0-100).' FewVariantsAvailableProductBadge: properties: type: type: string enum: - few_variants_available const: few_variants_available title: Type variant_options_available: items: additionalProperties: type: string type: object type: array title: Variant Options Available n_variants_total: type: integer title: N Variants Total type: object required: - type - variant_options_available - n_variants_total title: FewVariantsAvailableProductBadge CollectionChild: properties: collection_id: type: string format: uuid title: Collection Id title: type: string title: Title collection_type: $ref: '#/components/schemas/CollectionType' appear_in_quicklinks: type: boolean title: Appear In Quicklinks type: object required: - collection_id - title - collection_type - appear_in_quicklinks title: CollectionChild CollectionSortOrder: type: string enum: - ALPHA_ASC - ALPHA_DESC - BEST_SELLING - CREATED - CREATED_DESC - MANUAL - PRICE_ASC - PRICE_DESC title: CollectionSortOrder OutOfStockProductBadge: properties: type: type: string enum: - out_of_stock const: out_of_stock title: Type type: object required: - type title: OutOfStockProductBadge HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError BadgeBoostBuryRule: properties: strength: type: integer title: Strength type: type: string enum: - badge const: badge title: Type default: badge badge: $ref: '#/components/schemas/ProductBadgeType' type: object required: - strength - badge title: BadgeBoostBuryRule AnalyticsProductRef: 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 sku: anyOf: - type: string - type: 'null' title: Sku revenue: anyOf: - type: number - type: 'null' title: Revenue units_sold: type: integer title: Units Sold default: 0 ctr: type: number title: Ctr default: 0 rank: type: integer title: Rank position: anyOf: - type: integer - type: 'null' title: Position type: object required: - main_product_id - rank title: AnalyticsProductRef description: 'A single product row for the analytics drawer''s product lists. ``ctr`` is a percentage (0-100), computed as ``clicks / views * 100`` to match the rest of the collection-metrics module. ``revenue`` is ``None`` when the product''s revenue is unknown (multi-currency without FX); ``sku`` is always ``None`` for now because a per-main-product SKU is not available at this aggregation layer (products group multiple variants). ``rank`` is 1-based within the list it belongs to. ``position`` is the product''s 1-based index in the collection''s sort order (pinned first, then auto); it is ``None`` when the product is not part of that ordered scope.' Award: properties: type: type: string title: Type for_num_done: type: integer title: For Num Done type: object required: - type - for_num_done title: Award GetCollectionProductClicksResponse: properties: products: items: $ref: '#/components/schemas/GetCollectionProductClicksRow' type: array title: Products type: object required: - products title: GetCollectionProductClicksResponse CollectionBoostBuryRule: properties: strength: type: integer title: Strength type: type: string enum: - collection const: collection title: Type default: collection collection_id: type: string title: Collection Id type: object required: - strength - collection_id title: CollectionBoostBuryRule InactiveMetadata: properties: type: type: string enum: - inactive const: inactive title: Type default: inactive type: object title: InactiveMetadata LiteCollectionVersionTableUpdateInput: properties: sort_order: $ref: '#/components/schemas/LiteCollectionSortOrder' pinned_main_product_ids: items: type: string type: array title: Pinned Main Product Ids collection_boost_rules: items: oneOf: - $ref: '#/components/schemas/BadgeBoostBuryRule' - $ref: '#/components/schemas/CollectionBoostBuryRule' - $ref: '#/components/schemas/TagBoostBuryRule' discriminator: propertyName: type mapping: badge: '#/components/schemas/BadgeBoostBuryRule' collection: '#/components/schemas/CollectionBoostBuryRule' tag: '#/components/schemas/TagBoostBuryRule' type: array title: Collection Boost Rules use_collection_specific_boost_bury: type: boolean title: Use Collection Specific Boost Bury unpin_oos: type: boolean title: Unpin Oos version_name: anyOf: - type: string - type: 'null' title: Version Name version: anyOf: - type: string format: uuid - type: 'null' title: Version type: object required: - sort_order - pinned_main_product_ids - collection_boost_rules - use_collection_specific_boost_bury - unpin_oos - version_name - version title: LiteCollectionVersionTableUpdateInput CollectionRevenueMetric: properties: value: anyOf: - type: number - type: 'null' title: Value default: 0 currency: type: string title: Currency default: '' delta_pct: anyOf: - type: number - type: 'null' title: Delta Pct type: object title: CollectionRevenueMetric CollectionDataOrderBy: type: string enum: - top_views - top_ctr - top_clicks - updated_at - name_a_z - number_of_products title: CollectionDataOrderBy AnalyticsTierStr: properties: tier: type: integer title: Tier str_value: type: number title: Str Value default: 0 product_count: type: integer title: Product Count default: 0 type: object required: - tier title: AnalyticsTierStr description: 'Sell-through for one of three contiguous tiers of the sorted collection (tier 1 = top of sort). ``str_value`` is a percentage (0-100).' AwardStatusConfig: properties: awards_dismissed: items: $ref: '#/components/schemas/Award' type: array title: Awards Dismissed achieved_timestamps: items: prefixItems: - $ref: '#/components/schemas/Award' - type: integer type: array maxItems: 2 minItems: 2 type: array title: Achieved Timestamps type: object required: - awards_dismissed - achieved_timestamps title: AwardStatusConfig CollectionProduct: 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 default: [] metrics: anyOf: - $ref: '#/components/schemas/ProductMetrics' - type: 'null' is_auto_hidden: type: boolean title: Is Auto Hidden default: false collection_state: type: string enum: - pinned - auto - hidden title: Collection State sort_index: anyOf: - type: integer - type: 'null' title: Sort Index hidden_type: anyOf: - type: string enum: - manual - auto_oos - type: 'null' title: Hidden Type configured_video: anyOf: - $ref: '#/components/schemas/ShopifyVideo' - type: 'null' hidden_in_markets: items: $ref: '#/components/schemas/HiddenVisibilityLocation' type: array title: Hidden In Markets default: [] hidden_in_market_groups: items: type: string type: array title: Hidden In Market Groups default: [] type: object required: - main_product_id - collection_state title: CollectionProduct CollectionMarketContext: properties: market_group_id: type: string title: Market Group Id market_id: anyOf: - type: string - type: 'null' title: Market Id resolved_market: anyOf: - type: string - type: 'null' title: Resolved Market type: object required: - market_group_id title: CollectionMarketContext TrendingProductBadge: properties: value: type: number title: Value n_days: type: integer title: N Days type: type: string enum: - trending const: trending title: Type type: object required: - value - n_days - type title: TrendingProductBadge BestsellerProductBadge: properties: value: type: number title: Value n_days: type: integer title: N Days type: type: string enum: - bestseller const: bestseller title: Type type: object required: - value - n_days - type title: BestsellerProductBadge 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 PortalSearchFilter: properties: field: type: string title: Field op: type: string enum: - eq - neq - in - nin - leq - geq - inrange title: Op data: title: Data meta: title: Meta id: anyOf: - type: string - type: 'null' title: Id type: object required: - field - op title: PortalSearchFilter OutOfStockMetadata: properties: type: type: string enum: - out_of_stock const: out_of_stock title: Type default: out_of_stock type: object title: OutOfStockMetadata 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 VariantOption: properties: name: type: string title: Name value: type: string title: Value type: object required: - name - value title: VariantOption 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 CollectionRateMetric: properties: value: type: number title: Value default: 0 delta_pts: anyOf: - type: number - type: 'null' title: Delta Pts type: object title: CollectionRateMetric 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 CollectionListResponse: properties: collections: items: $ref: '#/components/schemas/CollectionSummary' type: array title: Collections next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor has_more: type: boolean title: Has More default: false type: object required: - collections title: CollectionListResponse LiteDashboardCollectionData: properties: clicks: type: integer title: Clicks views: type: integer title: Views percentage_of_max_clicks: type: number title: Percentage Of Max Clicks percentage_of_total_clicks: type: number title: Percentage Of Total Clicks clickthrough_rate: anyOf: - type: number - type: 'null' title: Clickthrough Rate type: object required: - clicks - views - percentage_of_max_clicks - percentage_of_total_clicks - clickthrough_rate title: LiteDashboardCollectionData CollectionType: type: string enum: - long_tail_collection - campaign - category - smart_pick - style - brand - look title: CollectionType OnSaleProductBadge: properties: type: type: string enum: - on_sale const: on_sale title: Type sale_percentage: type: integer title: Sale Percentage type: object required: - type - sale_percentage title: OnSaleProductBadge GetCollectionPreviewUrlRequest: properties: template_suffix: type: string title: Template Suffix products_cache_key: items: type: string type: array title: Products Cache Key width: type: integer maximum: 4000 minimum: 100 title: Width default: 1000 password: anyOf: - type: string - type: 'null' title: Password type: object required: - template_suffix - products_cache_key title: GetCollectionPreviewUrlRequest ContentPosition: type: string enum: - left - right - center title: ContentPosition LiteCollectionSortOrder: type: string enum: - ALPHA_ASC - ALPHA_DESC - BEST_SELLING - TRENDING - CREATED - CREATED_DESC - PRICE_ASC - PRICE_DESC - STOCK_DESC - CLICKS_DESC - MANUAL title: LiteCollectionSortOrder GetCollectionPreviewUrlWrongPasswordErrorResponse: properties: status: type: string enum: - wrong_password const: wrong_password title: Status type: object required: - status title: GetCollectionPreviewUrlWrongPasswordErrorResponse ProductStatus: type: string enum: - ACTIVE - ARCHIVED - DRAFT title: ProductStatus CollectionMetricsSummary: properties: period: $ref: '#/components/schemas/CollectionMetricsPeriod' total_revenue: $ref: '#/components/schemas/CollectionRevenueMetric' total_views: $ref: '#/components/schemas/CollectionMetricValue' total_clicks: $ref: '#/components/schemas/CollectionMetricValue' avg_ctr: $ref: '#/components/schemas/CollectionRateMetric' units_sold: $ref: '#/components/schemas/CollectionMetricValue' avg_str: $ref: '#/components/schemas/CollectionRateMetric' add_to_carts: allOf: - $ref: '#/components/schemas/CollectionMetricValue' default: value: 0 dead_stock: allOf: - $ref: '#/components/schemas/CollectionMetricValue' default: value: 0 avg_stock_coverage_days: anyOf: - type: number - type: 'null' title: Avg Stock Coverage Days rpm: allOf: - $ref: '#/components/schemas/CollectionRevenueMetric' default: value: 0 currency: '' velocity: allOf: - $ref: '#/components/schemas/CollectionMetricValue' default: value: 0 auto_lift: allOf: - $ref: '#/components/schemas/CollectionAutoLift' default: pinned_ctr: 0 auto_ctr: 0 top_product: anyOf: - $ref: '#/components/schemas/CollectionTopProduct' - type: 'null' type: object required: - period - total_revenue - total_views - total_clicks - avg_ctr - units_sold - avg_str title: CollectionMetricsSummary 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 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 LiteCollectionListDto: properties: collection_id: type: string title: Collection Id title: type: string title: Title description: type: string title: Description handle: type: string title: Handle image_urls: items: type: string type: array title: Image Urls shopify_sort_order: $ref: '#/components/schemas/CollectionSortOrder' sort_order: $ref: '#/components/schemas/LiteCollectionSortOrder' has_depict_configuration: type: boolean title: Has Depict Configuration description: '''Depict configuration'' meaning sort order, pinned products, content blocks, etc.' sync_back_to_shopify: type: boolean title: Sync Back To Shopify unpin_oos: type: boolean title: Unpin Oos updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At description: The last time the Depict configuration for this collection was updated shopify_updated_at: type: string format: date-time title: Shopify Updated At use_collection_specific_boost_bury: type: boolean title: Use Collection Specific Boost Bury main_version: anyOf: - type: string format: uuid - type: 'null' title: Main Version n_products: type: integer title: N Products n_pinned_main_product_ids: anyOf: - type: integer - type: 'null' title: N Pinned Main Product Ids product_images: anyOf: - items: type: string type: array - type: 'null' title: Product Images type: object required: - collection_id - title - description - handle - image_urls - shopify_sort_order - sort_order - has_depict_configuration - sync_back_to_shopify - unpin_oos - shopify_updated_at - use_collection_specific_boost_bury - main_version - n_products - n_pinned_main_product_ids title: LiteCollectionListDto ContentBlock: properties: span_columns: type: integer title: Span Columns span_rows: type: integer title: Span Rows position: $ref: '#/components/schemas/ContentPosition' row: type: integer title: Row content: anyOf: - $ref: '#/components/schemas/ImageContent' - $ref: '#/components/schemas/VideoContent' title: Content type: object required: - span_columns - span_rows - position - row - content title: ContentBlock CollectionProductsResponse: properties: products: items: $ref: '#/components/schemas/CollectionProduct' 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 default: [] stats: anyOf: - $ref: '#/components/schemas/ProductListingStats' - type: 'null' type: object required: - products title: CollectionProductsResponse LiteCollectionPublishVersionInput: properties: version: type: string format: uuid title: Version content_blocks: items: type: string type: array title: Content Blocks product_duplicates: items: type: string type: array title: Product Duplicates image_settings: items: type: string type: array title: Image Settings type: object required: - version - content_blocks - product_duplicates - image_settings title: LiteCollectionPublishVersionInput ChunkType: type: string enum: - similar - complementary title: ChunkType ProductBadgeType: type: string enum: - on_sale - out_of_stock - new_in - bestseller - slow_mover - few_variants_available - trending title: ProductBadgeType CollectionMetricValue: properties: value: anyOf: - type: number - type: 'null' title: Value default: 0 delta_pct: anyOf: - type: number - type: 'null' title: Delta Pct type: object title: CollectionMetricValue CollectionSaveRequest: properties: market_group_id: anyOf: - type: string - type: 'null' title: Market Group Id market_id: anyOf: - type: string - type: 'null' title: Market Id localized_titles: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Localized Titles uri: anyOf: - type: string maxLength: 512 - type: 'null' title: Uri show_in_filter: anyOf: - type: boolean - type: 'null' title: Show In Filter show_in_search_suggestions: anyOf: - type: boolean - type: 'null' title: Show In Search Suggestions appear_in_quicklinks: anyOf: - type: boolean - type: 'null' title: Appear In Quicklinks display_breadcrumb: anyOf: - type: boolean - type: 'null' title: Display Breadcrumb pinned_main_product_ids: anyOf: - items: type: string type: array maxItems: 2000 - type: 'null' title: Pinned Main Product Ids hidden_main_product_ids: anyOf: - items: type: string type: array maxItems: 2000 - type: 'null' title: Hidden Main Product Ids added_main_product_ids: anyOf: - items: type: string type: array maxItems: 2000 - type: 'null' title: Added Main Product Ids removed_main_product_ids: anyOf: - items: type: string type: array maxItems: 2000 - type: 'null' title: Removed Main Product Ids pinned_collection_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Pinned Collection Ids content_blocks: anyOf: - items: $ref: '#/components/schemas/ContentBlock' type: array maxItems: 100 - type: 'null' title: Content Blocks cover_image_url: anyOf: - type: string - type: 'null' title: Cover Image Url ranking_type: anyOf: - $ref: '#/components/schemas/CollectionRankingType' - type: 'null' added_filter_rules: anyOf: - items: items: $ref: '#/components/schemas/PortalSearchFilter' type: array type: array maxItems: 100 - type: 'null' title: Added Filter Rules type: object title: CollectionSaveRequest 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 GetCollectionProductClicksRow: properties: main_product_id: type: string title: Main Product Id clicks: type: integer title: Clicks percent_of_max_clicks: anyOf: - type: number - type: 'null' title: Percent Of Max Clicks average_position: anyOf: - type: number - type: 'null' title: Average Position type: object required: - main_product_id - clicks - percent_of_max_clicks - average_position title: GetCollectionProductClicksRow CollectionListSortBy: type: string enum: - updated_at_desc - updated_at_asc - title_asc - title_desc - product_count_desc - product_count_asc title: CollectionListSortBy SlowMoverProductBadge: properties: value: type: number title: Value n_days: type: integer title: N Days type: type: string enum: - slow_mover const: slow_mover title: Type type: object required: - value - n_days - type title: SlowMoverProductBadge ImageContent: properties: type: type: string enum: - image const: image title: Type default: image url: type: string title: Url link: anyOf: - type: string - type: 'null' title: Link type: object required: - url - link title: ImageContent ShopifyVideo: properties: video_urls: items: type: string type: array title: Video Urls preview_image_url: anyOf: - type: string - type: 'null' title: Preview Image Url additionalProperties: false type: object required: - video_urls - preview_image_url title: ShopifyVideo LiteCollectionVersionDto: properties: collection_id: type: string title: Collection Id version: type: string title: Version version_name: anyOf: - type: string - type: 'null' title: Version Name sort_order: $ref: '#/components/schemas/LiteCollectionSortOrder' pinned_main_product_ids: items: type: string type: array title: Pinned Main Product Ids collection_boost_rules: items: oneOf: - $ref: '#/components/schemas/BadgeBoostBuryRule' - $ref: '#/components/schemas/CollectionBoostBuryRule' - $ref: '#/components/schemas/TagBoostBuryRule' discriminator: propertyName: type mapping: badge: '#/components/schemas/BadgeBoostBuryRule' collection: '#/components/schemas/CollectionBoostBuryRule' tag: '#/components/schemas/TagBoostBuryRule' type: array title: Collection Boost Rules use_collection_specific_boost_bury: type: boolean title: Use Collection Specific Boost Bury unpin_oos: type: boolean title: Unpin Oos main: type: boolean title: Main updated_at: type: string format: date-time title: Updated At type: object required: - collection_id - version - version_name - sort_order - pinned_main_product_ids - collection_boost_rules - use_collection_specific_boost_bury - unpin_oos - main - updated_at title: LiteCollectionVersionDto LiteDashboardCollectionDto: properties: collection_id: type: string title: Collection Id title: type: string title: Title description: type: string title: Description handle: type: string title: Handle image_urls: items: type: string type: array title: Image Urls shopify_sort_order: $ref: '#/components/schemas/CollectionSortOrder' sort_order: $ref: '#/components/schemas/LiteCollectionSortOrder' has_depict_configuration: type: boolean title: Has Depict Configuration description: '''Depict configuration'' meaning sort order, pinned products, content blocks, etc.' sync_back_to_shopify: type: boolean title: Sync Back To Shopify unpin_oos: type: boolean title: Unpin Oos updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At description: The last time the Depict configuration for this collection was updated shopify_updated_at: type: string format: date-time title: Shopify Updated At use_collection_specific_boost_bury: type: boolean title: Use Collection Specific Boost Bury main_version: anyOf: - type: string format: uuid - type: 'null' title: Main Version n_products: type: integer title: N Products n_pinned_main_product_ids: anyOf: - type: integer - type: 'null' title: N Pinned Main Product Ids product_images: anyOf: - items: type: string type: array - type: 'null' title: Product Images selected_period_data: $ref: '#/components/schemas/LiteDashboardCollectionData' type: object required: - collection_id - title - description - handle - image_urls - shopify_sort_order - sort_order - has_depict_configuration - sync_back_to_shopify - unpin_oos - shopify_updated_at - use_collection_specific_boost_bury - main_version - n_products - n_pinned_main_product_ids - selected_period_data title: LiteDashboardCollectionDto CollectionMetricsPeriod: properties: start: type: string format: date title: Start end: type: string format: date title: End type: object required: - start - end title: CollectionMetricsPeriod CollectionTopProduct: 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 revenue: anyOf: - type: number - type: 'null' title: Revenue type: object required: - main_product_id title: CollectionTopProduct description: 'The highest-revenue product in a collection, for the overview table''s "Top Product" column. ``image_url`` is the product''s first image (or None).' 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 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 AnalyticsPositionBand: properties: band: type: string enum: - hero - mid - tail - bottom title: Band label: type: string title: Label avg_ctr: type: number title: Avg Ctr default: 0 clicks: type: integer title: Clicks default: 0 product_count: type: integer title: Product Count default: 0 type: object required: - band - label title: AnalyticsPositionBand description: 'Aggregate click-through performance for a contiguous band of positions in the collection''s sort order (pinned first, then auto). Bands are fixed by 1-based position: ``hero`` = positions 1-3, ``mid`` = 4-8, ``tail`` = 9-12, ``bottom`` = 13+. ``avg_ctr`` is a percentage (0-100), ``clicks / views * 100`` aggregated over the in-band products that have metrics. ``clicks`` is the total clicks in the band. ``product_count`` is the number of products present in the ordered scope within the band (regardless of whether they have metrics). All four bands are always returned, even when empty.' ShopifyImage: properties: id: type: string title: Id url: type: string title: Url width: anyOf: - type: integer - type: 'null' title: Width height: anyOf: - type: integer - type: 'null' title: Height alt: anyOf: - type: string - type: 'null' title: Alt additionalProperties: false type: object required: - id - url title: ShopifyImage CollectionRankingType: type: string enum: - top - similar - complementary title: CollectionRankingType CollectionFilterBy: type: string enum: - live - draft title: CollectionFilterBy LiteCollectionProductDto: properties: main_product_id: type: string title: Main Product Id title: type: string title: Title handle: type: string title: Handle images: items: $ref: '#/components/schemas/ShopifyImage' type: array title: Images price: anyOf: - type: number - type: 'null' title: Price status: $ref: '#/components/schemas/ProductStatus' in_stock: type: boolean title: In Stock quantity: type: integer title: Quantity badges: items: oneOf: - $ref: '#/components/schemas/OnSaleProductBadge' - $ref: '#/components/schemas/OutOfStockProductBadge' - $ref: '#/components/schemas/NewInProductBadge' - $ref: '#/components/schemas/BestsellerProductBadge' - $ref: '#/components/schemas/SlowMoverProductBadge' - $ref: '#/components/schemas/TrendingProductBadge' - $ref: '#/components/schemas/FewVariantsAvailableProductBadge' discriminator: propertyName: type mapping: bestseller: '#/components/schemas/BestsellerProductBadge' few_variants_available: '#/components/schemas/FewVariantsAvailableProductBadge' new_in: '#/components/schemas/NewInProductBadge' on_sale: '#/components/schemas/OnSaleProductBadge' out_of_stock: '#/components/schemas/OutOfStockProductBadge' slow_mover: '#/components/schemas/SlowMoverProductBadge' trending: '#/components/schemas/TrendingProductBadge' type: array title: Badges n_sold_current_period: type: integer title: N Sold Current Period n_sold_last_7_days: type: integer title: N Sold Last 7 Days clicks_current_period: type: integer title: Clicks Current Period skus: items: type: string type: array title: Skus created_at: type: string format: date-time title: Created At published_at: anyOf: - type: string format: date-time - type: 'null' title: Published At variants: items: $ref: '#/components/schemas/LiteVariant' type: array title: Variants sort_index: type: integer title: Sort Index description: The sort order of the product in the collection, disregarding pins default: 0 applied_boost_bury_rule: anyOf: - oneOf: - $ref: '#/components/schemas/BadgeBoostBuryRule' - $ref: '#/components/schemas/CollectionBoostBuryRule' - $ref: '#/components/schemas/TagBoostBuryRule' discriminator: propertyName: type mapping: badge: '#/components/schemas/BadgeBoostBuryRule' collection: '#/components/schemas/CollectionBoostBuryRule' tag: '#/components/schemas/TagBoostBuryRule' - type: 'null' title: Applied Boost Bury Rule type: object required: - main_product_id - title - handle - images - price - status - in_stock - quantity - badges - n_sold_current_period - n_sold_last_7_days - clicks_current_period - skus - created_at - published_at - variants - sort_index - applied_boost_bury_rule title: LiteCollectionProductDto 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