---
title: "Changes to List earning rules"
method: GET
path: "/v2/loyalties/earning-rules"
---

# Changes to List earning rules

`GET /v2/loyalties/earning-rules`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 5 of 76 revisions.

- **2026-07-31** (v2) `703a0a42ea43` — 8 info
- **2026-07-17** (v2) `4cbaee5a82d5` — 8 info
- **2026-07-17** (v2) `26ef7b3dd1ef` — 8 info
- **2026-07-06** (v2) `341403eb19e5` — 28 breaking, 18 warning, 36 info
- **2026-05-26** (v2) `bf7c81751b90` — 1 info

## Changes

- **2026-07-31** (v2) `703a0a42ea43` — 8 info
  - added `subschema #2, subschema #3` to the `data/items/earnings/items/effects/items/` response property `allOf` list for the response status `200`
  - added `subschema #2, subschema #3` to the `data/items/trigger_limits/oneOf[#/components/schemas/EarningRuleTriggerLimits]/frequency/oneOf[#/components/schemas/EarningRuleTriggerLimitsFrequency]/` response property `allOf` list for the response status `200`
  - added `subschema #3, subschema #5` to the `data/items/earnings/items/effects/items/points/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
  - added `subschema #3, subschema #5` to the `data/items/earnings/items/effects/items/points_proportional/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
  - removed `subschema #2, subschema #3` from the `data/items/earnings/items/effects/items/` response property `allOf` list for the response status `200`
  - removed `subschema #2, subschema #3` from the `data/items/trigger_limits/oneOf[#/components/schemas/EarningRuleTriggerLimits]/frequency/oneOf[#/components/schemas/EarningRuleTriggerLimitsFrequency]/` response property `allOf` list for the response status `200`
  - removed `subschema #3, subschema #5` from the `data/items/earnings/items/effects/items/points/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
  - removed `subschema #3, subschema #5` from the `data/items/earnings/items/effects/items/points_proportional/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
- **2026-07-17** (v2) `4cbaee5a82d5` — 8 info
  - added the optional property `resource_id` to the response with the `400` status
  - added the optional property `resource_id` to the response with the `404` status
  - added the optional property `resource_id` to the response with the `409` status
  - added the optional property `resource_id` to the response with the `500` status
  - added the optional property `resource_type` to the response with the `400` status
  - added the optional property `resource_type` to the response with the `404` status
  - added the optional property `resource_type` to the response with the `409` status
  - added the optional property `resource_type` to the response with the `500` status
- **2026-07-17** (v2) `26ef7b3dd1ef` — 8 info
  - added `subschema #2, subschema #3` to the `data/items/earnings/items/effects/items/` response property `allOf` list for the response status `200`
  - added `subschema #2, subschema #3` to the `data/items/trigger_limits/oneOf[#/components/schemas/EarningRuleTriggerLimits]/frequency/oneOf[#/components/schemas/EarningRuleTriggerLimitsFrequency]/` response property `allOf` list for the response status `200`
  - added `subschema #3, subschema #4, subschema #5` to the `data/items/earnings/items/effects/items/points/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
  - added `subschema #3, subschema #4, subschema #5` to the `data/items/earnings/items/effects/items/points_proportional/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
  - removed `subschema #2, subschema #3` from the `data/items/earnings/items/effects/items/` response property `allOf` list for the response status `200`
  - removed `subschema #2, subschema #3` from the `data/items/trigger_limits/oneOf[#/components/schemas/EarningRuleTriggerLimits]/frequency/oneOf[#/components/schemas/EarningRuleTriggerLimitsFrequency]/` response property `allOf` list for the response status `200`
  - removed `subschema #3, subschema #4, subschema #5` from the `data/items/earnings/items/effects/items/points/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
  - removed `subschema #3, subschema #4, subschema #5` from the `data/items/earnings/items/effects/items/points_proportional/points_expiration/oneOf[#/components/schemas/EarningRuleEffectPointsExpiration]/` response property `allOf` list for the response status `200`
- **2026-07-06** (v2) `341403eb19e5` — 28 breaking, 18 warning, 36 info
  - added the pattern `^lcrsern_[a-f0-9]+$` to the `query` request parameter `cursor`
  - the response property `cursor` became nullable for the status `200`
  - the response property `code` became optional for the status `400`
  - the response property `code` became optional for the status `500`
  - the response property `data` became optional for the status `200`
  - the response property `data/items/created_at` became optional for the status `200`
  - the response property `data/items/earnings` became optional for the status `200`
  - the response property `data/items/id` became optional for the status `200`
  - the response property `data/items/metadata` became optional for the status `200`
  - the response property `data/items/name` became optional for the status `200`
  - the response property `data/items/object` became optional for the status `200`
  - the response property `data/items/status` became optional for the status `200`
  - the response property `data/items/trigger` became optional for the status `200`
  - the response property `key` became optional for the status `400`
  - the response property `key` became optional for the status `500`
  - the response property `message` became optional for the status `400`
  - the response property `message` became optional for the status `500`
  - the response property `object` became optional for the status `200`
  - added `#/components/schemas/EarningRuleError` to the `data/items/error` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/EarningRuleRulesGroup` to the `data/items/earnings/items/rules` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/EarningRuleTierRules, subschema #2` to the `data/items/earnings/items/tier_rules` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/EarningRuleTriggerCustomEvent` to the `data/items/trigger/custom_event` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/EarningRuleTriggerLimits` to the `data/items/trigger_limits` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/EarningRuleTriggerSegment` to the `data/items/trigger/segment` response property `oneOf` list for the response status `200`
  - the `cursor` response's property type changed from no type to `object, null` for status `200`
  - the `data/items/earnings/items/effects/items/points` response's property type changed from no type to `object` for status `200`
  - the `data/items/earnings/items/effects/items/points_proportional` response's property type changed from no type to `object` for status `200`
  - the `data/items/validity_hours` response's property type changed from no type to `object` for status `200`
  - deleted the `query` request parameter `filters[created_at][conditions][$after]`
  - deleted the `query` request parameter `filters[created_at][conditions][$before]`
  - deleted the `query` request parameter `filters[id][conditions][$in]`
  - deleted the `query` request parameter `filters[id][conditions][$is]`
  - deleted the `query` request parameter `filters[id][conditions][$is_not]`
  - deleted the `query` request parameter `filters[id][conditions][$not_in]`
  - deleted the `query` request parameter `filters[junction]`
  - deleted the `query` request parameter `filters[name][conditions][$contains]`
  - deleted the `query` request parameter `filters[name][conditions][$is]`
  - deleted the `query` request parameter `filters[name][conditions][$starts_with]`
  - deleted the `query` request parameter `filters[status][conditions][$in]`
  - deleted the `query` request parameter `filters[status][conditions][$is]`
  - …42 more
- **2026-05-26** (v2) `bf7c81751b90` — 1 info
  - added the optional property `data/items/earnings/items/tier_rules` to the response with the `200` status

---

[Operation](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/docs/v2/loyalties/earning-rules/get.md) · [API](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api.md) · [Page](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/changes/v2/loyalties/earning-rules/get)
