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

# Get Query Folder Tree

> Returns the folder hierarchy as a tree structure. Optionally includes queries within each folder node. Use rootFolderId to get a subtree starting from a specific folder.

<span style={{display: "flex", gap: "10px", flexDirection: "row", alignItems: "center"}}>
  <img src="https://cdn.peaka.com/badges/partner-api-key-badge.png" />

  <img src="https://cdn.peaka.com/badges/project-api-key-badge.png" />
</span>


## OpenAPI

````yaml get /data/projects/{projectId}/queries/folders/tree
openapi: 3.0.1
info:
  title: Peaka Gateway API
  description: Peaka Gateway API Documentation
  version: '1.0'
servers:
  - url: https://partner.peaka.studio/api/v1
    description: Default Server URL (US Zone)
  - url: https://partner.eu.peaka.studio/api/v1
    description: EU Zone
security:
  - bearerAuth: []
paths:
  /data/projects/{projectId}/queries/folders/tree:
    get:
      tags:
        - Data -- Query Folders
      summary: Get Query Folder Tree
      description: >-
        Returns the folder hierarchy as a tree structure. Optionally includes
        queries within each folder node. Use rootFolderId to get a subtree
        starting from a specific folder.
      operationId: getQueryFolderTree
      parameters:
        - name: projectId
          in: path
          description: ID of the Project
          required: true
          schema:
            type: string
          example: mtKDhe1U
        - name: includeQueries
          in: query
          description: Whether to include queries within each folder node
          required: false
          schema:
            type: boolean
            default: false
          example: true
        - name: rootFolderId
          in: query
          description: ID of the root folder to start the subtree from
          required: false
          schema:
            type: string
          example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Folder tree retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryFolderTreeResponse'
              example:
                tree:
                  - id: 550e8400-e29b-41d4-a716-446655440000
                    name: Reports
                    path: /Reports
                    children:
                      - id: 550e8400-e29b-41d4-a716-446655440001
                        name: Monthly
                        path: /Reports/Monthly
                        children: []
                        queries: []
                    queries:
                      - id: '709922802836177297'
                        displayName: Revenue Report
                        name: revenuereport
                        inputQuery: SELECT * FROM revenue
components:
  schemas:
    QueryFolderTreeResponse:
      type: object
      properties:
        tree:
          type: array
          description: Root-level nodes of the folder tree
          items:
            $ref: '#/components/schemas/QueryFolderTreeNode'
      description: Response containing the folder tree hierarchy
    QueryFolderTreeNode:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the folder (UUID)
        name:
          type: string
          description: Display name of the folder
        path:
          type: string
          description: Full path of the folder
        children:
          type: array
          description: Child folder nodes
          items:
            $ref: '#/components/schemas/QueryFolderTreeNode'
        queries:
          type: array
          description: Queries in this folder (present only when includeQueries=true)
          items:
            $ref: '#/components/schemas/Query'
      description: A node in the folder tree hierarchy
    Query:
      type: object
      properties:
        id:
          type: string
          description: The ID of the query.
        displayName:
          type: string
          description: The display name of the query.
        name:
          type: string
          description: >-
            The name of the query used in SQL, e.g. SELECT * FROM
            "peaka"."query"."<name>".
        inputQuery:
          type: string
          description: The SQL query.
        inputQueryRefId:
          type: string
          description: >-
            The reference id of the input query. For a MATERIALIZED query, the
            id of the original query it materializes.
          nullable: true
        queryType:
          type: string
          description: The type of the query.
          enum:
            - PLAIN
            - MATERIALIZED
        schedule:
          $ref: '#/components/schemas/MaterializedQuerySchedule'
        path:
          type: string
          description: >-
            The folder path of the query (e.g. "/analytics/dashboards"). Null if
            not in any folder.
          nullable: true
        folderId:
          type: string
          description: >-
            The ID of the folder containing this query. Null if not in any
            folder.
          nullable: true
      description: A saved query belonging to a project.
    MaterializedQuerySchedule:
      type: object
      properties:
        type:
          type: string
          description: Type of schedule.
          enum:
            - interval
            - cron
            - none
        cronExpression:
          type: string
          description: Cron expression. Set only when the schedule type is 'cron'.
          nullable: true
        repeatDuration:
          type: string
          description: ISO-8601 duration. Set only when the schedule type is 'interval'.
          nullable: true
        timezone:
          type: string
          description: >-
            IANA timezone used to evaluate the cron expression. Set only when
            the schedule type is 'cron'.
          nullable: true
      description: >-
        Schedule configuration of a materialized query. Provide EITHER an
        interval schedule (`type=interval` with `repeatDuration`) OR a cron
        schedule (`type=cron` with `cronExpression` and optional `timezone`).
        Use `type=none` for no schedule. The fields that do not apply to the
        chosen type are omitted.
      nullable: true
      example:
        type: cron
        cronExpression: 0 0 * * *
        timezone: UTC
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        Use the Authorization header with the value 'Bearer <apiKey>' to
        authenticate. Partner API Keys have full access; Project API Keys are
        limited to their project scope. Learn more:
        https://docs.peaka.com/api-reference/authentication
      scheme: bearer
      bearerFormat: Api Key

````