---
title: "List of custom statistic folders"
method: GET
path: "/shops/{SHOP_ID}/statistic_custom/folders"
tags: ["Statistics"]
---

# List of custom statistic folders

`GET /shops/{SHOP_ID}/statistic_custom/folders`

Get list of custom statistic folders and their report items (folder_items). Each folder groups related custom reports configured for the shop (e.g. revenue, orders, products, finance, debts).

## Path parameters

- `SHOP_ID` integer, required

## Response `200`

Success

- object
  - `success` boolean — Success status
  - `folders` object[] — List of custom statistic folders
    - `name` string — Folder name (system key)
    - `label` string — Folder display label
    - `order` integer — Display order
    - `shop_id` integer — Shop ID
    - `creator_id` string, nullable — Creator user ID (null for system default folders)
    - `last_editor_id` string, nullable — Last editor user ID
    - `can_remove` boolean — Whether the folder can be removed
    - `is_removed` boolean, nullable — Whether the folder is removed
    - `setting` object, nullable — Folder-level settings
    - `total_price_ranges` object[], nullable — Price range buckets configured for the folder
    - `inserted_at` string, date-time — Created at
    - `updated_at` string, date-time — Updated at
    - `folder_items` object[] — List of custom report items in the folder
      - `id` string — Report item ID
      - `name` string — Report name (system key or custom title)
      - `label` string, nullable — Report display label
      - `description` string, nullable — Report description
      - `folder_name` string — Parent folder system name
      - `parent_id` string, nullable — Parent report item ID (for nested items)
      - `order` integer — Display order within the folder
      - `shop_id` integer — Shop ID
      - `creator_id` string, nullable — Creator user ID
      - `last_editor_id` string, nullable — Last editor user ID
      - `can_remove` boolean — Whether the report can be removed
      - `is_removed` boolean, nullable — Whether the report is removed
      - `attributes` string[], nullable — Group-by attributes (e.g. "Time.day", "Variation.product_id", "Order.source")
      - `fields` string[] — Selected metric fields (e.g. "price", "revenue", "profit")
      - `filter` union — Report filter. Either an array of filter conditions or an object; each entry is keyed by attribute name with the filter value
        - object[]
        - object
      - `children` object[] — Nested report items
      - `charts` object[], nullable — Chart configurations rendered for this report
        - `field` string — Metric field plotted by the chart
        - `type` string — Chart type (e.g. "bar-chart", "line-chart")
        - `top` string — Top-N filter (e.g. "all", "10")
        - `width` integer — Chart width in percent
      - `compare_ranges` object — Comparison range configuration
        - `chart` string — Comparison chart type
        - `field` string, nullable — Field to compare
        - `ranges` object[] — Comparison ranges
          - `range` string — Range value
      - `fill_color` boolean — Whether rows are color-filled in the report
      - `setting` object — Per-report setting. Common keys: - `success_record` ('inserted_at' | 'updated_at' | 'success_record'): when revenue is counted - `success_status` (integer or string, e.g. 0, 1, 3, 'send_to_partner'): order status that counts as success - `returned_record` ('inserted_at' | 'updated_at' | 'success_record'): when returns are deducted - `returned_status` (integer): order status counted as returned - `user_type` ('create' | 'update' | 'assign' | 'care' | 'marketer'): how to attribute orders to staff - `product_price_range` (array): product price buckets
      - `sort_by_field` object, nullable — Sort configuration. Either a single sort object `{columnKey, field, order}`, a multi-sort wrapper `{multi: [...]}`, or an empty object/null when not set.
        - `columnKey` string — Column key being sorted
        - `field` string — Field being sorted
        - `order` 'ascend' | 'descend' — Sort direction
        - `multi` object[] — Multi-column sort definitions
          - `columnKey` string
          - `field` string
          - `order` 'ascend' | 'descend'
      - `time_range` string[] — Time range for the report. Values may be: - Number of days as string (e.g. "1", "7", "30", "90") - Keyword (e.g. "monthAgo") - Two ISO date-time strings for an explicit range - Empty array for no preset
      - `users_can_see` string[], nullable — User IDs allowed to view this report (null means no restriction)
      - `inserted_at` string, date-time — Created at
      - `updated_at` string, date-time — Updated at

---

[API](https://skmtc.dev/pancake/apis/pancake-pos-open-api.md) · [All operations](https://skmtc.dev/pancake/apis/pancake-pos-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pancake/pancake-pos-open-api/revisions/acb70aa4b3f5/schema)
