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

# List member activities

`GET /v2/loyalties/programs/{programId}/members/{memberId}/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 the member (created,
deleted, activated, deactivated, card assigned, card unassigned). Results can be
filtered by id, type and created_at. Returns 404 when the program or member does
not exist.

## Path parameters

- `programId` string, required
- `memberId` string, required

## Query parameters

- `limit` integer, nullable
- `order` union
  - string[]
  - 'created_at' | '-created_at'
- `cursor` string, nullable
- `filters` MemberActivityListFilters — Filters for the member activities list.
  - `junction` 'AND' | 'OR', nullable — How multiple field filters are combined. Defaults to `AND`.
  - `id` MemberActivityIdFilter — ID filter conditions for member activity IDs. At least one condition is required.
    - `conditions` object, required
      - `$is` union — Value equals. Single value or an array with exactly one value.
        - string
        - string[]
      - `$is_not` union — Value does not equal. Single value or an array with exactly one value.
        - string
        - string[]
      - `$in` union — Value is one of. Single value or an array of 1-100 values.
        - string
        - string[]
      - `$not_in` union — Value is not one of. Single value or an array of 1-100 values.
        - string
        - string[]
  - `type` MemberActivityTypeFilter — Enum filter conditions for member activity types. At least one condition is required.
    - `conditions` object, required
      - `$is` union — Value equals. Single value or an array with exactly one value.
        - 'vl.member.created' | 'vl.member.updated' | 'vl.member.deleted' | 'vl.member.activated' | 'vl.member.deactivated' | 'vl.member.card.assigned' | 'vl.member.card.unassigned'
        - string[]
      - `$is_not` union — Value does not equal. Single value or an array with exactly one value.
        - 'vl.member.created' | 'vl.member.updated' | 'vl.member.deleted' | 'vl.member.activated' | 'vl.member.deactivated' | 'vl.member.card.assigned' | 'vl.member.card.unassigned'
        - string[]
      - `$in` union — Value is one of. Single value or an array of 1-10 values.
        - 'vl.member.created' | 'vl.member.updated' | 'vl.member.deleted' | 'vl.member.activated' | 'vl.member.deactivated' | 'vl.member.card.assigned' | 'vl.member.card.unassigned'
        - string[]
      - `$not_in` union — Value is not one of. Single value or an array of 1-10 values.
        - 'vl.member.created' | 'vl.member.updated' | 'vl.member.deleted' | 'vl.member.activated' | 'vl.member.deactivated' | 'vl.member.card.assigned' | 'vl.member.card.unassigned'
        - string[]
  - `created_at` MemberDateFilter — Date filter conditions. `$before`/`$after` take date strings; `$is`, `$more_than`, `$less_than` take non-negative integers; `$has_value`/`$is_unknown` are presence checks. Each condition accepts a single value or an array with exactly one value. At least one condition is required.
    - `conditions` object, required
      - `$before` union — Date is before the given date.
        - string
        - string[]
      - `$after` union — Date is after the given date.
        - string
        - string[]
      - `$is` union — Date matches the given non-negative integer value.
        - string
        - string[]
      - `$more_than` union — More than the given non-negative integer value.
        - string
        - string[]
      - `$less_than` union — Less than the given non-negative integer value.
        - string
        - string[]
      - `$has_value` string, nullable — Field has a value (presence check).
      - `$is_unknown` string, nullable — Field has no value (absence check).

## Response `200`

Cursor-paginated list of member activities.

- MemberActivityListResponse — Cursor-paginated list of member activities.
  - `data` MemberActivity[], required — Member activities on the current page.
    - `id` string, required — Unique activity ID.
    - `member_id` string, required — ID of the member the activity relates to.
    - `type` 'vl.member.created' | 'vl.member.updated' | 'vl.member.deleted' | 'vl.member.activated' | 'vl.member.deactivated' | 'vl.member.card.assigned' | 'vl.member.card.unassigned', required — Activity type.
    - `data` object, required — Activity payload - snapshots of the objects involved at the time of the activity (e.g. `member` and `program` objects for member lifecycle activities).
    - `created_at` string, date-time, required — Timestamp when the activity was recorded (ISO 8601).
    - `group_id` string — ID grouping activities recorded within the same request.
    - `source` MemberActivitySource — Origin of an activity.
      - `channel` 'USER_PORTAL' | 'API' | 'CLIENT_API' | 'INTERNAL' — Channel through which the activity was triggered.
      - `user` object — The dashboard user who triggered the activity. Omitted when not applicable.
        - `id` string — User ID.
      - `api_key` object — The API key used to trigger the activity. Omitted when not applicable.
        - `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` MemberListCursor, required — Pagination cursor.
    - `next` string, required — Cursor value to pass as the `cursor` query parameter to fetch the next page.
    - `expires_at` string, date-time — Timestamp when the cursor expires.
  - `object` 'list', required — Object type marker, always `list`.

## 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)
