---
title: "Get all loyalty programs"
method: POST
path: "/api/connector/v1/loyaltyPrograms/getAll"
tags: ["Loyalty programs"]
---

# Get all loyalty programs

`POST /api/connector/v1/loyaltyPrograms/getAll`

Returns all loyalty programs of the enterprise, optionally filtered by specific loyalty program identifiers, activity states, or other filter parameters. Note this operation uses [Pagination](https://mews-systems.gitbook.io/connector-api/guidelines/pagination/) and supports [Portfolio Access Tokens](https://mews-systems.gitbook.io/connector-api/concepts/multi-property/).

## Request body

- LoyaltyProgramFilterParameters
  - `ClientToken` string, required — Token identifying the client application.
  - `AccessToken` string, required — Access token of the client application.
  - `Client` string, required — Name and version of the client application.
  - `ChainIds` string[], nullable — Unique identifiers of the chain. If not specified, the operation returns data for all chains within scope of the Access Token.
  - `CreatedUtc` TimeFilterInterval — When a time interval is used for **filtering** (for example in parameters such as `CreatedUtc.StartUtc` / `CreatedUtc.EndUtc`), the following rules apply: - **Start equals End (equality mode)** If `StartUtc` and `EndUtc` are exactly the same timestamp, the filter is treated as an equality check for that precise moment in time: ``` CreatedUtc == StartUtc ``` This does not represent an interval; only records with `CreatedUtc` equal to that exact instant are returned. - **Start differs from End (interval mode)** If `StartUtc` and `EndUtc` are different, the filter is evaluated as a half-open interval: ``` StartUtc <= CreatedUtc < EndUtc ``` In other words, the start is inclusive and the end is exclusive. Make sure your integration takes inclusive Start / exclusive End behavior of time intervals into account so that no records at the boundaries are omitted.
    - `StartUtc` string, date-time, nullable
    - `EndUtc` string, date-time, nullable
  - `UpdatedUtc` TimeFilterInterval — When a time interval is used for **filtering** (for example in parameters such as `CreatedUtc.StartUtc` / `CreatedUtc.EndUtc`), the following rules apply: - **Start equals End (equality mode)** If `StartUtc` and `EndUtc` are exactly the same timestamp, the filter is treated as an equality check for that precise moment in time: ``` CreatedUtc == StartUtc ``` This does not represent an interval; only records with `CreatedUtc` equal to that exact instant are returned. - **Start differs from End (interval mode)** If `StartUtc` and `EndUtc` are different, the filter is evaluated as a half-open interval: ``` StartUtc <= CreatedUtc < EndUtc ``` In other words, the start is inclusive and the end is exclusive. Make sure your integration takes inclusive Start / exclusive End behavior of time intervals into account so that no records at the boundaries are omitted.
    - `StartUtc` string, date-time, nullable
    - `EndUtc` string, date-time, nullable
  - `LoyaltyProgramIds` string[], nullable — Unique identifiers of `LoyaltyProgram`.
  - `ActivityStates` ActivityStates[], nullable — Whether to return only active, only deleted or both records.
  - `Codes` string[], nullable — Codes of `LoyaltyProgram`.
  - `Limitation` Limitation, required — Limitation on the quantity of data returned.
    - `Count` integer, required
    - `Cursor` string, uuid, nullable

## Response `200`

OK

- LoyaltyProgramResult
  - `LoyaltyPrograms` LoyaltyProgram[], required — The loyalty programs of the enterprise.
    - `Id` string, uuid, required — Unique identifier of the loyalty program.
    - `ChainId` string, uuid, required — Unique identifier of the chain.
    - `Name` string, required — Name of the loyalty program.
    - `Code` string, required — Code of the loyalty program.
    - `Type` 'Hotel' | 'ExternalPartner' | 'SoftBrand' | 'Unknown', required — Type of the loyalty program. Hotel ExternalPartner SoftBrand Unknown
    - `Subscription` 'Free' | 'Paid', required — Subscription of the loyalty program. Free Paid
  - `Cursor` string, uuid, nullable — Unique identifier of the item one newer in time order than the items to be returned. If Cursor is not specified, i.e. null, then the latest or most recent items will be returned.

## Other responses

- `204` — Server has successfully fulfilled the request and there is no additional information to send back.
- `400` — Error caused by the client app, e.g. in case of malformed request or invalid identifier of a resource. In most cases, such an error signifies a bug in the client app (consumer of the API).
- `401` — Error caused by usage of invalid ClientToken, AccessToken, or you may not have the necessary permission to use the endpoint.
- `403` — Server error that should be reported to the end user of the client app. Happens for example when the server-side validation fails or when a business-logic check is violated.
- `408` — Error caused by heavy request that takes too long to process (typically tens of seconds). To get around this, request data in smaller batches. For more information, see [Request timeouts](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-timeouts)
- `429` — Error caused by too many requests sent in a given amount of time. Response contains `Retry-After` header indicating how long the user agent should wait before making a follow-up request. For more information, see [Request limits](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-limits).
- `500` — Unexpected error on the Mews side. This may be due to a software fault. If such a situation occurs, the error will be logged and the development team notified, however you can raise an issue through GitHub on our [documentation repository](https://github.com/MewsSystems/gitbook-connector-api).

---

[API](https://skmtc.net/mews/apis/connector-api.md) · [All operations](https://skmtc.net/mews/apis/connector-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mews/connector-api/versions/81933a8ff730/schema)
