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

# Discover



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/projects/{projectId}/item-slots/bulk-edit/components/discover
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/bulk-edit/components/discover:
    post:
      tags:
        - Specification Component Bulk Edit
      summary: Discover
      operationId: SpecificationComponentBulkEditController_discover_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/SpecificationComponentBulkDiscoverDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SpecificationComponentBulkDiscoverResponseDto
      security:
        - bearer: []
components:
  schemas:
    SpecificationComponentBulkDiscoverDto:
      type: object
      properties:
        scope:
          oneOf:
            - type: object
              properties:
                mode:
                  type: string
                  const: explicit
                slotIds:
                  minItems: 1
                  maxItems: 2500
                  type: array
                  items:
                    type: string
              required:
                - mode
                - slotIds
              additionalProperties: false
            - 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
                - mode
              additionalProperties: false
        search:
          type: string
          maxLength: 255
        cursor:
          type: string
      required:
        - scope
      additionalProperties: false
    SpecificationComponentBulkDiscoverResponseDto:
      type: object
      properties:
        schemaVersion:
          type: number
          enum:
            - 1
        parents:
          type: array
          items:
            $ref: '#/components/schemas/SpecificationBulkEditTargetDto'
        components:
          type: array
          items:
            $ref: '#/components/schemas/ComponentBulkChoiceDto'
        nextCursor:
          type: string
          nullable: true
      required:
        - schemaVersion
        - parents
        - components
        - nextCursor
    SpecificationBulkEditTargetDto:
      type: object
      properties:
        slotId:
          type: string
        slotVersion:
          type: number
        primaryItemId:
          type: string
          nullable: true
        primaryItemVersion:
          type: number
          nullable: true
        name:
          type: string
        referenceNumber:
          type: string
          nullable: true
      required:
        - slotId
        - slotVersion
        - primaryItemId
        - primaryItemVersion
        - name
        - referenceNumber
    ComponentBulkChoiceDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        categoryName:
          type: string
          nullable: true
        kind:
          enum:
            - material
            - part
          type: string
        parents:
          type: array
          items:
            $ref: '#/components/schemas/ComponentBulkParentLabelDto'
      required:
        - id
        - name
        - categoryName
        - kind
        - parents
    ComponentBulkParentLabelDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        referenceNumber:
          type: string
          nullable: true
      required:
        - id
        - name
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````