---
title: "Get sales data with filtering"
method: POST
path: "/public/get-sales-data"
tags: ["Analytics"]
---

# Get sales data with filtering

`POST /public/get-sales-data`

Get sales data with revenue breakdown, filtered by month/week. This is a public API that requires a fermion API key.

Authentication with the "FERMION-API-KEY" header is required to use this endpoint.

Rate limit: Maximum 30 requests in a window of 1m.

## Request body

- object
  - `data` object[], required
    - `data` object, required
      - `from` string, required — Start date - accepts formats like "2024-01-01", "Jan 1 2024", "1/1/2024", "January 1, 2024", "01-Jan-2024"
      - `to` string, required — End date - accepts formats like "2024-12-31", "Dec 31 2024", "12/31/2024", "December 31, 2024", "31-Dec-2024"
      - `groupBy` 'week' | 'month', required — Group revenue data by week or month
      - `timezone` union — Timezone for date calculations (e.g., "America/New_York")
        - string
        - unknown
        - unknown
      - `shouldIncludeBreakdown` boolean — Include detailed breakdown of revenue by product type
      - `productTypeFilter` union — Filter sales by specific product types (must not be empty if provided)
        - string[]
        - unknown
        - unknown
      - `paymentStatusFilter` union — Filter sales by payment status (must not be empty if provided)
        - string[]
        - unknown
        - unknown

## Response `200`

API Response Body

- object[]
  - `output` union, required
    - object
      - `status` 'ok', required
      - `data` object, required
        - `summary` object, required
          - `totalRevenueInrPaise` number, required — Total revenue for the period in INR paise
          - `totalSalesCount` number, required — Total number of sales for the period
          - `averageSaleValueInrPaise` number, required — Average sale value in INR paise
          - `periodStart` string, date-time, required — Start of the reporting period
          - `periodEnd` string, date-time, required — End of the reporting period
        - `revenueByPeriod` object[], required — Revenue data grouped by the specified period
          - `period` string, required — Period label (e.g., "1st Jan 2024", "Week 1 2024", "Jan 2024")
          - `startDate` string, date-time, required — Start date of this period
          - `endDate` string, date-time, required — End date of this period
          - `totalRevenuePaise` number, required — Total revenue for this period in paise
          - `salesCount` number, required — Number of sales in this period
          - `breakdown` union — Revenue breakdown by product type (if includeBreakdown is true)
            - object[]
              - …
            - unknown
            - unknown
        - `topProducts` object[], required — Top 10 products by revenue for the period
          - `productId` string, required — Unique identifier of the product
          - `productName` string, required — Name of the product
          - `productType` 'Course' | 'LearningPath' | 'Pro' | 'FermionDigitalProduct' | 'FermionLedgerInvoicePayment' | 'FermionSchoolPlanCycleInvoice' | 'FermionCourse', required — Type of product
          - `totalRevenuePaise` number, required — Total revenue from this product in paise
          - `salesCount` number, required — Number of sales for this product
    - object
      - `status` 'error', required
      - `errorMessage` string, required

---

[API](https://skmtc.net/fermion/apis/fermion-backend-api.md) · [All operations](https://skmtc.net/fermion/apis/fermion-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fermion/fermion-backend-api/revisions/7ce364c8820b/schema)
