List Member Promotions

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Returns a paginated list of loyalty promotions associated with a specific member. Use the optional query parameter filters to narrow results by enrolment status, promotion identifier, or promotion ID.

Example request

curl -X GET "https://{host}/v3/members/{memberId}/promotions?page=0&size=10" \
  -H "Authorization: Basic {token}"

Prerequisites

  • Authentication: Basic authentication. Provide a valid Authorization header.
  • Default access group.

Resource information

PaginationYes
Batch supportNo

Path parameters

FieldTypeRequiredDescription
memberIdLongYesUnique customer identifier of the member.

Query parameters

FieldTypeRequiredDescription
pageIntegerOptionalPage number for pagination (0-indexed). Defaults to 0.
sizeIntegerOptionalNumber of promotions to return per page. For example, if there are 37 total promotions and size is 10, the first page returns 10 promotions. Defaults to 10. The maximum supported value is 50.
memberEnrollmentStatusStringOptionalFilters promotions by the member's enrolment status. Supported values: PENDING_ENROLLMENT, PENDING_OPT_IN, AVAILABLE_TO_REDEEM, REDEEMED, EXPIRED. Case-sensitive.
promotionIdentifierStringOptionalFilters by the promotion's unique string identifier. The identifier must resolve to a promotion in ACTIVE, PAUSED, or STOPPED state.
promotionIdIntegerOptionalFilters by the promotion's numeric ID. The promotion must be in ACTIVE, PAUSED, or STOPPED state.
includeActivitySummaryBooleanOptionalWhen true, each promotion in the response also includes an activitySummaries breakdown of benefits the member has earned from that promotion's activities. Defaults to false. Only supported on this listing endpoint — not available on the single promotion view endpoint.

API Quick Reference

GET /v3/members/{memberId}/promotions
   └─ Response
       ├─ pageDetails (object)
       │   ├─ pageNumber (number)
       │   ├─ pageSize (number)
       │   ├─ totalEntries (number)
       │   └─ pageCount (number)
       ├─ memberId (number)
       └─ promotions []
           ├─ promotionId (number)
           ├─ promotionName (string)
           ├─ programId (number)
           ├─ startDateISO (string)
           ├─ endDateISO (string)
           ├─ timezoneName (string)
           ├─ promotionIdentifier (string)
           ├─ description (string)
           ├─ promotionType (string)
           ├─ loyaltyEarningType (string)
           ├─ active (boolean)
           ├─ latestOptInDateISO (string)
           ├─ latestOptOutDateISO (string)
           └─ activitySummaries []
               ├─ activityId (string)
               ├─ activityName (string)
               └─ benefitsEarned []
                   ├─ type (string)
                   ├─ value (string)
                   ├─ earnedOn (string)
                   └─ eventLogId (string)

Example response

{
  "pageDetails": {
    "pageNumber": 0,
    "pageSize": 10,
    "totalEntries": 37,
    "pageCount": 4
  },
  "memberId": 388757626,
  "promotions": [
    {
      "promotionId": 126779,
      "promotionName": "UAT ULP - Updating enrolment type using API",
      "programId": 973,
      "startDateISO": "2026-03-18T06:11:00Z",
      "endDateISO": "2026-03-19T06:11:59Z",
      "timezoneName": "Indian/Maldives",
      "promotionIdentifier": "f385f258-c315-412c-b910-7bd8a8d89427",
      "description": "UAT ULP - Updating enrolment type using API",
      "promotionType": "LOYALTY_EARNING",
      "loyaltyEarningType": "DIRECT_EARN",
      "active": true,
      "latestOptInDateISO": "2026-03-18T06:22:40Z",
      "latestOptOutDateISO": "2026-03-18T06:22:28Z"
    },
    {
      "promotionId": 126635,
      "promotionName": "Single Activity Promotion2",
      "programId": 973,
      "startDateISO": "2026-03-01T05:11:00Z",
      "endDateISO": "2026-03-31T05:11:59Z",
      "timezoneName": "Asia/Kolkata",
      "promotionIdentifier": "single-activity-promotion2",
      "description": "A promotion with single activity",
      "promotionType": "GENERIC",
      "active": true
    }
  ]
}
{
  "pageDetails": {
    "pageNumber": 0,
    "pageSize": 10,
    "totalEntries": 37,
    "pageCount": 4
  },
  "memberId": 388757626,
  "promotions": [
    {
      "promotionId": 126779,
      "promotionName": "UAT ULP - Updating enrolment type using API",
      "programId": 973,
      "startDateISO": "2026-03-18T06:11:00Z",
      "endDateISO": "2026-03-19T06:11:59Z",
      "timezoneName": "Indian/Maldives",
      "promotionIdentifier": "f385f258-c315-412c-b910-7bd8a8d89427",
      "description": "UAT ULP - Updating enrolment type using API",
      "promotionType": "LOYALTY_EARNING",
      "loyaltyEarningType": "DIRECT_EARN",
      "active": true,
      "latestOptInDateISO": "2026-03-18T06:22:40Z",
      "latestOptOutDateISO": "2026-03-18T06:22:28Z",
      "activitySummaries": [
        {
          "activityId": "592b840e-9ced-4f7c-8692-35189c3428ae",
          "activityName": "Activity 1",
          "benefitsEarned": [
            {
              "type": "REGULAR_POINTS",
              "value": "10",
              "earnedOn": "2026-03-18T06:25:51Z",
              "eventLogId": "823456789"
            }
          ]
        }
      ]
    },
    {
      "promotionId": 126635,
      "promotionName": "Single Activity Promotion2",
      "programId": 973,
      "startDateISO": "2026-03-01T05:11:00Z",
      "endDateISO": "2026-03-31T05:11:59Z",
      "timezoneName": "Asia/Kolkata",
      "promotionIdentifier": "single-activity-promotion2",
      "description": "A promotion with single activity",
      "promotionType": "GENERIC",
      "active": true
    }
  ]
}

