---
title: "Customer overview report"
method: GET
path: "/shops/{SHOP_ID}/customer_analytics/report"
tags: ["Statistics customer analytics"]
---

# Customer overview report

`GET /shops/{SHOP_ID}/customer_analytics/report`

Get all figures of the Customer overview report (Statistics -> Customer screen) in a single call:
new/old customer counts and spending, gender, age groups, customer levels,
distribution by successful order count, purchase cycle and the paginated customer list.

To paginate / sort / search the customer list only (without recomputing the summary blocks),
call the same endpoint with `section=customer_orders` — the response then contains only `customer_orders`.

## Path parameters

- `SHOP_ID` integer, required

## Query parameters

- `startDate` integer
- `endDate` integer
- `page` integer
- `pageSize` integer
- `data_sort` string
- `search` string
- `section` 'customer_orders'
- `sale_form` 'all' | 'retail' | 'wholesale'
- `warehouse_id[]` string[]
- `order_sources[]` string[]
- `is_filter_exclude_source` 'true' | 'false'
- `order_tag[]` string[]
- `is_filter_tag_by_or` 'true' | 'false'
- `is_filter_exclude` 'true' | 'false'
- `selectedLevel[]` string[]
- `gender[]` string[]
- `typeCustomer[]` string[]

## Response `200`

Success

- object
  - `success` boolean — Success status
  - `data` object
    - `customer` object — Customer counts. Old customers were created before `startDate`, new customers within the period. `old_customer` is null when `startDate` is not provided.
      - `new_customer` integer — Number of new customers
      - `old_customer` integer, nullable — Number of old customers
    - `customer_purchased` object — Spending of new vs old customers (numeric string)
      - `new_customer` string, nullable — Spending of new customers
      - `old_customer` string, nullable — Spending of old customers
    - `customer_gender` object — Customer counts by gender
      - `male` integer — Male customers
      - `female` integer — Female customers
      - `unknown` integer — Customers without gender information
    - `customer_age` object — Customer counts and revenue by age group (based on date of birth)
      - `under_18` integer — Customers under 18
      - `revenue_under_18` number, nullable — Revenue from customers under 18
      - `from_18_to_24` integer — Customers aged 18-24
      - `revenue_from_18_to_24` number, nullable — Revenue from customers aged 18-24
      - `from_25_to_34` integer — Customers aged 25-34
      - `revenue_from_25_to_34` number, nullable — Revenue from customers aged 25-34
      - `from_35_to_44` integer — Customers aged 35-44
      - `revenue_from_35_to_44` number, nullable — Revenue from customers aged 35-44
      - `from_45_to_54` integer — Customers aged 45-54
      - `revenue_from_45_to_54` number, nullable — Revenue from customers aged 45-54
      - `over_55` integer — Customers over 55
      - `revenue_over_55` number, nullable — Revenue from customers over 55
      - `havent_birthday` integer — Customers without date of birth
      - `revenue_total` number, nullable — Total revenue of all age groups
    - `customer_level` object[] — Customer statistics by level. Customers having the shop's level-exclusion tags are not counted.
      - `id` string, nullable — Customer level ID (see `/shops/{SHOP_ID}/customer_levels`), null = no level
      - `count` integer — Number of customers in this level
      - `total_amount` string, nullable — Spending of customers in this level (numeric string)
    - `customer_order_count` object[] — Distribution of customers by number of successful orders
      - `order_success_quantity` integer — Number of successful orders
      - `customer_count` integer — Number of customers with that many successful orders
      - `amount` string, nullable — Total successful-order amount of those customers (numeric string)
    - `new_customer` object — New customer details
      - `old_customer` integer, nullable — Number of old customers
      - `analytic_new_customer` object
        - `count` integer — Number of new customers
        - `count_1` integer — New customers with exactly 1 order
        - `count_2` integer — New customers with more than 1 order
        - `count_tags` integer — New customers having tags
    - `customer_analytic` object[] — Purchase-cycle statistics. One row per cycle range: `range` = 0: single-purchase customers; 1 / 31 / 61: repeat customers with an average buying cycle of 1-30 / 31-60 / 61-90 days; 91: cycle over 90 days. Within each row, customers are counted by days elapsed since their last order (compared to `endDate`).
      - `range` integer — Cycle range key (0, 1, 31, 61, 91)
      - `from_1_to_30` integer — Customers whose last order was 1-30 days ago
      - `from_31_to_60` integer — Customers whose last order was 31-60 days ago
      - `from_61_to_90` integer — Customers whose last order was 61-90 days ago
      - `under_90` integer — Customers whose last order was more than 90 days ago
      - `total` integer — Total customers in this cycle range
    - `customer_orders` object — Paginated customer list
      - `page_number` integer — Current page
      - `page_size` integer — Number of customers per page
      - `total_entries` integer — Total number of customers
      - `total_pages` integer, nullable — Total number of pages
      - `data` object[]
        - `id` string — Shop customer ID
        - `name` string — Customer name
        - `phone_number` string[] — Customer phone numbers
        - `currency` string, nullable — Customer currency
        - `order_count` integer — Number of orders
        - `order_success_count` integer — Number of successful orders
        - `order_return_count` integer — Number of returned orders
        - `order_success_amount` number — Amount spent on successful orders
        - `customer` object, nullable — Linked global customer information
          - `id` string — Customer ID
          - `name` string — Customer name
          - `fb_id` string, nullable — Facebook ID
          - `psid` string, nullable — Page-scoped ID
          - `global_id` string, nullable — Global customer ID

---

[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)
