Depict multi-store API

The multi-store API from Depict — 7 operation(s) for multi-store.

OpenAPI Specification

depict-multi-store-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Depict Lite Ab Test multi-store 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: multi-store
paths:
  /multi-store/stores/{merchant_id}:
    get:
      tags:
      - multi-store
      summary: Get Stores
      operationId: get_stores_multi_store_stores__merchant_id__get
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LiteMultiStoreGroupMerchant'
                title: Response Get Stores Multi Store Stores  Merchant Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /multi-store/connect-store/{merchant_id}:
    post:
      tags:
      - multi-store
      summary: Connect Multi Store
      operationId: connect_multi_store_multi_store_connect_store__merchant_id__post
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: string
          title: Merchant Id
      - name: activation_code
        in: query
        required: true
        schema:
          type: string
          title: Activation Code
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /multi-store/disconnect/{merchant_id}:
    post:
      tags:
      - multi-store
      summary: Disconnect Store From Group
      operationId: disconnect_store_from_group_multi_store_disconnect__merchant_id__post
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        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'
  /multi-store/collection-mappings/{group_id}:
    get:
      tags:
      - multi-store
      summary: Get Collection Mappings
      operationId: get_collection_mappings_multi_store_collection_mappings__group_id__get
      security:
      - Auth0: []
      parameters:
      - name: group_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Group Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiteMultiStoreCollectionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - multi-store
      summary: Update Collection Mappings
      operationId: update_collection_mappings_multi_store_collection_mappings__group_id__post
      security:
      - Auth0: []
      parameters:
      - name: group_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Group Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectionMappingUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /multi-store/replication-data/{collection_id}:
    get:
      tags:
      - multi-store
      summary: Get Collection Replication Data
      operationId: get_collection_replication_data_multi_store_replication_data__collection_id__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/LiteMultiStoreMerchantCollectionReplication'
                title: Response Get Collection Replication Data Multi Store Replication Data  Collection Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /multi-store/collection-replication:
    post:
      tags:
      - multi-store
      summary: Update Collection Replication
      operationId: update_collection_replication_multi_store_collection_replication_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/LiteMultiStoreMerchantCollectionReplication'
              type: array
              title: Collection Replications
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Auth0: []
  /multi-store/create-collection-mappings/{merchant_id}:
    post:
      tags:
      - multi-store
      summary: Create Collection Mappings
      operationId: create_collection_mappings_multi_store_create_collection_mappings__merchant_id__post
      security:
      - Auth0: []
      parameters:
      - name: merchant_id
        in: path
        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'
components:
  schemas:
    LiteMultiStoreGroupMerchant:
      properties:
        id:
          type: string
          title: Id
        display_name:
          type: string
          title: Display Name
        shopify_domain:
          anyOf:
          - type: string
          - type: 'null'
          title: Shopify Domain
        group_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Group Id
      type: object
      required:
      - id
      - display_name
      - shopify_domain
      - group_id
      title: LiteMultiStoreGroupMerchant
    LiteMultiStoreCollectionMappings:
      properties:
        group_collection_id:
          type: string
          title: Group Collection Id
        collections:
          items:
            $ref: '#/components/schemas/LiteMultiStoreCollectionMapping'
          type: array
          title: Collections
      type: object
      required:
      - group_collection_id
      - collections
      title: LiteMultiStoreCollectionMappings
    DisconnectCollectionRequest:
      properties:
        collections:
          items:
            $ref: '#/components/schemas/LiteMultiStoreMerchantCollection'
          type: array
          title: Collections
      type: object
      required:
      - collections
      title: DisconnectCollectionRequest
    LiteMultiStoreMerchantCollection:
      properties:
        merchant_id:
          type: string
          title: Merchant Id
        collection_id:
          type: string
          title: Collection Id
      type: object
      required:
      - merchant_id
      - collection_id
      title: LiteMultiStoreMerchantCollection
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    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
    LiteMultiStoreCollectionResponse:
      properties:
        connections:
          items:
            $ref: '#/components/schemas/LiteMultiStoreCollectionMappings'
          type: array
          title: Connections
        collections:
          items:
            $ref: '#/components/schemas/LiteMultiStoreCollection'
          type: array
          title: Collections
      type: object
      required:
      - connections
      - collections
      title: LiteMultiStoreCollectionResponse
    LiteMultiStoreCollection:
      properties:
        merchant_id:
          type: string
          title: Merchant Id
        collection_id:
          type: string
          title: Collection Id
        title:
          type: string
          title: Title
        handle:
          type: string
          title: Handle
        image_urls:
          items:
            type: string
          type: array
          title: Image Urls
      type: object
      required:
      - merchant_id
      - collection_id
      - title
      - handle
      - image_urls
      title: LiteMultiStoreCollection
    ConnectCollectionRequest:
      properties:
        group_collection_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Group Collection Id
        collections:
          items:
            $ref: '#/components/schemas/LiteMultiStoreMerchantCollection'
          type: array
          title: Collections
      type: object
      required:
      - group_collection_id
      - collections
      title: ConnectCollectionRequest
    LiteMultiStoreMerchantCollectionReplication:
      properties:
        merchant_id:
          type: string
          title: Merchant Id
        replication_merchant_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Replication Merchant Id
        collection:
          $ref: '#/components/schemas/LiteMultiStoreCollection'
      type: object
      required:
      - merchant_id
      - replication_merchant_id
      - collection
      title: LiteMultiStoreMerchantCollectionReplication
    LiteMultiStoreCollectionMapping:
      properties:
        merchant_id:
          type: string
          title: Merchant Id
        collection_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Collection Id
        suggested_collection_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Suggested Collection Id
      type: object
      required:
      - merchant_id
      - collection_id
      - suggested_collection_id
      title: LiteMultiStoreCollectionMapping
    CollectionMappingUpdateRequest:
      properties:
        connect:
          anyOf:
          - $ref: '#/components/schemas/ConnectCollectionRequest'
          - type: 'null'
        disconnect:
          anyOf:
          - $ref: '#/components/schemas/DisconnectCollectionRequest'
          - type: 'null'
      type: object
      required:
      - connect
      - disconnect
      title: CollectionMappingUpdateRequest
  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