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

# List program rewards spendings daily reports

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

## Request

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

Returns aggregated points spent on reward purchases for the program over the given date range and resolution. Each row covers one reward, reward cost, reward spending, card definition, and period with an approved point spend. Periods without an approved point spend are omitted. Optionally filters by reward, cost, spending, and card definition. 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` RewardsSpendingsReportListFilters: Filters for program rewards spendings reports.
  - `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[]
  - `card_definition_id` ReportCardDefinitionIdFilterConditions: ID filter conditions for card definition IDs. Values must match pattern `^lcdef_[a-f0-9]+$`. `$is`/`$is_not` accept a single value (string or 1-element array); `$in`/`$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 `lcdef_[a-f0-9]+`.
        - string
        - string[]
      - `$is_not` union: Excludes one value. A string or a one-element array. Format `lcdef_[a-f0-9]+`.
        - string
        - string[]
      - `$in` union: Matches any of the values. A string or an array of 1 to 100 values. Format `lcdef_[a-f0-9]+`.
        - string
        - string[]
      - `$not_in` union: Excludes any of the values. A string or an array of 1 to 100 values. Format `lcdef_[a-f0-9]+`.
        - string
        - string[]
  - `cost_id` RewardsSpendingsReportFilterCostIdConditions: ID filter conditions for reward cost ID. Values must match pattern `^lrcst_[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 `lrcst_[a-f0-9]+`.
        - string
        - string[]
      - `$is_not` union: Excludes one value. A string or a one-element array. Format `lrcst_[a-f0-9]+`.
        - string
        - string[]
      - `$in` union: Matches any of the values. A string or an array of 1 to 100 values. Format `lrcst_[a-f0-9]+`.
        - string
        - string[]
      - `$not_in` union: Excludes any of the values. A string or an array of 1 to 100 values. Format `lrcst_[a-f0-9]+`.
        - string
        - string[]
  - `spending_id` RewardsSpendingsReportFilterSpendingIdConditions: ID filter conditions for reward spending ID. Values must match pattern `^lrspn_[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 `lrspn_[a-f0-9]+`.
        - string
        - string[]
      - `$is_not` union: Excludes one value. A string or a one-element array. Format `lrspn_[a-f0-9]+`.
        - string
        - string[]
      - `$in` union: Matches any of the values. A string or an array of 1 to 100 values. Format `lrspn_[a-f0-9]+`.
        - string
        - string[]
      - `$not_in` union: Excludes any of the values. A string or an array of 1 to 100 values. Format `lrspn_[a-f0-9]+`.
        - string
        - string[]

## Response `200`

Program rewards spendings daily report.

- LoyaltiesProgramsReportsRewardsSpendingsDailyListResponseBody: Response body schema for **GET** `/v2/loyalties/programs/{programId}/reports/rewards/spendings/daily`.
  - `data` RewardsSpendingsReportDailyEntry[], required: List of report entries, one per reward, cost, spending, card definition, and aggregation period with an approved point spend, ordered by `date` ascending. Empty when no approved point spend was recorded in the range.
    - `reward_id` string, required: Identifies the reward (`lrew_...`).
    - `cost_id` string, required: Identifies the reward cost (`lrcst_...`).
    - `spending_id` string, required: Identifies the reward spending (`lrspn_...`).
    - `card_definition_id` string, required: Identifies the card definition (`lcdef_...`).
    - `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.
    - `success_count` number, required: Counts approved reward point spends in the period.
    - `points` number, required: Totals points spent on those reward spends in the period.
    - `object` 'program_rewards_spendings_daily_report', required: Object type marker. Always `program_rewards_spendings_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`: 9 breaking, 2 info
  - the `data/items/` response's property type changed from `object` to no type for status `200`
  - removed the required property `data/items/card_definition_id` from the response with the `200` status
  - removed the required property `data/items/cost_id` from the response with the `200` status
  - removed the required property `data/items/date` from the response with the `200` status
  - …7 more
- **2026-10-14** (v2) `be14b3318eb3`: 2 breaking, 10 info
  - for the `query` request parameter `filters`, the type changed from no type to `object`
  - the `data/items/` response's property type changed from no type to `object` for status `200`
  - api operation id `getProgramRewardsSpendingsDailyReport` removed and replaced with `listProgramRewardsSpendingsDailyReports`
  - removed `#/components/schemas/RewardsSpendingsReportEntryBase, subschema #2` from the `data/items/` response property `allOf` list for the response status `200`
  - …8 more
- **2026-10-14** (v2) `6a418ac8b7b1`: 9 breaking, 3 info
  - the `data/items/` response's property type changed from `object` to no type for status `200`
  - removed the required property `data/items/card_definition_id` from the response with the `200` status
  - removed the required property `data/items/cost_id` from the response with the `200` status
  - removed the required property `data/items/date` from the response with the `200` status
  - …8 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/changes/v2/loyalties/programs/:programId/reports/rewards/spendings/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)
