curl --request GET \
--url https://api.mageloyalty.com/v1/vip-tiers \
--header 'Authorization: <api-key>'
const response = await fetch("https://api.mageloyalty.com/v1/vip-tiers", {
method: "GET",
headers: {
Authorization: "<api-key>",
},
});
const data = await response.json();
import requests
response = requests.get(
"https://api.mageloyalty.com/v1/vip-tiers",
headers={"Authorization": "<api-key>"},
)
data = response.json()
<?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);
{
"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"
}
}
VIP Tiers
List VIP tiers
List all VIP tiers for the shop.
GET
/
v1
/
vip-tiers
curl --request GET \
--url https://api.mageloyalty.com/v1/vip-tiers \
--header 'Authorization: <api-key>'
const response = await fetch("https://api.mageloyalty.com/v1/vip-tiers", {
method: "GET",
headers: {
Authorization: "<api-key>",
},
});
const data = await response.json();
import requests
response = requests.get(
"https://api.mageloyalty.com/v1/vip-tiers",
headers={"Authorization": "<api-key>"},
)
data = response.json()
<?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);
{
"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"
}
}
List all VIP tiers for the shop, ordered by
threshold ascending.
No pagination parameters — all tiers are returned in a single response. Most shops have 3-5 tiers.
Response
Returns an array of VIP tier objects. Themeta object reflects the full set returned in one page.
curl --request GET \
--url https://api.mageloyalty.com/v1/vip-tiers \
--header 'Authorization: <api-key>'
const response = await fetch("https://api.mageloyalty.com/v1/vip-tiers", {
method: "GET",
headers: {
Authorization: "<api-key>",
},
});
const data = await response.json();
import requests
response = requests.get(
"https://api.mageloyalty.com/v1/vip-tiers",
headers={"Authorization": "<api-key>"},
)
data = response.json()
<?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);
{
"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"
}
}
Response meta
Alongside the standard pagination fields, themeta 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 |
⌘I