---
title: "Read Query Folder"
method: GET
path: "/data/projects/{projectId}/queries/folders/{folderId}"
tags: ["Data -- Query Folders"]
---

# Read Query Folder

`GET /data/projects/{projectId}/queries/folders/{folderId}`

## Request

- Base URL: `https://partner.peaka.studio/api/v1`
- URL: `https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/folders/{folderId}`
- Auth: HTTP bearer

Returns a single folder by its ID, including its direct child folders and the queries it contains.

## Path parameters

- `projectId` string, required
- `folderId` string, required

## Response `200`

Folder read successfully

- QueryFolderWithContentsResponse: A folder with its direct child folders and queries
  - `id` string: Unique identifier of the folder (UUID)
  - `name` string: Display name of the folder
  - `path` string: Full path of the folder in the hierarchy
  - `parentId` string: ID of the parent folder, null if root-level
  - `createdAt` string: Timestamp when the folder was created (ISO 8601)
  - `folders` QueryFolderItem[]: Direct child folders
    - `id` string: Unique identifier of the folder (UUID)
    - `name` string: Display name of the folder
    - `path` string: Full path of the folder in the hierarchy
    - `parentId` string: ID of the parent folder, null if root-level
    - `createdAt` string: Timestamp when the folder was created (ISO 8601)
  - `queries` Query[]: Queries contained in this folder
    - `id` string: The ID of the query.
    - `displayName` string: The display name of the query.
    - `name` string: The name of the query used in SQL, e.g. SELECT * FROM "peaka"."query"."<name>". For a MATERIALIZED query the materialized result is queryable as "peaka"."mtquery"."<name>".
    - `inputQuery` string: The SQL query. For a materialized query created from an existing query (via inputQueryRefId), this holds the snapshot of the source query's SQL resolved when the query was created or last updated with the reference.
    - `queryType` 'PLAIN' | 'MATERIALIZED': The type of the query.
    - `schedule` MaterializedQuerySchedule, nullable: 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.
      - `type` 'interval' | 'cron' | 'none': Type of schedule.
      - `cronExpression` string, nullable: UNIX cron expression (minute hour day-of-month month day-of-week), e.g. '0 0 * * *' for every day at midnight. Set only when the schedule type is 'cron'.
      - `repeatDuration` string, nullable: ISO-8601 duration between refreshes, e.g. 'PT6H' (every 6 hours), 'PT12H' (twice daily), 'P1D' (daily). Set only when the schedule type is 'interval'.
      - `timezone` string, nullable: IANA timezone used to evaluate the cron expression, e.g. 'UTC' or 'Europe/Istanbul'. Set only when the schedule type is 'cron'.
    - `path` string, nullable: The folder path of the query (e.g. "/analytics/dashboards"). Null if not in any folder.
    - `folderId` string, nullable: The ID of the folder containing this query. Null if not in any folder.

## Other responses

- `404`: Folder not found

---

[API](https://skmtc.dev/peaka/apis/peaka-gateway-api.md) · [All operations](https://skmtc.dev/peaka/apis/peaka-gateway-api/llms.txt) · [OpenAPI document](https://skmtc.dev/peaka/apis/peaka-gateway-api/revisions/e68b033a22d5?raw)
