Depict Brand Features API

The Brand Features API from Depict — 3 operation(s) for brand features.

OpenAPI Specification

depict-brand-features-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Depict Lite Ab Test Brand Features 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: Brand Features
paths:
  /brand-features/{collection_id}:
    put:
      summary: Update
      operationId: update_brand_features__collection_id__put
      security:
      - Auth0: []
      parameters:
      - name: collection_id
        in: path
        required: true
        schema:
          type: string
          title: Collection Id
      - name: version
        in: query
        required: true
        schema:
          type: string
          format: uuid
          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/BrandFeatureUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LiteMultiStoreDataNotFound'
                title: Response Update Brand Features  Collection Id  Put
        '400':
          description: Returned when the update is not possible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StringDetailError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Brand Features
  /brand-features/content-block-clicks/{collection_id}:
    get:
      summary: Get Content Block Clicks
      operationId: get_content_block_clicks_brand_features_content_block_clicks__collection_id__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: array
                items:
                  $ref: '#/components/schemas/LiteCollectionContentBlockClicksRow'
                title: Response Get Content Block Clicks Brand Features Content Block Clicks  Collection Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Brand Features
  /brand-features/metaobject/{metaobject_id}:
    put:
      summary: Update Metaobject
      description: This endpoint should be used to update already existing metaobjects data.
      operationId: update_metaobject_brand_features_metaobject__metaobject_id__put
      security:
      - Auth0: []
      parameters:
      - name: metaobject_id
        in: path
        required: true
        schema:
          type: string
          title: Metaobject Id
      - name: merchant_id
        in: query
        required: true
        schema:
          type: string
          title: Merchant Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProAbTest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Brand Features
