**Version: 202601**

# List member benefits

**GET** `/openapi/2026-01/loyalty/members/:member_id/benefits`

Return the benefits available for a member's current tier

## Request

**Path Parameters**

- `member_id` string (required)

  Member ID from path

## Responses

**200**

OK

**application/json**

**Schema | Example**

**Schema**

- `code` string

  error code
- `message` string

  error message
- `data` object

  - `member_id` string

    Member ID
  - `current_tier_name` string

    Current tier name
  - `benefits` object[]

    Benefit list

    *   Array \[

    - `benefit_id` string

      Benefit ID
    - `name` string

      Benefit name
    - `description` string

      Benefit description
    - `icon` string

      Icon URL
    - `benefit_type` string

      Benefit type: point, coupon, discount\_code, free\_shipping, or custom
    - `trigger_type` string

      Trigger type: join\_tier, birthday, or periodic
    - `execution_schedule` object

      Execution schedule (corresponds to vo.ExecutionScheduleRule); strongly typed

      - `type` string

        Schedule type: time\_range / weekly / monthly / cycle
      - `effective_started_at` string

        Effective start time, RFC3339 (empty means open-start)
      - `effective_ended_at` string

        Effective end time, RFC3339 (empty means open-end)
      - `months` string[]

        Months (effective when type=monthly), 1-12 as string
      - `days` string[]

        Days. weekly: 0-6 (Sun-Sat); monthly: 1-31; otherwise unused
      - `date` string

        Specific date string (e.g. yyyy-MM-dd)
    - `reward_config` object[]

      Reward config list

      *   Array \[

      - `reward_type` string

        Reward type: point / discount\_code / custom
      - `point_value` uint64

        Points value when reward\_type=point; 0 otherwise
      - `discount_code_activity` object

        Discount code campaign payload when reward\_type=discount\_code; null otherwise

        - `name` string

          Campaign name
        - `discount_type` string

          Discount type: percentage / fixed\_amount / free\_shipping / bxgy
        - `discount_value` string

          Discount value; percentage carries a numeric string (e.g. "10"); fixed\_amount carries an amount string (e.g. "10.00"); free\_shipping / bxgy leave it empty
        - `prerequisite_type` string

          Prerequisite condition type: none / subtotal / quantity
        - `prerequisite_value` string

          Prerequisite condition value; amount string when subtotal, quantity when quantity
        - `max_free_shipping` string

          Max free-shipping amount (free-shipping only); -1 means unlimited. String preserves decimals
        - `applicable_rule` object

          Applicable resource rule

          - `applicable_type` string

            Applicable type: all / include\_products / include\_collections
          - `applicable_product_ids` string[]

            Product IDs when applicable\_type=include\_products
          - `applicable_variant_ids` string[]

            Variant IDs when applicable\_type=include\_products
          - `applicable_collection_ids` string[]

            Collection IDs when applicable\_type=include\_collections
        - `obtain_products` object

          Obtain products rule (BXGY only)

          - `applicable_rule` object

            Applicable rule for obtainable products

            - `applicable_type` string

              Applicable type: all / include\_products / include\_collections
            - `applicable_product_ids` string[]

              Product IDs when applicable\_type=include\_products
            - `applicable_variant_ids` string[]

              Variant IDs when applicable\_type=include\_products
            - `applicable_collection_ids` string[]

              Collection IDs when applicable\_type=include\_collections
          - `product_count` uint32

            Obtain product count
          - `obtain_type` string

            Obtain discount type: free / percentage / fixed\_amount
          - `obtain_value` string

            Obtain discount value; decimal string
        - `use_with_other` boolean

          Allow stacking with other discounts
        - `limit_user_discount` int32

          Per-member campaign usage cap; -1 means unlimited
        - `limit_code_user_discount` int32

          Per-member per-code usage cap; -1 means unlimited
        - `limit_order_discount` int32

          Per-order usage cap; -1 means unlimited
        - `limit_code_max_discount` int32

          Per-code total usage cap; -1 means unlimited
        - `started_at` string

          Campaign start time; ISO 8601 UTC
        - `ended_at` string

          Campaign end time; ISO 8601 UTC. Empty string means open-ended
      - `custom_reward` object

        Custom reward payload when reward\_type=custom; null otherwise (structure reserved)
      *   \]
    - `point_expire_config` object

      Point expire config. Only present when benefit\_type is point
    *   \]

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "member_id": "string",
    "current_tier_name": "string",
    "benefits": [
      {
        "benefit_id": "string",
        "name": "string",
        "description": "string",
        "icon": "string",
        "benefit_type": "string",
        "trigger_type": "string",
        "execution_schedule": {
          "type": "string",
          "effective_started_at": "string",
          "effective_ended_at": "string",
          "months": [
            "string"
          ],
          "days": [
            "string"
          ],
          "date": "string"
        },
        "reward_config": [
          {
            "reward_type": "string",
            "point_value": 0,
            "discount_code_activity": {
              "name": "string",
              "discount_type": "string",
              "discount_value": "string",
              "prerequisite_type": "string",
              "prerequisite_value": "string",
              "max_free_shipping": "string",
              "applicable_rule": {
                "applicable_type": "string",
                "applicable_product_ids": [
                  "string"
                ],
                "applicable_variant_ids": [
                  "string"
                ],
                "applicable_collection_ids": [
                  "string"
                ]
              },
              "obtain_products": {
                "applicable_rule": {
                  "applicable_type": "string",
                  "applicable_product_ids": [
                    "string"
                  ],
                  "applicable_variant_ids": [
                    "string"
                  ],
                  "applicable_collection_ids": [
                    "string"
                  ]
                },
                "product_count": 0,
                "obtain_type": "string",
                "obtain_value": "string"
              },
              "use_with_other": true,
              "limit_user_discount": 0,
              "limit_code_user_discount": 0,
              "limit_order_discount": 0,
              "limit_code_max_discount": 0,
              "started_at": "string",
              "ended_at": "string"
            },
            "custom_reward": {}
          }
        ],
        "point_expire_config": {}
      }
    ]
  }
}
```
