> ## 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.

# Preview



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/catalog-families/bulk-edit/preview
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}/catalog-families/bulk-edit/preview:
    post:
      tags:
        - Catalog Bulk Edit
      summary: Preview
      operationId: CatalogBulkEditController_preview_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogBulkEditPreviewDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogBulkEditPreviewResponseDto'
      security:
        - bearer: []
components:
  schemas:
    CatalogBulkEditPreviewDto:
      type: object
      properties:
        scope:
          oneOf:
            - type: object
              properties:
                mode:
                  type: string
                  const: explicit
                familyIds:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    type: string
              required:
                - mode
                - familyIds
              additionalProperties: false
            - type: object
              properties:
                surface:
                  type: string
                  enum:
                    - catalog_products
                    - catalog_materials
                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
                mode:
                  type: string
                  const: table_query
                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
                    familyOverrides:
                      maxItems: 500
                      type: array
                      items:
                        type: object
                        properties:
                          familyId:
                            type: string
                          selected:
                            type: boolean
                        required:
                          - familyId
                          - selected
                        additionalProperties: false
                  required:
                    - schemaVersion
                    - defaultSelected
                    - groupOverrides
                    - familyOverrides
                  additionalProperties: false
              required:
                - surface
                - configuration
                - mode
                - selection
              additionalProperties: false
      required:
        - scope
      additionalProperties: false
    CatalogBulkEditPreviewResponseDto:
      type: object
      properties:
        schemaVersion:
          type: number
          enum:
            - 1
        selectedCount:
          type: number
        targets:
          type: array
          items:
            $ref: '#/components/schemas/CatalogBulkEditTargetDto'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/CatalogBulkEditFieldDto'
      required:
        - schemaVersion
        - selectedCount
        - targets
        - fields
    CatalogBulkEditTargetDto:
      type: object
      properties:
        familyId:
          type: string
        familyVersion:
          type: number
        primaryItemId:
          type: string
          nullable: true
        primaryItemVersion:
          type: number
          nullable: true
        primaryFamilySourceId:
          type: string
          nullable: true
        primaryFamilySourceVersion:
          type: number
          nullable: true
        primaryItemSourceId:
          type: string
          nullable: true
        primaryItemSourceVersion:
          type: number
          nullable: true
        name:
          type: string
      required:
        - familyId
        - familyVersion
        - primaryItemId
        - primaryItemVersion
        - primaryFamilySourceId
        - primaryFamilySourceVersion
        - primaryItemSourceId
        - primaryItemSourceVersion
        - name
    CatalogBulkEditFieldDto:
      type: object
      properties:
        fieldKey:
          type: string
        label:
          type: string
        type:
          type: object
        options:
          type: array
          items:
            type: object
        nullable:
          type: boolean
        valueFormat:
          type: string
        scale:
          type: number
        eligibility:
          enum:
            - unavailable
            - editable
          type: string
        reason:
          type: string
          nullable: true
        values:
          type: array
          items:
            $ref: '#/components/schemas/CatalogBulkEditFieldValueDto'
      required:
        - fieldKey
        - label
        - type
        - options
        - nullable
        - valueFormat
        - eligibility
        - reason
        - values
    CatalogBulkEditFieldValueDto:
      type: object
      properties:
        value:
          nullable: true
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: array
              items:
                type: string
        familyId:
          type: string
      required:
        - value
        - familyId
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````