Earn Level Quota
Returns the authenticated user's current Earn Level and their Earn product subscription quota — the share of daily subscription capacity granted by the level weight. This weight does not affect season token distribution.
GET /points/earn-quota
Authorization: Bearer <token>
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
epoch | integer | No | Epoch number; defaults to current |
Response
{
"success": true,
"data": {
"level": "L2",
"weight": 12,
"total_raw_points": "15000.00",
"next_level_points_needed": "35000.00",
"platform_total_effective_weight": 26400,
"my_share_pct": "0.000454545454",
"level_updated_at": "2026-04-16T00:00:05Z",
"products": [
{
"product_id": "d4c3b2a1-...",
"product_name": "USDT Flexible",
"capacity": "1000000.00",
"concentration_cap_pct": "0.05",
"quota_today": "454.55",
"concentration_cap_applied": false
}
],
"cross_product_quota_today": "1363.65"
},
"error": null,
"timestamp": 1745280000
}
Response Fields
| Field | Type | Description |
|---|---|---|
level | string | Current Earn Level in "L0"–"L5" form |
weight | int | Quota weight for the current level |
total_raw_points | Decimal | Raw total points this epoch (TP+PP+HP+RP, unweighted) |
next_level_points_needed | Decimal | Points still needed to reach the next level; "0" at L5 |
platform_total_effective_weight | int64 | Platform-wide sum of all users' level weights (from today's snapshot; 0 if the daily snapshot has not run yet) |
my_share_pct | Decimal | User's share of Earn quota weight: weight / platform_total_effective_weight |
level_updated_at | string | When the user's level was last refreshed (daily at UTC 00:00) |
products | array | Per-product quota breakdown; empty when no Earn products are configured |
cross_product_quota_today | Decimal | Aggregate cross-product quota: max single-product quota × cross-product multiplier (default 3) |
products[]
| Field | Type | Description |
|---|---|---|
product_id | string | Earn product UUID |
product_name | string | Product display name |
capacity | Decimal | Product's total daily subscription capacity |
concentration_cap_pct | Decimal | Per-user concentration cap as a fraction of capacity (e.g., "0.05" = 5%) |
quota_today | Decimal | User's effective quota today: min(my_share_pct × capacity, capacity × concentration_cap_pct) |
concentration_cap_applied | bool | Whether the concentration cap was the binding limit |
Earn Level Weights
| Level | Points Range | Weight |
|---|---|---|
| L0 | 0 – 999 | 4 |
| L1 | 1,000 – 9,999 | 8 |
| L2 | 10,000 – 49,999 | 12 |
| L3 | 50,000 – 199,999 | 25 |
| L4 | 200,000 – 499,999 | 60 |
| L5 | 500,000+ | 120 |
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/earn-quota",
headers={"Authorization": f"Bearer {JWT_TOKEN}"},
)
data = resp.json()["data"]
print(f"Earn Level: {data['level']} (weight={data['weight']})")
print(f"Quota share: {data['my_share_pct']} of platform weight {data['platform_total_effective_weight']}")
for p in data["products"]:
capped = " (capped)" if p["concentration_cap_applied"] else ""
print(f" {p['product_name']}: quota today {p['quota_today']}{capped}")
print(f"Cross-product quota today: {data['cross_product_quota_today']}")