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

# Read Bootstrap



## OpenAPI

````yaml /openapi.json get /v1/workspaces/{workspaceId}/projects/{projectId}/specification-navigator
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}/specification-navigator:
    get:
      tags:
        - Specification Navigator
      summary: Read Bootstrap
      operationId: SpecificationNavigatorController_readBootstrap_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
        - name: projectId
          required: true
          in: path
          schema:
            type: string
        - name: grouping
          required: false
          in: query
          schema:
            minLength: 2
            maxLength: 4096
            example: '[{"kind":"supplier"},{"kind":"finish"}]'
            type: string
        - name: limit
          required: false
          in: query
          description: >-
            Page size (default 50); Finish grouping is safely capped by the
            server at 25 without truncating labels.
          schema:
            minimum: 1
            maximum: 100
            type: number
        - name: filter
          required: false
          in: query
          schema:
            additionalProperties:
              type: object
              additionalProperties: true
            type: object
          style: deepObject
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - new
              - ready
              - broken
        - name: categoryId
          required: false
          in: query
          schema:
            type: string
        - name: categoryIds
          required: false
          in: query
          schema:
            minItems: 1
            maxItems: 100
            type: array
            items:
              type: string
        - name: layout
          required: false
          in: query
          schema:
            enum:
              - areas
              - categories
              - areas-categories
              - categories-areas
              - custom
            type: string
        - name: showItemCount
          required: false
          in: query
          schema:
            type: boolean
        - name: showUnassigned
          required: false
          in: query
          schema:
            type: boolean
        - name: showExtraQuantity
          required: false
          in: query
          schema:
            type: boolean
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 2048
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SpecificationNavigatorBootstrapResponseDto
      security:
        - bearer: []
