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

# List program members

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

<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 members of the program. Results can be filtered
by id, status, customer_id and created_at, and ordered by created_at, status or
customer_id (ascending or descending). The same field cannot be ordered both
ascending and descending at the same time.
Returns `404` when the program does not exist.

List items do not include the `cards` array - use the get-member endpoint to
retrieve a member with cards.

## Path parameters

- `programId` string, required

## Query parameters

- `limit` integer, nullable
- `order` union
  - string[]
  - '-created_at' | 'created_at' | 'status' | '-status' | 'customer_id' | '-customer_id'
- `cursor` string, nullable
- `filters` MemberListFilters — Filters for the members list. Each field accepts a `conditions` object; multiple field filters are combined with the `junction` (default AND).
  - `junction` 'AND' | 'OR', nullable — How multiple field filters are combined. Defaults to `AND`.
  - `id` MemberIdFilter — ID filter conditions for member 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[]
  - `status` MemberStatusFilter — Enum filter conditions for member status. Allowed values are `ACTIVE` and `INACTIVE`. At least one condition is required.
    - `conditions` object, required
      - `$is` union — Value equals. Single value or an array with exactly one value.
        - 'ACTIVE' | 'INACTIVE'
        - string[]
      - `$is_not` union — Value does not equal. Single value or an array with exactly one value.
        - 'ACTIVE' | 'INACTIVE'
        - string[]
      - `$in` union — Value is one of. Single value or an array of 1-10 values.
        - 'ACTIVE' | 'INACTIVE'
        - string[]
      - `$not_in` union — Value is not one of. Single value or an array of 1-10 values.
        - 'ACTIVE' | 'INACTIVE'
        - string[]
  - `customer_id` MemberCustomerIdFilter — ID filter conditions for customer 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[]
  - `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 members.

- MemberListResponse — Cursor-paginated list of members.
  - `data` Member[], required — Members on the current page (without the `cards` array).
    - `id` string, required — Unique member ID.
    - `customer_id` string, required — Unique Voucherify ID of the customer enrolled as this member.
    - `program_id` string, required — Unique Voucherify ID of the loyalty program the member belongs to.
    - `status` 'ACTIVE' | 'INACTIVE' | 'DELETED', required — Current member status. `INACTIVE` member can't earn points or redeem rewards.
    - `metadata` object, required — Free-form metadata attached to the member (empty object when none).
    - `created_at` string, date-time, required — Timestamp when the member was created (ISO 8601).
    - `updated_at` string, date-time, nullable, required — Timestamp when the member was last updated (ISO 8601), or `null` if never updated.
    - `object` 'member', required — Object type marker, always `member`.
  - `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)
