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

# List program activities

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

<Info>

<Badge color="gray">Documentation in progress</Badge>

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

</Info>

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 — Unique 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 — Unique 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/revisions/69be73b5cff0/schema)
