Skip to main content

Points History

Returns the authenticated user's point event history with pagination.

GET /points/history
Authorization: Bearer <token>

Query Parameters

ParameterTypeRequiredDescription
epochintegerNoEpoch number; defaults to current
typestringNoFilter by type: trading / pnl / holding / referral / staking
pageintegerNoPage number, starting from 1 (default: 1)
page_sizeintegerNoResults per page, max 100 (default: 20)

Response

{
"success": true,
"data": {
"events": [
{
"id": "b2c3d4e5-...",
"point_type": "trading",
"points": "1.20",
"metadata": {
"volume": "1000.00",
"role": "maker",
"tier": "T1",
"role_rate": "1.2",
"raw_points": "1.20",
"final_points": "1.20",
"cap_applied": false,
"daily_used_before": "0",
"weekly_used_before": "0"
},
"created_at": "2026-04-15T10:00:00Z"
},
{
"id": "c3d4e5f6-...",
"point_type": "referral",
"points": "10.00",
"metadata": {
"rp_type": "trigger",
"counterpart": "0xdef...",
"trade_id": "a1b2c3d4-..."
},
"created_at": "2026-04-14T08:30:00Z"
}
],
"total": 125,
"page": 1,
"page_size": 20
},
"error": null,
"timestamp": 1745280000
}

The root key inside data is events (not items). Each record contains only {id, point_type, points, metadata, created_at} — associated trade/order/position IDs are not returned by this endpoint.

metadata keys vary by point_type. For trading events: {volume, role, tier, role_rate, raw_points, final_points, cap_applied, daily_used_before, weekly_used_before} (numeric values serialized as strings, cap_applied boolean). For referral events: {rp_type, counterpart, trade_id}.

Response Fields

FieldTypeDescription
eventsarrayList of point events
totalintTotal number of events matching the filter
pageintCurrent page number
page_sizeintResults per page

events[]

FieldTypeDescription
idstringEvent UUID
point_typestringPoint type: trading / pnl / holding / referral / staking
pointsDecimalPoints awarded
metadataobjectEvent-specific context (varies by point_type)
created_atstringEvent timestamp (ISO 8601)

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/history",
headers={"Authorization": f"Bearer {JWT_TOKEN}"},
params={"page": 1, "page_size": 20},
)
data = resp.json()["data"]

print(f"Total events: {data['total']}")
for e in data["events"]:
print(f" [{e['point_type']}] +{e['points']} pts at {e['created_at']}")