---
title: "Retrieve Earning Rules"
method: GET
path: "/loyalty/v3/stores/{store_id}/earning_rules"
---

# Retrieve Earning Rules

`GET /loyalty/v3/stores/{store_id}/earning_rules`

## Request

- Base URL: `https://developers.yotpo.com`
- URL: `https://developers.yotpo.com/loyalty/v3/stores/{store_id}/earning_rules`
- Auth: API key in header `X-Yotpo-Token`

Lists the store's loyalty earning rules: the ways customers earn points, such as making a purchase, creating an account or completing a custom action.

## Path parameters

- `store_id` string, required

## Query parameters

- `active` boolean

## Response `200`

The store's earning rules.

- object
  - `earning_rules` object[]: The earning rules.
    - `id` integer: The earning rule's ID.
    - `type` string: The earning rule type, such as `PointsForPurchases`, `CreateAccount`, `CustomAction`, `YotpoReview`, `ReferralLinkClick`, `NewsletterSignup` or `TransactionBased`.
    - `title` string: The rule's headline shown to customers. Can be an empty string.
    - `active` boolean: Whether the rule is active. Filter with the `active` query parameter.
    - `reward_points` integer: Points configured for the rule. What they mean depends on the rule `type`, and some rules have `0`.
    - `currency` string: The store's currency code, such as `USD`.
    - `action_name` string: For `CustomAction` rules only: the `action_name` to send to [Record Loyalty Customer Action](ref:record-loyalty-customer-action). Other rule types leave this field out.
    - `max_perks_per_user` integer, nullable: Maximum number of times one customer can earn this rule. `null` if there's no limit.
    - `max_perks_total` integer, nullable: Maximum number of times the rule can be earned across all customers. `null` if there's no limit.
    - `minutes_between_perks` integer, nullable: Minimum minutes between two rewards for the same customer. `null` if there's no wait.
    - `restricted_to_tiers` unknown[]: VIP tiers the rule is limited to. Empty if it isn't limited to any tier.
      - unknown
    - `restricted_to_customer_tags` string, nullable: Customer tags the rule is limited to. `null` or an empty string if it isn't limited.
    - `restricted_to_order_tags` string, nullable: Order tags the rule is limited to. `null` if it isn't limited.
    - `restricted_to_order_count` integer, nullable: Order count the rule is limited to. `null` if it isn't limited.
    - `restricted_to_product_tags` string, nullable: Product tags the rule is limited to. `null` if it isn't limited.
    - `restricted_to_product_ids` string, nullable: Product IDs the rule is limited to. `null` if it isn't limited.
    - `restricted_to_product_types` string, nullable: Product types the rule is limited to. `null` if it isn't limited.
    - `include_audience_ids` string, nullable: Customer segments the rule is limited to (segment IDs).
    - `exclude_audience_ids` string, nullable: Customer segments excluded from the rule (segment IDs). `null` if none.
    - `archived` boolean: Whether the rule is archived.
    - `expired` boolean: Whether the rule has expired.

## Other responses

- `401`: Missing or invalid access token. Send a valid token in the `X-Yotpo-Token` header.
- `403`: The token isn't for this store: the `store_id` in the path belongs to a store your app isn't installed on.

## Changes

- **2026-11-03** `5bcae8239b6e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/yotpo/apis/app-developer-api/changes/loyalty/v3/stores/:store_id/earning_rules/get.md)

---

[API](https://skmtc.dev/yotpo/apis/app-developer-api.md) - [All operations](https://skmtc.dev/yotpo/apis/app-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/yotpo/apis/app-developer-api/revisions/5bcae8239b6e?raw)
