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



## OpenAPI

````yaml /openapi.json get /v1/workspaces/{workspaceId}/projects/{projectId}/specification-navigator/nodes
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/nodes:
    get:
      tags:
        - Specification Navigator
      summary: Read Nodes
      operationId: SpecificationNavigatorController_readNodes_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: parentPath
          required: false
          in: query
          schema:
            minLength: 2
            maxLength: 4096
            example: '[{"dimension":"supplier","supplierId":"42"}]'
            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: true
          in: query
          schema:
            enum:
              - areas
              - categories
              - areas-categories
              - categories-areas
              - custom
            type: string
        - name: parentAreaId
          required: false
          in: query
          schema:
            type: string
        - name: parentCategoryId
          required: false
          in: query
          schema:
            type: string
        - name: showItemCount
          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/SpecificationNavigatorNodesResponseDto'
      security:
        - bearer: []
components:
  schemas:
    SpecificationNavigatorNodesResponseDto:
      type: object
      properties:
        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
    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

````