components:
  schemas:
    BrandFeatureType:
      type: string
      enum:
      - content_block
      - image_setting
      - product_duplicate
      - ab_test
      title: BrandFeatureType
    ProInstagramImageContent:
      properties:
        type:
          type: string
          enum:
          - instagram_image
          const: instagram_image
          title: Type
          default: instagram_image
        gid:
          type: string
          title: Gid
        creator:
          type: string
          title: Creator
        post_url:
          type: string
          title: Post Url
        post_id:
          type: string
          title: Post Id
        media_id:
          type: string
          title: Media Id
        alt_text:
          anyOf:
          - type: string
          - type: 'null'
          title: Alt Text
      type: object
      required:
      - gid
      - creator
      - post_url
      - post_id
      - media_id
      title: ProInstagramImageContent
    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
    ProImageSetting:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        handle:
          type: string
          title: Handle
        product_gid:
          type: string
          title: Product Gid
        default_image_gid:
          type: string
          title: Default Image Gid
        hover_image_gid:
          anyOf:
          - type: string
          - type: 'null'
          title: Hover Image Gid
      type: object
      required:
      - handle
      - product_gid
      - default_image_gid
      title: ProImageSetting
    ProSpaceContent:
      properties:
        type:
          type: string
          enum:
          - space
          const: space
          title: Type
          default: space
        height:
          anyOf:
          - type: integer
          - type: 'null'
          title: Height
      type: object
      title: ProSpaceContent
    ContentBlockTextProperties:
      properties:
        html_tag:
          type: string
          title: Html Tag
        color_hex:
          anyOf:
          - type: string
          - type: 'null'
          title: Color Hex
        bold:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Bold
        italic:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Italic
        underline:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Underline
        text:
          anyOf:
          - type: string
          - type: 'null'
          title: Text
      type: object
      required:
      - html_tag
      title: ContentBlockTextProperties
    LiteCollectionContentBlockClicksRow:
      properties:
        content_block_id:
          type: integer
          title: Content Block Id
        handle:
          type: string
          title: Handle
        nbr_clicks:
          type: integer
          title: Nbr Clicks
      type: object
      required:
      - content_block_id
      - handle
      - nbr_clicks
      title: LiteCollectionContentBlockClicksRow
    ContentLink:
      properties:
        type:
          $ref: '#/components/schemas/LinkType'
        gid:
          type: string
          title: Gid
        handle:
          type: string
          title: Handle
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
      type: object
      required:
      - type
      - gid
      - handle
      title: ContentLink
    ProImageContent:
      properties:
        type:
          type: string
          enum:
          - image
          const: image
          title: Type
          default: image
        gid:
          type: string
          title: Gid
        filename:
          type: string
          title: Filename
        alt_text:
          anyOf:
          - type: string
          - type: 'null'
          title: Alt Text
      type: object
      required:
      - gid
      - filename
      title: ProImageContent
    LinkType:
      type: string
      enum:
      - collection
      - page
      - product
      - article
      - url
      title: LinkType
    ProContentBlockText:
      properties:
        header:
          anyOf:
          - $ref: '#/components/schemas/ContentBlockTextProperties'
          - type: 'null'
        body:
          anyOf:
          - $ref: '#/components/schemas/ContentBlockTextProperties'
          - type: 'null'
        horizontal_alignment:
          anyOf:
          - type: string
            enum:
            - start
            - center
            - end
          - type: 'null'
          title: Horizontal Alignment
        vertical_alignment:
          anyOf:
          - type: string
            enum:
            - start
            - center
            - end
          - type: 'null'
          title: Vertical Alignment
        background_overlay:
          anyOf:
          - type: string
          - type: 'null'
          title: Background Overlay
        gap:
          anyOf:
          - type: string
          - type: 'null'
          title: Gap
      type: object
      title: ProContentBlockText
    LiteMultiStoreDataNotFound:
      properties:
        feature_type:
          $ref: '#/components/schemas/BrandFeatureType'
        target_merchant_display_name:
          type: string
          title: Target Merchant Display Name
        message:
          type: string
          title: Message
        product_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Product Id
      type: object
      required:
      - feature_type
      - target_merchant_display_name
      - message
      title: LiteMultiStoreDataNotFound
    StringDetailError:
      properties:
        detail:
          type: string
          title: Detail
      type: object
      required:
      - detail
      title: StringDetailError
    ProVideoContent:
      properties:
        type:
          type: string
          enum:
          - video
          const: video
          title: Type
          default: video
        gid:
          type: string
          title: Gid
        filename:
          type: string
          title: Filename
      type: object
      required:
      - gid
      - filename
      title: ProVideoContent
    ProContentBlock:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        handle:
          type: string
          title: Handle
          description: The handle is used as an id to identify the content block across stores in a multi-store environment as well as between server and local state. It is created when the content block is created for the first time and stays the same across updates. It is mapped to the actual handle of the metaobject in Shopify. This allows us to use the `metaobjectByHandle` query.
        index:
          type: integer
          title: Index
        span_rows:
          type: integer
          title: Span Rows
        aspect_ratio:
          type: number
          title: Aspect Ratio
        span_columns:
          type: integer
          title: Span Columns
        visibility:
          anyOf:
          - type: string
            enum:
            - desktop
            - mobile
          - type: 'null'
          title: Visibility
        content:
          anyOf:
          - $ref: '#/components/schemas/ProImageContent'
          - $ref: '#/components/schemas/ProVideoContent'
          - $ref: '#/components/schemas/ProSpaceContent'
          - $ref: '#/components/schemas/ProInstagramImageContent'
          - $ref: '#/components/schemas/ProInstagramVideoContent'
          title: Content
        hover_image:
          anyOf:
          - $ref: '#/components/schemas/ProImageContent'
          - $ref: '#/components/schemas/ProInstagramImageContent'
          - type: 'null'
          title: Hover Image
        link:
          anyOf:
          - $ref: '#/components/schemas/ContentLink'
          - type: 'null'
        text:
          anyOf:
          - $ref: '#/components/schemas/ProContentBlockText'
          - type: 'null'
      type: object
      required:
      - handle
      - index
      - span_rows
      - aspect_ratio
      - span_columns
      - content
      title: ProContentBlock
    ProProductDuplicate:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        handle:
          type: string
          title: Handle
        product_gid:
          type: string
          title: Product Gid
        default_image_gid:
          type: string
          title: Default Image Gid
        hover_image_gid:
          anyOf:
          - type: string
          - type: 'null'
          title: Hover Image Gid
        index:
          anyOf:
          - type: integer
          - type: 'null'
          title: Index
        created_at:
          anyOf:
          - type: integer
          - type: 'null'
          title: Created At
      type: object
      required:
      - handle
      - product_gid
      - default_image_gid
      title: ProProductDuplicate
    BrandFeatureUpdateRequest:
      properties:
        brand_feature_type:
          $ref: '#/components/schemas/BrandFeatureType'
        upsert_metaobjects:
          anyOf:
          - items:
              $ref: '#/components/schemas/ProContentBlock'
            type: array
          - items:
              $ref: '#/components/schemas/ProImageSetting'
            type: array
          - items:
              $ref: '#/components/schemas/ProProductDuplicate'
            type: array
          - items:
              $ref: '#/components/schemas/ProAbTest'
            type: array
          title: Upsert Metaobjects
        delete_metaobjects_by_handle:
          items:
            type: string
          type: array
          title: Delete Metaobjects By Handle
      type: object
      required:
      - brand_feature_type
      - upsert_metaobjects
      - delete_metaobjects_by_handle
      title: BrandFeatureUpdateRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProInstagramVideoContent:
      properties:
        type:
          type: string
          enum:
          - instagram_video
          const: instagram_video
          title: Type
          default: instagram_video
        gid:
          type: string
          title: Gid
        creator:
          type: string
          title: Creator
        post_url:
          type: string
          title: Post Url
        post_id:
          type: string
          title: Post Id
        media_id:
          type: string
          title: Media Id
      type: object
      required:
      - gid
      - creator
      - post_url
      - post_id
      - media_id
      title: ProInstagramVideoContent
    ProAbTest:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        handle:
          type: string
          title: Handle
        start_date:
          type: string
          title: Start Date
        end_date:
          type: string
          title: End Date
        experiment_name:
          type: string
          title: Experiment Name
        notify_email:
          type: string
          title: Notify Email
        generated_conclusion:
          anyOf:
          - type: string
          - type: 'null'
          title: Generated Conclusion
      type: object
      required:
      - handle
      - start_date
      - end_date
      - experiment_name
      - notify_email
      title: ProAbTest
  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