跳到主要内容

User Tier

Returns the authenticated user's current tier and progress toward the next tier.

GET /v1/points/tier
Authorization: Bearer <token>

This endpoint takes no query parameters; it always evaluates the current active epoch (an epoch query parameter is ignored).

Errors: 401 with a plain-text body (missing bearer token / invalid session) when the session token is missing or invalid.

Response​

{
"tier": "T2",
"multiplier": "1.5",
"min_volume": "5000000",
"max_volume": "99999999.99",
"current_volume": "8500000.00",
"next_tier": {
"tier": "T3",
"multiplier": "2.0",
"required_volume": "100000000",
"remaining_volume": "91500000.00"
}
}

next_tier is null when the user is already at T3 (max tier).

Response Fields​

FieldTypeDescription
tierstringCurrent tier: T1 / T2 / T3
multiplierstringTier multiplier label (1.0 / 1.5 / 2.0); the per-$1,000 maker/taker rates are in the table below
min_volumestringMinimum volume threshold for current tier (USD)
max_volumestring | nullMaximum volume threshold for current tier (USD); null at T3
current_volumestringUser's cumulative trading_volume in the current active epoch (USD), 2 decimals — not the trailing-14-day volume the accrual pipeline uses for rate selection
next_tierobject | nullNext tier info; null if at T3

next_tier​

FieldTypeDescription
tierstringNext tier name
multiplierstringNext tier multiplier
required_volumestringVolume threshold required for next tier (USD)
remaining_volumestringAdditional volume still needed (USD)

Tier Thresholds​

The rates below are what the accrual pipeline applies per fill, selecting the tier from the trader's trailing-14-day volume at fill time. This endpoint applies the same $5M / $100M boundaries to the epoch-cumulative current_volume instead, so the two can disagree.

Tier14-day Rolling VolumeMaker RateTaker Rate
T1$0 – $4,999,9991.2 TP / $1,0000.8 TP / $1,000
T2$5M – $99,999,9991.5 TP / $1,0001.0 TP / $1,000
T3≥ $100M2.0 TP / $1,0001.3 TP / $1,000

Code Examples​

Python​

import requests

BASE_URL = "https://api.rocky.exchange"
SESSION_TOKEN = "your_session_token" # from POST /v1/wallet/verify

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

print(f"Tier: {data['tier']} (×{data['multiplier']}), Volume: {data['current_volume']}")
if data["next_tier"]:
print(f"Next: {data['next_tier']['tier']}, need {data['next_tier']['remaining_volume']} more")