---
title: "Get statistics"
method: GET
path: "/reports/statistics"
tags: ["Reports API"]
---

# Get statistics

`GET /reports/statistics`

Returns statistics for specified report types.

You need to specify the report types you want to retrieve in the `report_types` query parameter as a comma-separated list,
e.g. `report_types=sales_and_costs,profit`.

**Note**: You cannot get statistics for a period longer than 6 months.

#### Example

To get statistics in the default currency of a store for `sales_and_costs` and `profit` reports for August 2022, you can use the
following
URL: https://api.printful.com/reports/statistics?report_types=sales_and_costs,profit&date_from=2022-08-01&date_to=2022-08-31.

### Report types

Currently, the following report types are available:

| Report type                | Description                                              |
|----------------------------|----------------------------------------------------------|
| `sales_and_costs`          | Detailed information on sales and costs grouped by date. |
| `sales_and_costs_summary`  | Short information on sales and costs grouped by date.    |
| `printful_costs`           | Amount paid to Printful for fulfillment and shipping.    |
| `profit`                   | Profit in the specified period.                          |
| `total_paid_orders`        | The number of paid orders in the specified period.       |
| `costs_by_amount`          | Information on costs by amount grouped by date.          |
| `costs_by_product`         | Information on costs grouped by product.                 |
| `costs_by_variant`         | Information on costs grouped by variant.                 |
| `average_fulfillment_time` | Average time it took Printful to fulfill your orders.    |

The response structure for the specific reports is documented in the response schema (`result.store_statistics.[reportName]`).

## Query parameters

- `date_from` string, date, required
- `date_to` string, date, required
- `currency` string
- `report_types` string, required

## Headers

- `X-PF-Store-Id` string

## Response `200`

OK

- object
  - `code` integer — Response status code `200`
  - `result` Statistics — Statistics
    - `store_statistics` StoreStatistics[] — The statistics for each store (currently only a single store is supported).
      - `store_id` integer — The ID of the store for which the statistics are returned
      - `currency` string — The code of the currency in which the statistics are returned
      - `sales_and_costs` object[] — Sales and costs report
        - `date` string — The date of the value: day in `Y-m-d` format, month in `Y-m` format or "Total" for the first element of the list which shows the total values for the whole requested period
        - `sales` number — Order retail price data. Available only if retail price fields are properly set up on the integration's side
        - `fulfillment` number — Product fulfillment, digitization, branding, shipping costs and taxes that are charged by Printful
        - `profit` number — The difference between Sales and Fulfillment. If retail price data is not available, profit might be negative
        - `sales_discount` number — Any retail price discounts set up on the integration's side
        - `fulfillment_discount` number — Any fulfillment discounts (such as the monthly discount) set up on Printful's side
        - `sales_shipping` number — The retail shipping price that was paid by the buyer
        - `fulfillment_shipping` number — Shipping costs that were charged by Printful
      - `sales_and_costs_summary` object[] — Sales and costs summary report
        - `date` string — The date of the value: day in `Y-m-d` format, month in `Y-m` format or "Total" for the first element of the list which shows the total values for the whole requested period
        - `order_count` number — The order count in the aggregation period
        - `costs` number — Product fulfillment, digitization, branding, shipping costs and taxes that are charged by Printful
        - `profit` number — The difference between Sales and Fulfillment. If retail price data is not available, profit might be negative
      - `printful_costs` PrintfulCosts — Printful costs report
        - `value` number — Amount paid to Printful for fulfillment and shipping.
        - `relative_difference` number — Relative difference from the value from the previous period. -1 means 100% decrease, 1 means 100% increase. 0 is returned if there is no change or the previous value was 0.
      - `profit` Profit — Profit report
        - `value` number — The difference between Sales and Fulfillment. If retail price data is not available, profit might be negative
        - `relative_difference` number — Relative difference from the value from the previous period. -1 means 100% decrease, 1 means 100% increase. 0 is returned if there is no change or the previous value was 0.
      - `total_paid_orders` TotalPaidOrders — Total paid orders report
        - `value` number — Number of unique orders for period
        - `relative_difference` number — Relative difference from the value from the previous period. -1 means 100% decrease, 1 means 100% increase. 0 is returned if there is no change or the previous value was 0.
      - `costs_by_amount` object[] — Costs by amount report
        - `date` string — The date of the value: day in `Y-m-d` format, month in `Y-m` format or "Total" for the first element of the list which shows the total values for the whole requested period
        - `product_amount` number — Product & fulfillment costs
        - `digitization` number — Embroidery digitization costs
        - `branding` number — Pack-in costs
        - `vat` number — Tax amounts. If not applicable, it will be 0.
        - `sales_tax` number — Tax amounts. If not applicable, it will be 0.
        - `shipping` number — Shipping costs that were charged by Printful
        - `discount` number — Any fulfillment discounts (such as the monthly discount) set up on Printful's side
        - `total` number — Summary of all costs
      - `costs_by_product` object[] — Costs by product report
        - `product_id` integer — Product ID. See [Catalog API](#tag/Catalog-API).
        - `product_name` string — Product name.
        - `fulfillment` number — All fulfillment costs that are charged by Printful, excluding shipping.
        - `sales` number — Order retail price data. Available only if retail price fields are properly set up on the integration's side.
        - `quantity` integer — Total quantity of items ordered from this product in the selected period.
      - `costs_by_variant` object[] — Costs by variant report
        - `variant_id` integer — Variant ID. See [Catalog API](#tag/Catalog-API).
        - `variant_name` string — Variant name.
        - `product_id` integer — Product ID. See [Catalog API](#tag/Catalog-API).
        - `fulfillment` number — All fulfillment costs that are charged by Printful, excluding shipping.
        - `sales` number — Order retail price data. Available only if retail price fields are properly set up on the integration's side.
        - `quantity` integer — Total quantity of items ordered from this product in the selected period.
      - `average_fulfillment_time` AverageFulfillmentTime — Average fulfillment time report
        - `value` number — Average time it took Printful to fulfill your orders.
        - `relative_difference` number — Relative difference from the value from the previous period. -1 means 100% decrease, 1 means 100% increase. 0 is returned if there is no change or the previous value was 0.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not found

---

[API](https://skmtc.net/printful/apis/api-documentation-printful.md) · [All operations](https://skmtc.net/printful/apis/api-documentation-printful/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/printful/api-documentation-printful/revisions/18e2f2e178dd/schema)
