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
| Field | Type | Description |
|---|---|---|
tier | string | Current tier: T1 / T2 / T3 |
multiplier | string | Tier multiplier label (1.0 / 1.5 / 2.0); the per-$1,000 maker/taker rates are in the table below |
min_volume | string | Minimum volume threshold for current tier (USD) |
max_volume | string | null | Maximum volume threshold for current tier (USD); null at T3 |
current_volume | string | User'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_tier | object | null | Next tier info; null if at T3 |
next_tier
| Field | Type | Description |
|---|---|---|
tier | string | Next tier name |
multiplier | string | Next tier multiplier |
required_volume | string | Volume threshold required for next tier (USD) |
remaining_volume | string | Additional 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.
| Tier | 14-day Rolling Volume | Maker Rate | Taker Rate |
|---|---|---|---|
| T1 | $0 – $4,999,999 | 1.2 TP / $1,000 | 0.8 TP / $1,000 |
| T2 | $5M – $99,999,999 | 1.5 TP / $1,000 | 1.0 TP / $1,000 |
| T3 | ≥ $100M | 2.0 TP / $1,000 | 1.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")