---
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`

<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 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` DateFilter — Date filter conditions. `$before`/`$after` take date strings (ISO 8601); `$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, date-time
        - string[]
      - `$after` union — Date is after the given date.
        - string, date-time
        - string[]
      - `$is` union — Date matches the given non-negative integer value.
        - string, date-time
        - 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` ListCursor, 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/revisions/69be73b5cff0/schema)
