> ## Documentation Index
> Fetch the complete documentation index at: https://developers.mageloyalty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List VIP tiers

> List all VIP tiers for the shop.

List all VIP tiers for the shop, ordered by `threshold` ascending.

<Note>
  No pagination parameters — all tiers are returned in a single response. Most shops have 3-5 tiers.
</Note>

## Response

Returns an array of [VIP tier objects](/api-reference/vip-tiers/object). The `meta` object reflects the full set returned in one page.

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://api.mageloyalty.com/v1/vip-tiers \
    --header 'Authorization: <api-key>'
  ```

  ```javascript Node theme={null}
  const response = await fetch("https://api.mageloyalty.com/v1/vip-tiers", {
    method: "GET",
    headers: {
      Authorization: "<api-key>",
    },
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.mageloyalty.com/v1/vip-tiers",
      headers={"Authorization": "<api-key>"},
  )

  data = response.json()
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init("https://api.mageloyalty.com/v1/vip-tiers");
  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER => [
          "Authorization: <api-key>",
      ],
  ]);
  $data = json_decode(curl_exec($ch), true);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "data": [
      {
        "type": "vip_tier",
        "id": "tier_bronze",
        "attributes": {
          "name": "Bronze",
          "description": "Entry level tier",
          "threshold": 0,
          "threshold_points": null,
          "threshold_spend": null,
          "threshold_orders": null,
          "points_multiplier": 1.0,
          "position": 1,
          "badge_image_url": null,
          "badge_color": "#CD7F32",
          "rewards": [],
          "created_at": "2024-01-01T00:00:00.000Z",
          "updated_at": "2024-01-01T00:00:00.000Z"
        }
      },
      {
        "type": "vip_tier",
        "id": "tier_gold",
        "attributes": {
          "name": "Gold",
          "description": "Premium tier",
          "threshold": 500,
          "threshold_points": null,
          "threshold_spend": null,
          "threshold_orders": null,
          "points_multiplier": 1.5,
          "position": 2,
          "badge_image_url": null,
          "badge_color": "#FFD700",
          "rewards": [
            {
              "id": "reward_abc",
              "name": "£5 off your next order",
              "description": null,
              "discount_type": "fixed",
              "reward_type": "vip",
              "points_cost": 500,
              "discount_amount": 5.00,
              "minimum_spend": 20.00,
              "is_active": true,
              "max_redemptions": null,
              "expiry_days": 30,
              "created_at": "2024-01-01T00:00:00.000Z",
              "updated_at": "2024-01-01T00:00:00.000Z"
            }
          ],
          "created_at": "2024-01-01T00:00:00.000Z",
          "updated_at": "2024-01-01T00:00:00.000Z"
        }
      }
    ],
    "meta": {
      "total": 2,
      "page": 1,
      "per_page": 2,
      "total_pages": 1,
      "entry_method": "points",
      "entry_methods_extra": [],
      "entry_logic": "AND",
      "points_multiplier_mode": "purchase"
    }
  }
  ```
</ResponseExample>

## Response meta

Alongside the standard pagination fields, the `meta` object describes how customers qualify for tiers across the shop. Use it to interpret each tier's `threshold` and per-criterion thresholds.

| Field                    | Type           | Description                                                                                                               |
| ------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `entry_method`           | string         | The shop's primary entry method: `points`, `spend`, or `orders`. This is what each tier's `threshold` is measured in      |
| `entry_methods_extra`    | array          | Any additional entry methods in use (a subset of `points`, `spend`, `orders`). Empty when only the primary method applies |
| `entry_logic`            | string         | How the primary and additional methods combine when more than one is in use: `AND` (meet all) or `OR` (meet any)          |
| `points_multiplier_mode` | string \| null | Which earning the tier multiplier applies to: `purchase`, `all`, or `null` when not configured                            |
