Skip to main content

User Tier

Returns the authenticated user's current points tier. The tier is mapped from the user's fee VIP level (user_vip_tiers.current_tier), not from volume thresholds in the points system:

Points TierVIP Level
T1VIP 0 (or no VIP record)
T2VIP 1 / VIP 2
T3VIP 3 / VIP 4 / VIP 5

The upgrade path is managed by the fee VIP system — the points system only reads the mapping.

GET /points/tier
Authorization: Bearer <token>

Query Parameters

ParameterTypeRequiredDescription
epochintegerNoEpoch number; defaults to current

Response

{
"success": true,
"data": {
"tier": "T2",
"multiplier": "1.5",
"min_volume": "0",
"max_volume": null,
"current_volume": "8500000.00",
"next_tier": null
},
"error": null,
"timestamp": 1745280000
}

Response Fields

FieldTypeDescription
tierstringCurrent tier: T1 / T2 / T3 (mapped from VIP level)
multiplierstringTrading point maker rate for this tier
min_volumestringAlways "0" — tiers are VIP-mapped, not volume-thresholded
max_volumenullAlways null
current_volumestringUser's 14-day rolling trading volume (USD, from user_vip_tiers)
next_tiernullAlways null — the upgrade path is managed by the fee VIP system, not exposed here

Tier Point Rates

TierVIP LevelMaker RateTaker Rate
T1VIP 01.2 TP / $1,0000.8 TP / $1,000
T2VIP 1–21.5 TP / $1,0001.0 TP / $1,000
T3VIP 3–52.0 TP / $1,0001.3 TP / $1,000

Code Examples

Python

import requests

BASE_URL = "https://api.prex.world/api/v1"
JWT_TOKEN = "your_jwt_token"

resp = requests.get(
f"{BASE_URL}/points/tier",
headers={"Authorization": f"Bearer {JWT_TOKEN}"},
)
data = resp.json()["data"]

print(f"Tier: {data['tier']} (maker rate ×{data['multiplier']}), 14d volume: {data['current_volume']}")
# Tier upgrades follow the fee VIP system; next_tier is always null here.