components:
  schemas:
    SpecificationNavigatorBootstrapResponseDto:
      type: object
      properties:
        availableDimensions:
          type: array
          items:
            oneOf:
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                properties:
                  key:
                    type: string
                    enum:
                      - area
                  kind:
                    type: string
                    enum:
                      - area
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                properties:
                  key:
                    type: string
                    enum:
                      - area-type
                  kind:
                    type: string
                    enum:
                      - area-type
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                properties:
                  key:
                    type: string
                    enum:
                      - category
                  kind:
                    type: string
                    enum:
                      - category
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                properties:
                  key:
                    type: string
                    enum:
                      - status
                  kind:
                    type: string
                    enum:
                      - status
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                properties:
                  key:
                    type: string
                    enum:
                      - supplier
                  kind:
                    type: string
                    enum:
                      - supplier
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                properties:
                  key:
                    type: string
                    enum:
                      - finish
                  kind:
                    type: string
                    enum:
                      - finish
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                  - label
                  - field
                properties:
                  key:
                    type: string
                    pattern: '^field:'
                  kind:
                    type: string
                    enum:
                      - field
                  label:
                    type: string
                  field:
                    type: string
                  valueType:
                    type: string
                    enum:
                      - text
                      - number
                      - percent
                      - boolean
                      - list
                      - multiple_select
                      - date
                      - dimension
              - type: object
                additionalProperties: false
                required:
                  - key
                  - kind
                  - label
                  - levelKey
                properties:
                  key:
                    type: string
                    pattern: '^area-level:'
                  kind:
                    type: string
                    enum:
                      - area-level
                  label:
                    type: string
                  levelKey:
                    type: string
                    format: uuid
            discriminator:
              propertyName: kind
        effectiveSettings:
          $ref: '#/components/schemas/SpecificationNavigatorSettingsResponseDto'
        canonicalDefaults:
          $ref: '#/components/schemas/SpecificationNavigatorSettingsValuesResponseDto'
        projection:
          $ref: '#/components/schemas/SpecificationNavigatorProjectionResponseDto'
        preferenceWarning:
          type: string
          nullable: true
      required:
        - availableDimensions
        - effectiveSettings
        - canonicalDefaults
        - projection
        - preferenceWarning
    SpecificationNavigatorSettingsResponseDto:
      type: object
      properties:
        layout:
          enum:
            - areas
            - categories
            - areas-categories
            - categories-areas
            - custom
          type: string
        customGrouping:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/SpecificationNavigatorAreaGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorAreaTypeGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorCategoryGroupingDto'
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorAreaLevelGroupingDto
              - $ref: '#/components/schemas/SpecificationNavigatorStatusGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorSupplierGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorFinishGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorFieldGroupingDto'
            discriminator:
              propertyName: kind
              mapping:
                area:
                  $ref: '#/components/schemas/SpecificationNavigatorAreaGroupingDto'
                area_type:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaTypeGroupingDto
                category:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorCategoryGroupingDto
                area_level:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaLevelGroupingDto
                status:
                  $ref: '#/components/schemas/SpecificationNavigatorStatusGroupingDto'
                supplier:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorSupplierGroupingDto
                finish:
                  $ref: '#/components/schemas/SpecificationNavigatorFinishGroupingDto'
                field:
                  $ref: '#/components/schemas/SpecificationNavigatorFieldGroupingDto'
        version:
          type: number
          nullable: true
        isDefault:
          type: boolean
        showItemCount:
          type: boolean
        showUnassigned:
          type: boolean
        showExtraQuantity:
          type: boolean
        showFloorPlan:
          type: boolean
      required:
        - layout
        - customGrouping
        - version
        - isDefault
        - showItemCount
        - showUnassigned
        - showExtraQuantity
        - showFloorPlan
    SpecificationNavigatorSettingsValuesResponseDto:
      type: object
      properties:
        layout:
          enum:
            - areas
            - categories
            - areas-categories
            - categories-areas
            - custom
          type: string
        customGrouping:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/SpecificationNavigatorAreaGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorAreaTypeGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorCategoryGroupingDto'
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorAreaLevelGroupingDto
              - $ref: '#/components/schemas/SpecificationNavigatorStatusGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorSupplierGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorFinishGroupingDto'
              - $ref: '#/components/schemas/SpecificationNavigatorFieldGroupingDto'
            discriminator:
              propertyName: kind
              mapping:
                area:
                  $ref: '#/components/schemas/SpecificationNavigatorAreaGroupingDto'
                area_type:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaTypeGroupingDto
                category:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorCategoryGroupingDto
                area_level:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaLevelGroupingDto
                status:
                  $ref: '#/components/schemas/SpecificationNavigatorStatusGroupingDto'
                supplier:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorSupplierGroupingDto
                finish:
                  $ref: '#/components/schemas/SpecificationNavigatorFinishGroupingDto'
                field:
                  $ref: '#/components/schemas/SpecificationNavigatorFieldGroupingDto'
        showItemCount:
          type: boolean
        showUnassigned:
          type: boolean
        showExtraQuantity:
          type: boolean
        showFloorPlan:
          type: boolean
      required:
        - layout
        - customGrouping
        - showItemCount
        - showUnassigned
        - showExtraQuantity
        - showFloorPlan
    SpecificationNavigatorProjectionResponseDto:
      type: object
      properties:
        allItemsCount:
          type: number
        unassignedCount:
          type: number
        extraQuantityCount:
          type: number
        areaStructureVersion:
          type: number
          nullable: true
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/SpecificationNavigatorNodeResponseDto'
        pageInfo:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/SpecificationNavigatorPageInfoResponseDto'
      required:
        - areaStructureVersion
        - nodes
        - pageInfo
    SpecificationNavigatorAreaGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - area
      required:
        - kind
    SpecificationNavigatorAreaTypeGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - area_type
      required:
        - kind
    SpecificationNavigatorCategoryGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - category
      required:
        - kind
    SpecificationNavigatorAreaLevelGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - area_level
        levelKey:
          type: string
      required:
        - kind
        - levelKey
    SpecificationNavigatorStatusGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - status
      required:
        - kind
    SpecificationNavigatorSupplierGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - supplier
      required:
        - kind
    SpecificationNavigatorFinishGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - finish
      required:
        - kind
    SpecificationNavigatorFieldGroupingDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - field
        field:
          type: string
      required:
        - kind
        - field
    SpecificationNavigatorNodeResponseDto:
      type: object
      properties:
        kind:
          enum:
            - area
            - area-type
            - area-level
            - category
            - status
            - supplier
            - finish
            - field
          type: string
        areaCount:
          type: number
        hasFloorPlan:
          type: boolean
        pinnedCount:
          type: number
        id:
          type: string
        label:
          type: string
        code:
          type: string
        structuralParentId:
          type: string
          nullable: true
        itemCount:
          type: number
        structuralChildCount:
          type: number
        hasStructuralChildren:
          type: boolean
        groupingChildCount:
          type: number
        hasGroupingChildren:
          type: boolean
        selection:
          $ref: '#/components/schemas/SpecificationNavigatorPathSelectionResponseDto'
      required:
        - kind
        - id
        - label
        - structuralParentId
        - structuralChildCount
        - hasStructuralChildren
        - groupingChildCount
        - hasGroupingChildren
        - selection
    SpecificationNavigatorPageInfoResponseDto:
      type: object
      properties:
        nextCursor:
          type: string
          nullable: true
        hasMore:
          type: boolean
      required:
        - nextCursor
        - hasMore
    SpecificationNavigatorPathSelectionResponseDto:
      type: object
      properties:
        kind:
          type: string
          enum:
            - path
        segments:
          type: array
          minItems: 1
          maxItems: 3
          items:
            oneOf:
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorAreaSelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorAreaTypeSelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorAreaLevelSelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorCategorySelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorStatusSelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorSupplierSelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorFinishSelectionSegmentDto
              - $ref: >-
                  #/components/schemas/SpecificationNavigatorFieldSelectionSegmentDto
            discriminator:
              propertyName: dimension
              mapping:
                area:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaSelectionSegmentDto
                area-type:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaTypeSelectionSegmentDto
                area-level:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorAreaLevelSelectionSegmentDto
                category:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorCategorySelectionSegmentDto
                status:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorStatusSelectionSegmentDto
                supplier:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorSupplierSelectionSegmentDto
                finish:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorFinishSelectionSegmentDto
                field:
                  $ref: >-
                    #/components/schemas/SpecificationNavigatorFieldSelectionSegmentDto
      required:
        - kind
        - segments
    SpecificationNavigatorAreaSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - area
        scope:
          type: string
          enum:
            - direct
            - subtree
        areaId:
          type: string
      required:
        - dimension
        - scope
        - areaId
    SpecificationNavigatorAreaTypeSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - area-type
        areaTypeKey:
          type: string
          nullable: true
          pattern: ^[a-f0-9]{64}$
      required:
        - dimension
        - areaTypeKey
    SpecificationNavigatorAreaLevelSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - area-level
        levelKey:
          type: string
        areaId:
          type: string
          nullable: true
      required:
        - dimension
        - levelKey
        - areaId
    SpecificationNavigatorCategorySelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - category
        categoryId:
          type: string
      required:
        - dimension
        - categoryId
    SpecificationNavigatorStatusSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - status
        status:
          type: string
          enum:
            - new
            - ready
            - broken
      required:
        - dimension
        - status
    SpecificationNavigatorSupplierSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - supplier
        supplierId:
          type: string
          nullable: true
      required:
        - dimension
        - supplierId
    SpecificationNavigatorFinishSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - finish
        valueKey:
          type: string
          nullable: true
          pattern: ^[a-f0-9]{64}$
      required:
        - dimension
        - valueKey
    SpecificationNavigatorFieldSelectionSegmentDto:
      type: object
      properties:
        dimension:
          type: string
          enum:
            - field
        value:
          type: string
          nullable: true
        field:
          type: string
      required:
        - dimension
        - value
        - field
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````