Points History
Returns the authenticated user's point event history with pagination.
GET /v1/points/history
Authorization: Bearer <token>
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number, starting from 1 (default: 1); values below 1 are treated as 1 |
page_size | integer | No | Results per page (default: 20); clamped to the range 1–100, never rejected |
epochandtypefilters are not supported: the endpoint returns the user's events across all epochs and all point types, newest first (created_at DESC).
Errors: 401 with a plain-text body (missing bearer token / invalid session) when the session token is missing or invalid.
Response
{
"events": [
{
"id": "b2c3d4e5-...",
"point_type": "trading",
"points": "1.20",
"metadata": {
"trade_id": "7f3a9c2e-...",
"symbol": "BTCUSDT",
"notional": "1000.000000",
"is_maker": true
},
"created_at": "2026-04-15T10:00:00Z"
},
{
"id": "c3d4e5f6-...",
"point_type": "trading",
"points": "0.80",
"metadata": {
"trade_id": "5b1d0e88-...",
"symbol": "ETHUSDT",
"notional": "1000.000000",
"is_maker": false
},
"created_at": "2026-04-14T08:30:00Z"
}
],
"total": 125,
"page": 1,
"page_size": 20
}
The root key is
events(notitems). Each record contains only{id, point_type, points, metadata, created_at}— associated trade/order/position IDs are not returned by this endpoint.
Response Fields
| Field | Type | Description |
|---|---|---|
events | array | List of point events |
total | int | Total number of events for the user (all epochs, all types) |
page | int | Current page number |
page_size | int | Results per page |
events[]
| Field | Type | Description |
|---|---|---|
id | string | Event UUID |
point_type | string | Point type: trading / pnl / holding / referral / staking. Only trading events are written today (see Overview); the others are reserved |
points | Decimal | Points awarded (2 decimals) |
metadata | object | Event-specific context. For trading: {trade_id, symbol, notional (string), is_maker (bool)} |
created_at | string | Event timestamp (ISO 8601) |
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/history",
headers={"Authorization": f"Bearer {SESSION_TOKEN}"},
params={"page": 1, "page_size": 20},
)
data = resp.json()
print(f"Total events: {data['total']}")
for e in data["events"]:
print(f" [{e['point_type']}] +{e['points']} pts at {e['created_at']}")