Response parameters

FieldTypeDescription
pageDetailsObjectObject containing pagination metadata for the response.
.pageNumberIntegerThe zero-based index of the current page in the result set.
.pageSizeIntegerThe number of promotions returned in the current page of results.
.totalEntriesIntegerThe total count of promotions matching the specified filters across all pages.
.pageCountIntegerThe total number of pages available at the specified page size.
memberIdLongUnique identifier of the member whose promotions are being retrieved.
promotionsArrayThe list of promotions the member is enrolled in or eligible to participate in.
.promotionIdLongUnique identifier for the promotion.
.promotionNameStringThe display name of the promotion.
.programIdIntegerThe unique identifier of the loyalty program under which this promotion operates.
.startDateISOString (date-time)Indicates the promotion's start date and time in ISO 8601 format, returned in the server time zone.

EU server example: 2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example: 2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.endDateISOString (date-time)Indicates the promotion's end date and time in ISO 8601 format, returned in the server time zone.

EU server example: 2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example: 2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.timezoneNameStringIANA time zone name that governs how the promotion's start, end, and opt-in dates are evaluated and displayed.
.promotionIdentifierStringThe human-readable identifier used to reference the promotion across systems, distinct from the system-generated ID.
.descriptionStringThe text describing the promotion's offer and key benefits to the member.
.promotionTypeStringThe category of the promotion. Possible values: GENERIC: benefits are provided directly once the customer meets the promotion's requirements, LOYALTY: the promotion is issued to the customer based on prior behavior or transactions, and benefits are provided once the customer meets the criteria on a later transaction, LOYALTY_EARNING: the customer is enrolled, the promotion is then issued based on specific criteria, and the customer earns the benefit by meeting the issued promotion's requirements.
.loyaltyEarningTypeStringThe earning sub-type for LOYALTY_EARNING promotions. Possible values: DIRECT_EARN: the customer earns the benefit directly from a qualifying transaction, with no separate opt-in step, ISSUE_AND_EARN: the customer can opt in multiple times within the enrolment window, earning the benefit on each qualifying opt-in. Present only when set; absent for other promotionType values.
.activeBooleanIndicates if the promotion is currently eligible for member enrollment and participation.
.latestOptInDateISOString (date-time)The member's most recent opt-in date and time for this promotion, in ISO 8601 format, returned in the server time zone.

EU server example: 2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example: 2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Present only if the member has opted in to this promotion at least once.
.latestOptOutDateISOString (date-time)The member's most recent opt-out date and time for this promotion, in ISO 8601 format, returned in the server time zone. Same server-time-zone behavior as latestOptInDateISO.

Present only if the member has opted out of this promotion at least once.
.activitySummariesArrayPer-activity breakdown of benefits the member has earned from this promotion. Present only when the request includes includeActivitySummary=true and the member has earned at least one benefit on this promotion.
..activityIdStringUnique identifier of the activity within the promotion.
..activityNameStringDisplay name of the activity.
..benefitsEarnedArrayThe benefits the member has earned from this activity, most recent first. Benefits that have been fully returned or reversed are excluded.
...typeStringCategory of the benefit earned. Possible values: REGULAR_POINTS, TRACKERS, PROMISED_POINTS, EXTERNAL_TRIGGER_BASED_POINTS, ALTERNATE_CURRENCIES.
...valueStringThe amount of the benefit earned.
...earnedOnString (date-time)Indicates when the benefit was earned, in ISO 8601 format, returned in the server time zone. Same server-time-zone behavior as latestOptInDateISO.
...eventLogIdStringThe event transaction ID that generated this benefit.

Error and warning codes

CodeTypeDescription
310192ErrorMember not found for the given memberId. Provide a valid member identifier.
310193ErrorNo ACTIVE, PAUSED, or STOPPED promotion found for the given promotionIdentifier.
310194ErrorNo ACTIVE, PAUSED, or STOPPED promotion found for the given promotionId.
310195Errorsize exceeds the maximum allowed limit of 50.
Note: The API's own error message currently states the limit as 20 — the actual enforced maximum is 50.
310196ErrorInvalid value for memberEnrollmentStatus. Must be one of: PENDING_ENROLLMENT, PENDING_OPT_IN, AVAILABLE_TO_REDEEM, REDEEMED, EXPIRED. Case-sensitive.
500ErrorInternal server error. Retry the request after a short delay.
Path Params
int64
required
Query Params
integer
integer
≤ 50
boolean
Defaults to false
string
enum
Allowed:
string
integer
Response

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json