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

# List program activities

`GET /v2/loyalties/programs/{programId}/activities`

<Warning>

<Badge color="yellow">BETA endpoint</Badge>

This is a work-in-progress documentation of a BETA endpoint. The parameters, fields, request and response bodies, and other data may subject to change. If you want to share feedback or improvements, contact [Voucherify support](https://www.voucherify.io/contact-support) or your Technical Account Manager.

</Warning>

Returns a cursor-paginated list of activities recorded for a program (created, updated,
deleted, activated, deactivated and assignment changes). Supports filtering by activity
`id`, `type` and `created_at`.

## Path parameters

- `id` string, required

## Query parameters

- `filters` ProgramActivityListFilters — Filters accepted by the program activities list endpoint.
  - `junction` 'AND' | 'OR', nullable — Logical junction applied between field filters. Defaults to `AND`.
  - `id` ProgramActivityIdFilterConditions — Filter conditions for the activity `id` field (ID field type). Allowed conditions: `$is`, `$is_not`, `$in`, `$not_in`. Values must match the program activity id pattern `^laprg_[a-f0-9]+$`. Each condition accepts a single string or an array of strings (max 1 item for `$is`/`$is_not`, max 100 items for `$in`/`$not_in`).
    - `conditions` object, required
      - `$is` union — Field equals the given id.
        - string
        - string[]
      - `$is_not` union — Field does not equal the given id.
        - string
        - string[]
      - `$in` union — Field equals any of the given ids.
        - string
        - string[]
      - `$not_in` union — Field equals none of the given ids.
        - string
        - string[]
  - `type` ProgramActivityTypeFilterConditions — Filter conditions for the activity `type` field (ENUM field type). Allowed conditions: `$is`, `$is_not`, `$in`, `$not_in`. Allowed values are the program activity types. Each condition accepts a single value or an array of values (max 1 item for `$is`/`$is_not`, up to 10 items for `$in`/`$not_in`).
    - `conditions` object, required
      - `$is` union — Field equals the given type.
        - 'vl.program.created' | 'vl.program.updated' | 'vl.program.deleted' | 'vl.program.activated' | 'vl.program.deactivated' | 'vl.program.card_definition.assigned' | 'vl.program.card_definition.unassigned' | 'vl.program.earning_rule.assigned' | 'vl.program.earning_rule.unassigned' | 'vl.program.reward.assigned' | 'vl.program.reward.unassigned' | 'vl.program.reward.updated' | 'vl.program.tier_structure.assigned' | 'vl.program.tier_structure.unassigned'
        - string[]
      - `$is_not` union — Field does not equal the given type.
        - 'vl.program.created' | 'vl.program.updated' | 'vl.program.deleted' | 'vl.program.activated' | 'vl.program.deactivated' | 'vl.program.card_definition.assigned' | 'vl.program.card_definition.unassigned' | 'vl.program.earning_rule.assigned' | 'vl.program.earning_rule.unassigned' | 'vl.program.reward.assigned' | 'vl.program.reward.unassigned' | 'vl.program.reward.updated' | 'vl.program.tier_structure.assigned' | 'vl.program.tier_structure.unassigned'
        - string[]
      - `$in` union — Field equals any of the given types (up to 10).
        - 'vl.program.created' | 'vl.program.updated' | 'vl.program.deleted' | 'vl.program.activated' | 'vl.program.deactivated' | 'vl.program.card_definition.assigned' | 'vl.program.card_definition.unassigned' | 'vl.program.earning_rule.assigned' | 'vl.program.earning_rule.unassigned' | 'vl.program.reward.assigned' | 'vl.program.reward.unassigned' | 'vl.program.reward.updated' | 'vl.program.tier_structure.assigned' | 'vl.program.tier_structure.unassigned'
        - string[]
      - `$not_in` union — Field equals none of the given types (up to 10).
        - 'vl.program.created' | 'vl.program.updated' | 'vl.program.deleted' | 'vl.program.activated' | 'vl.program.deactivated' | 'vl.program.card_definition.assigned' | 'vl.program.card_definition.unassigned' | 'vl.program.earning_rule.assigned' | 'vl.program.earning_rule.unassigned' | 'vl.program.reward.assigned' | 'vl.program.reward.unassigned' | 'vl.program.reward.updated' | 'vl.program.tier_structure.assigned' | 'vl.program.tier_structure.unassigned'
        - string[]
  - `created_at` ProgramDateFilterConditions — Filter conditions for date fields (DATE field type). Allowed conditions: `$before`, `$after` (date values), `$is`, `$more_than`, `$less_than` (non-negative integers, interpreted as a number of days), `$has_value`, `$is_unknown`. Each condition accepts a single value or an array with a single value.
    - `conditions` object, required
      - `$before` union — Field is before the given date.
        - string, date-time
        - string[]
      - `$after` union — Field is after the given date.
        - string, date-time
        - string[]
      - `$is` union — Field is exactly the given number of days ago. A non-negative integer number of days.
        - string
        - string[]
      - `$more_than` union — Field is more than the given number of days ago. A non-negative integer number of days.
        - string
        - string[]
      - `$less_than` union — Field is less than the given number of days ago. A non-negative integer number of days.
        - string
        - string[]
      - `$has_value` string, nullable — Field has a value (is not null).
      - `$is_unknown` string, nullable — Field has no value (is null).
- `limit` union
  - number
  - string
- `order` union
  - string[]
  - 'created_at' | '-created_at'
- `cursor` string, nullable

## Response `200`

Paginated list of program activities.

- ProgramActivityListResponse — Cursor-paginated list of program activities.
  - `object` 'list' — Object type marker.
  - `data` ProgramActivity[] — Activities on the current page.
    - `id` string — Unique activity identifier.
    - `program_id` string — Identifier of the program the activity relates to.
    - `type` 'vl.program.created' | 'vl.program.updated' | 'vl.program.deleted' | 'vl.program.activated' | 'vl.program.deactivated' | 'vl.program.card_definition.assigned' | 'vl.program.card_definition.unassigned' | 'vl.program.earning_rule.assigned' | 'vl.program.earning_rule.unassigned' | 'vl.program.reward.assigned' | 'vl.program.reward.unassigned' | 'vl.program.reward.updated' | 'vl.program.tier_structure.assigned' | 'vl.program.tier_structure.unassigned' — Activity type.
    - `data` object — Activity payload. Always includes a `program` snapshot; assignment activities also include the assigned/unassigned resource and assignment objects.
    - `created_at` string, date-time — Activity timestamp (ISO 8601).
    - `group_id` string — Identifier grouping activities recorded within the same operation.
    - `source` ProgramActivitySource — Origin of the activity.
      - `channel` 'USER_PORTAL' | 'API' | 'CLIENT_API' | 'INTERNAL' — Channel the activity originated from.
      - `user` object — User that triggered the activity. Present for user-originated activities.
        - `id` string — User identifier.
      - `api_key` object — API key that triggered the activity. Present for API-originated activities.
        - `name` string — API key name.
        - `app_id` string — Application id of the API key.
        - `client_app_id` string — Client application id of the API key.
  - `cursor` ProgramListCursor — Cursor for fetching the next page of results. Present only when more results are available.
    - `next` string — Cursor id to pass as the `cursor` query parameter in the next request.
    - `expires_at` string, date-time — Timestamp after which the cursor expires and can no longer be used.

## Other responses

- `400` — Validation error - request body or query parameters failed validation, or the operation is not allowed in the current resource state.
- `404` — Resource not found.
- `409` — Conflict - e.g. duplicate resource or invalid state transition.
- `500` — Internal server error.

---

[API](https://skmtc.net/voucherifyio/apis/voucherify-loyalty-v2-api.md) · [All operations](https://skmtc.net/voucherifyio/apis/voucherify-loyalty-v2-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voucherifyio/voucherify-loyalty-v2-api/versions/f6f2f3388362/schema)
