For the complete documentation index, see llms.txt. This page is also available as Markdown.

Get members list

Integration This method returns list of all Members' accounts exist in the system. If sorting is not chosen, the rows will be returned in an unspecified order. To sort a result, use an _orderBy parameter in query.

get
Authorizations
AuthorizationstringRequired

Open Loyalty has the JWT authorization. To learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens https://jwt.io/introduction/

Obtain an access token

Send a request with the parameters username and password

Definition

POST /api/admin/login_check Go to definition
POST /api/{storeCode}/member/login_check Go to definition

Example

curl {HOST}/api/admin/login_check
    -H 'Content-Type: application/json;charset=UTF-8'
    -H 'Accept: application/json, text/plain, */*'
    --data-binary '{"username":"admin","password":"password"}'

Example Response

{
    "token":"eyJhbGciOiJSUzI1NiIsInR5cCI6...",
    "refresh_token":"0558f8bb29948c4e54c443f..."
}

Using JSON Web Token

Add authorization header to each request
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...
You can now access any API method you want under the /api prefix.

Example

curl {HOST}/api/{storeCode}/analytics/members
    -H 'Accept: application/json'
    -H 'Content-type: application/x-www-form-urlencoded'
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'

Refresh JSON Web Token

You can refresh token using refresh_token that was given during login.
There are two endpoints
To refresh admin token POST /api/token/refresh Go to definition
To refresh member token POST /api/{storeCode}/token/refresh Go to definition

Path parameters
storeCodestringRequired

Store code

Query parameters
customerIdstringOptional
firstNamestringOptional
lastNamestringOptional
emailOrPhonestringOptionalDeprecated

This filter is deprecated.

identifierstringOptionalDeprecated

This filter is deprecated. To get member by email, phone, loyaltyCardNumnber, use /api/{store}/member/email=user@example.com).

activebooleanOptional
genderstringOptional
phonestringOptional
emailstringOptional
loyaltyCardNumberstringOptional
createdAtstring · date-timeOptional
birthDatestring · date-timeOptional
agreement1booleanOptional
agreement2booleanOptional
agreement3booleanOptional
updatedAtstring · date-timeOptional
registeredAtstring · date-timeOptional
transactionsCountintegerOptional
transactionsAmountnumberOptional
transactionsAmountWithoutDeliveryCostsnumberOptional
amountExcludedForLevelnumberOptional
averageTransactionAmountnumberOptional
levelAchievementDatestring · date-timeOptional
labelsstringOptional

Labels using pattern e.g. (key1;value1),(key2;value2),...

lastTransactionDatestring · date-timeOptional
firstTransactionDatestring · date-timeOptional
levelIdstringOptional
manuallyAssignedLevelIdstringOptional
referralTokenstringOptional
address:streetstringOptional
address:address1stringOptional
address:address2stringOptional
address:provincestringOptional
address:citystringOptional
address:postalstringOptional
address:countrystringOptional
defaultAccount:activePointsnumberOptional
defaultAccount:transferredPointsnumberOptional
defaultAccount:lockedPointsnumberOptional
defaultAccount:expiredPointsnumberOptional
defaultAccount:spentPointsnumberOptional
defaultAccount:earnedPointsnumberOptional
defaultAccount:blockedPointsnumberOptional
_pageinteger · min: 1Optional

Number of page with results, starts from 1

Default: 1Example: 1
_itemsOnPageinteger · min: 1 · max: 50Optional

Items on one page

Default: 10Example: 25
_scrollstringOptional

To use scroll pagination, add the _scroll parameter to your query: ?_scroll

To retrieve the next page, take the scroll value from the previous response and use it in the next request: ?_scroll=eyJjcmVhdGVkQXQiOiIyMDI1LTA3LTAxIDEzOjU2OjI5LjAyMTcwMyIsImlkIjoiNTM5N2RiYzYtZGVkMi00MTQ0LTlhMjQtOTRjYmI5YWVjNDBjIn0=

Notes:

  • Scroll pagination does not support sorting with _orderBy.
  • Items are returned in ascending order by the createdAt field by default.
Responses
200

List of members

application/json
or
get/api/{storeCode}/member
GET /api/{storeCode}/member HTTP/1.1
Host: openloyalty.localhost
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "customerId": "123e4567-e89b-12d3-a456-426614174000",
      "registeredAt": "2026-01-01T00:00:00.000Z",
      "active": true,
      "channelId": "123e4567-e89b-12d3-a456-426614174000",
      "firstName": "text",
      "lastName": "text",
      "gender": "text",
      "email": "text",
      "phone": "text",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "lastLevelRecalculation": "2026-01-01T00:00:00.000Z",
      "address": {
        "street": "text",
        "address1": "text",
        "address2": "text",
        "province": "text",
        "city": "text",
        "postal": "text",
        "country": "text"
      },
      "loyaltyCardNumber": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedAt": "2026-01-01T00:00:00.000Z",
      "agreement1": true,
      "agreement2": true,
      "agreement3": true,
      "company": {
        "name": "text",
        "nip": "text"
      },
      "transactionsCount": 1,
      "returnTransactionsCount": 1,
      "transactionsAmount": 1,
      "returnTransactionsAmount": 1,
      "transactionsAmountWithoutDeliveryCosts": 1,
      "amountExcludedForLevel": 1,
      "averageTransactionAmount": 1,
      "averageReturnTransactionAmount": 1,
      "lastTransactionDate": "2026-01-01T00:00:00.000Z",
      "firstTransactionDate": "2026-01-01T00:00:00.000Z",
      "levelAchievementDate": "2026-01-01T00:00:00.000Z",
      "anonymized": true,
      "referralToken": "text",
      "defaultAccount": {
        "accountId": "text",
        "activePoints": 1,
        "transferredPoints": 1,
        "lockedPoints": 1,
        "expiredPoints": 1,
        "spentPoints": 1,
        "earnedPoints": 1,
        "blockedPoints": 1
      },
      "customFieldsData": [
        {
          "customFieldSchemaId": "123e4567-e89b-12d3-a456-426614174000",
          "customFieldName": "text",
          "customFieldType": "text",
          "value": "text"
        }
      ],
      "customFields": {
        "group_1": {
          "field_1": "orange",
          "field_2": 48,
          "field_3": 3.5,
          "field_4": true,
          "field_5": "1990-05-12",
          "field_6": "2024-01-15 10:30:00.000000",
          "field_7": null,
          "field_8": "red",
          "field_9": [
            "red",
            "blue"
          ],
          "subgroup_1": [
            {
              "field_name1": 1,
              "field_name2": 92.5,
              "field_name3": true
            }
          ]
        }
      },
      "labels": [
        {
          "key": "text",
          "value": "text"
        }
      ],
      "currency": "text",
      "storeCode": "text",
      "channelIdentifier": "text"
    }
  ]
}

Last updated

Was this helpful?