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

# Find Comparison Page



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/projects/{projectId}/item-slots/comparison
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/projects/{projectId}/item-slots/comparison:
    post:
      tags:
        - Product Comparison
      summary: Find Comparison Page
      operationId: ProductComparisonController_findComparisonPage_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
        - name: projectId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductComparisonRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductComparisonResponseDto'
      security:
        - bearer: []
components:
  schemas:
    ProductComparisonRequestDto:
      type: object
      properties:
        schemaVersion:
          type: number
          const: 1
        scope:
          type: object
          properties:
            configuration:
              type: object
              properties:
                schemaVersion:
                  type: number
                  const: 1
                columns:
                  maxItems: 200
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 255
                quickFilters:
                  type: object
                  properties:
                    status:
                      maxItems: 20
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 255
                    categoryIds:
                      maxItems: 100
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 255
                    columnFilters:
                      maxItems: 50
                      type: array
                      items:
                        oneOf:
                          - type: object
                            properties:
                              fieldKey:
                                type: string
                                minLength: 1
                                maxLength: 255
                              type:
                                type: string
                                const: text
                              value:
                                type: string
                                minLength: 1
                                maxLength: 1000
                              mode:
                                type: string
                                enum:
                                  - contains
                                  - equals
                            required:
                              - fieldKey
                              - type
                              - value
                              - mode
                            additionalProperties: false
                          - type: object
                            properties:
                              fieldKey:
                                type: string
                                minLength: 1
                                maxLength: 255
                              type:
                                type: string
                                const: number
                              min:
                                type: number
                              max:
                                type: number
                            required:
                              - fieldKey
                              - type
                            additionalProperties: false
                          - type: object
                            properties:
                              fieldKey:
                                type: string
                                minLength: 1
                                maxLength: 255
                              type:
                                type: string
                                const: boolean
                              value:
                                type: boolean
                            required:
                              - fieldKey
                              - type
                              - value
                            additionalProperties: false
                          - type: object
                            properties:
                              fieldKey:
                                type: string
                                minLength: 1
                                maxLength: 255
                              type:
                                type: string
                                const: list
                              values:
                                minItems: 1
                                maxItems: 100
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 255
                            required:
                              - fieldKey
                              - type
                              - values
                            additionalProperties: false
                          - type: object
                            properties:
                              fieldKey:
                                type: string
                                minLength: 1
                                maxLength: 255
                              type:
                                type: string
                                const: date
                              from:
                                type: string
                                format: date
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              to:
                                type: string
                                format: date
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            required:
                              - fieldKey
                              - type
                            additionalProperties: false
                  required:
                    - status
                    - categoryIds
                    - columnFilters
                  additionalProperties: false
                advancedFilter:
                  type: object
                  properties:
                    sets:
                      maxItems: 5
                      type: array
                      items:
                        type: object
                        properties:
                          conditions:
                            minItems: 1
                            maxItems: 10
                            type: array
                            items:
                              oneOf:
                                - type: object
                                  properties:
                                    fieldKey:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    operator:
                                      type: string
                                      enum:
                                        - is_any_of
                                        - is_not_any_of
                                    values:
                                      minItems: 1
                                      maxItems: 100
                                      type: array
                                      items:
                                        type: string
                                        minLength: 1
                                        maxLength: 255
                                  required:
                                    - fieldKey
                                    - operator
                                    - values
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    fieldKey:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    operator:
                                      type: string
                                      enum:
                                        - contains
                                        - does_not_contain
                                    value:
                                      type: string
                                      minLength: 1
                                      maxLength: 1000
                                  required:
                                    - fieldKey
                                    - operator
                                    - value
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    fieldKey:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    operator:
                                      type: string
                                      enum:
                                        - is_empty
                                        - is_not_empty
                                  required:
                                    - fieldKey
                                    - operator
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    fieldKey:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    operator:
                                      type: string
                                      enum:
                                        - date_on
                                        - date_before
                                        - date_after
                                    value:
                                      type: string
                                      format: date
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                  required:
                                    - fieldKey
                                    - operator
                                    - value
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    fieldKey:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    operator:
                                      type: string
                                      const: date_between
                                    from:
                                      type: string
                                      format: date
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                    to:
                                      type: string
                                      format: date
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                  required:
                                    - fieldKey
                                    - operator
                                    - from
                                    - to
                                  additionalProperties: false
                        required:
                          - conditions
                        additionalProperties: false
                  required:
                    - sets
                  additionalProperties: false
                groupBy:
                  maxItems: 2
                  type: array
                  items:
                    type: object
                    properties:
                      fieldKey:
                        type: string
                        minLength: 1
                        maxLength: 255
                      direction:
                        type: string
                        enum:
                          - asc
                          - desc
                    required:
                      - fieldKey
                      - direction
                    additionalProperties: false
                sort:
                  maxItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      fieldKey:
                        type: string
                        minLength: 1
                        maxLength: 255
                      direction:
                        type: string
                        enum:
                          - asc
                          - desc
                    required:
                      - fieldKey
                      - direction
                    additionalProperties: false
              required:
                - schemaVersion
                - columns
                - quickFilters
                - advancedFilter
                - groupBy
                - sort
              additionalProperties: false
            search:
              type: string
              minLength: 1
              maxLength: 255
            status:
              type: string
              enum:
                - new
                - ready
                - broken
            navigatorScope:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      const: area
                    areaId:
                      type: string
                    scope:
                      default: subtree
                      type: string
                      enum:
                        - direct
                        - subtree
                  required:
                    - kind
                    - areaId
                  additionalProperties: false
                - type: object
                  properties:
                    kind:
                      type: string
                      const: category
                    categoryId:
                      type: string
                  required:
                    - kind
                    - categoryId
                  additionalProperties: false
                - type: object
                  properties:
                    kind:
                      type: string
                      const: special
                    value:
                      type: string
                      enum:
                        - unassigned
                        - extra
                  required:
                    - kind
                    - value
                  additionalProperties: false
                - type: object
                  properties:
                    kind:
                      type: string
                      const: path
                    segments:
                      minItems: 1
                      maxItems: 10
                      type: array
                      items:
                        oneOf:
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: area
                              areaId:
                                type: string
                              scope:
                                type: string
                                enum:
                                  - direct
                                  - subtree
                            required:
                              - dimension
                              - areaId
                              - scope
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: area-type
                              areaTypeKey:
                                anyOf:
                                  - type: string
                                    pattern: ^[a-f0-9]{64}$
                                  - type: 'null'
                            required:
                              - dimension
                              - areaTypeKey
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: area-level
                              levelKey:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              areaId:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                            required:
                              - dimension
                              - levelKey
                              - areaId
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: category
                              categoryId:
                                type: string
                            required:
                              - dimension
                              - categoryId
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: status
                              status:
                                type: string
                                enum:
                                  - new
                                  - ready
                                  - broken
                            required:
                              - dimension
                              - status
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: supplier
                              supplierId:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                            required:
                              - dimension
                              - supplierId
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: finish
                              valueKey:
                                anyOf:
                                  - type: string
                                    pattern: ^[a-f0-9]{64}$
                                  - type: 'null'
                            required:
                              - dimension
                              - valueKey
                            additionalProperties: false
                          - type: object
                            properties:
                              dimension:
                                type: string
                                const: field
                              field:
                                type: string
                                maxLength: 200
                                pattern: >-
                                  ^(?:system|catalog_family|catalog_item|catalog_family_source|catalog_item_source|project_item|project_item_slot):[a-zA-Z0-9_-]+$
                              value:
                                anyOf:
                                  - type: string
                                    minLength: 1
                                    maxLength: 1000
                                  - type: 'null'
                            required:
                              - dimension
                              - field
                              - value
                            additionalProperties: false
                  required:
                    - kind
                    - segments
                  additionalProperties: false
            changedSinceIssue:
              type: boolean
            changedInRange:
              type: object
              properties:
                from:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                to:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                timeZone:
                  default: UTC
                  type: string
                  minLength: 1
                  maxLength: 64
              required:
                - from
                - to
              additionalProperties: false
            issueTypes:
              minItems: 1
              maxItems: 3
              type: array
              items:
                enum:
                  - version
                  - issue
                  - revision
                type: string
            selection:
              type: object
              properties:
                schemaVersion:
                  type: number
                  const: 1
                defaultSelected:
                  type: boolean
                groupOverrides:
                  maxItems: 500
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        minItems: 1
                        maxItems: 2
                        type: array
                        items:
                          type: object
                          properties:
                            fieldKey:
                              type: string
                              minLength: 1
                              maxLength: 255
                            valueKey:
                              anyOf:
                                - type: string
                                  minLength: 1
                                  maxLength: 1000
                                - type: 'null'
                          required:
                            - fieldKey
                            - valueKey
                          additionalProperties: false
                      selected:
                        type: boolean
                    required:
                      - path
                      - selected
                    additionalProperties: false
                slotOverrides:
                  maxItems: 500
                  type: array
                  items:
                    type: object
                    properties:
                      slotId:
                        type: string
                      selected:
                        type: boolean
                    required:
                      - slotId
                      - selected
                    additionalProperties: false
              required:
                - schemaVersion
                - defaultSelected
                - groupOverrides
                - slotOverrides
              additionalProperties: false
            mode:
              type: string
              const: table_query
          required:
            - configuration
            - selection
            - mode
          additionalProperties: false
        cursor:
          type: string
          minLength: 1
          maxLength: 2048
      required:
        - schemaVersion
        - scope
      additionalProperties: false
    ProductComparisonResponseDto:
      type: object
      properties:
        schemaVersion:
          type: number
          enum:
            - 1
        items:
          type: array
          items:
            $ref: '#/components/schemas/ProductComparisonHeadDto'
        nextCursor:
          type: object
          nullable: true
        selectedCount:
          type: number
        processedCount:
          type: number
        omittedCount:
          type: number
        hasMore:
          type: boolean
      required:
        - schemaVersion
        - items
        - nextCursor
        - selectedCount
        - processedCount
        - omittedCount
        - hasMore
    ProductComparisonHeadDto:
      type: object
      properties:
        refNumber:
          type: object
          nullable: true
        primary:
          $ref: '#/components/schemas/ProductComparisonOptionDto'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ProductComparisonFieldDto'
        slotId:
          type: string
        position:
          type: number
        alternativesCount:
          type: number
      required:
        - refNumber
        - primary
        - fields
        - slotId
        - position
        - alternativesCount
    ProductComparisonOptionDto:
      type: object
      properties:
        productTypeId:
          type: object
          nullable: true
        source:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ProductComparisonSourceDto'
        attributes:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  oneOf:
                    - type: string
                    - type: number
                    - type: boolean
        id:
          type: string
        name:
          type: string
        categoryId:
          type: string
      required:
        - productTypeId
        - source
        - attributes
        - id
        - name
        - categoryId
    ProductComparisonFieldDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        type:
          enum:
            - text
            - number
            - percent
            - boolean
            - list
            - multiple_select
            - date
            - image
            - dimension
          type: string
        logicType:
          enum:
            - catalog_family
            - catalog_item
            - catalog_family_source
            - catalog_item_source
            - brand_standard
            - project_item
            - project_item_slot
          type: string
        options:
          type: array
          items:
            type: object
      required:
        - id
        - name
        - slug
        - type
        - logicType
        - options
    ProductComparisonSourceDto:
      type: object
      properties:
        companyName:
          type: object
          nullable: true
        officeName:
          type: object
          nullable: true
      required:
        - companyName
        - officeName
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````