---
title: "List program rewards daily reports"
method: GET
path: "/v2/loyalties/programs/{programId}/reports/rewards/daily"
tags: ["Programs"]
---

# List program rewards daily reports

`GET /v2/loyalties/programs/{programId}/reports/rewards/daily`

## Request

- Base URL: `https://api.voucherify.io`
- URL: `https://api.voucherify.io/v2/loyalties/programs/{programId}/reports/rewards/daily`
- Auth: one of:
  - API key in header `X-App-Id` and API key in header `X-App-Token`
  - HTTP bearer

Returns aggregated reward-purchase statistics for the program over the given date range and resolution, optionally filtered by reward. Each row covers one reward and one period with recorded purchases. Periods without recorded purchases are omitted. `failures_breakdown` is always an empty object. A filter that matches no rows returns an empty `data` array.

The date range is limited per resolution:
- 90 days for `day`,
- 12 weeks for `week`,
- 12 months for `month`,
- 4 quarters for `quarter`,
- `start_date` must be before `end_date`,
- `start_date` and `end_date` are inclusive.

Returns `400` when query validation fails. Returns `404` when the program does not exist.

## Query parameters

- `start_date` string, date, required
- `end_date` string, date, required
- `resolution` 'day' | 'week' | 'month' | 'quarter', required
- `filters` RewardsReportListFilters
  - `junction` 'AND' | 'OR', nullable: Joins the field filters. Allowed values are `AND` and `OR`. Defaults to `AND`.
  - `reward_id` RewardsReportFilterRewardIdConditions: ID filter conditions for reward ID. Values must match pattern `^lrew_[a-f0-9]+$`. `$is` and `$is_not` accept a single value (string or 1-element array). `$in` and `$not_in` accept a string or an array of 1-100 values.
    - `conditions` object, required
      - `$is` union: Matches one value. A string or a one-element array. Format `lrew_[a-f0-9]+`.
        - string
        - string[]
      - `$is_not` union: Excludes one value. A string or a one-element array. Format `lrew_[a-f0-9]+`.
        - string
        - string[]
      - `$in` union: Matches any of the values. A string or an array of 1 to 100 values. Format `lrew_[a-f0-9]+`.
        - string
        - string[]
      - `$not_in` union: Excludes any of the values. A string or an array of 1 to 100 values. Format `lrew_[a-f0-9]+`.
        - string
        - string[]

## Response `200`

Program rewards daily report.

- LoyaltiesProgramsReportsRewardsDailyListResponseBody: Response body schema for **GET** `/v2/loyalties/programs/{programId}/reports/rewards/daily`.
  - `data` RewardsReportDailyEntry[], required: List of report entries, one per reward and aggregation period with recorded purchases, ordered by `date` ascending. Empty when no purchases were recorded in the range.
    - `date` string, date, required: Identifies the start of the truncated aggregation period (`YYYY-MM-DD`). For `week` this is Monday. For `month` this is the first day. For `quarter` this is the quarter start.
    - `reward_id` string, required: Identifies the reward (`lrew_...`).
    - `success_count` number, required: Counts approved reward purchases in the period.
    - `failures_count` number, required: Counts reward purchase attempts that failed in the period.
    - `failures_breakdown` object, required: Always an empty object even if `failures_count` is above zero.
    - `object` 'program_rewards_daily_report', required: Object type marker. Always `program_rewards_daily_report`.
  - `object` 'report', required: Object type marker. Always `report`.

## Other responses

- `400`: Query parameters failed validation, or `start_date` is not before `end_date`.
- `404`: Program not found.
- `500`: Internal server error.

## Changes

- **2026-10-14** (v2) `d29b33490051`: 1 info
  - for the `query` request parameter `filters`, the type was generalized from `object` to no type
- **2026-10-14** (v2) `be14b3318eb3`: 1 breaking, 1 info
  - for the `query` request parameter `filters`, the type changed from no type to `object`
  - api operation id `getProgramRewardsDailyReport` removed and replaced with `listProgramRewardsDailyReports`
- **2026-10-14** (v2) `6a418ac8b7b1`: 2 info
  - api operation id `listProgramRewardsDailyReports` removed and replaced with `getProgramRewardsDailyReport`
  - for the `query` request parameter `filters`, the type was generalized from `object` to no type
- **2026-10-14** (v2) `f0e2ed1d9df6`: 1 info
  - api operation id `getProgramRewardsDailyReport` removed and replaced with `listProgramRewardsDailyReports`
- **2026-10-13** (v2) `1e528b6c500d`: 1 info
  - api operation id `listProgramRewardsDailyReports` removed and replaced with `getProgramRewardsDailyReport`

[Operation history](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/changes/v2/loyalties/programs/:programId/reports/rewards/daily/get.md)

---

[API](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api.md) - [All operations](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/revisions/e0d9f2d2532f?raw)
