Get your account
curl --request GET \
--url https://arena-predictions.com/api/v1/account \
--header 'Authorization: Bearer <token>'import requests
url = "https://arena-predictions.com/api/v1/account"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://arena-predictions.com/api/v1/account', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"account": {
"balanceDollars": 84210.55,
"netWorthDollars": 87950.55,
"openStakeDollars": 3100,
"heldDollars": 640,
"openPositions": 2,
"restingOrders": 1,
"run": 1,
"runStartedAt": "2026-10-31T16:02:11Z",
"startBalanceDollars": 100000,
"adjustmentsInRunDollars": 0,
"pnlSinceResetDollars": -12049.45,
"selfResetEnabled": true,
"resetBlockedBy": "cooldown",
"nextResetAt": "2026-11-30T16:02:11Z",
"lifetimePnlDollars": -13299.85,
"resets": 1,
"busts": 0,
"lastResetAt": "2026-10-31T16:02:11Z"
},
"view": "all",
"mode": "paper"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Portfolio
Get your account
The key owner’s own paper account: balance, net worth, open stake, holds, the current run, P&L since the last reset, lifetime P&L, resets, busts, the 30-day cooldown and whether resets are turned on. Positions and orders are counts only. With run=current the lifetime fields are left out: a private view of one run, for the owner only. Not cached.
GET
/
account
Get your account
curl --request GET \
--url https://arena-predictions.com/api/v1/account \
--header 'Authorization: Bearer <token>'import requests
url = "https://arena-predictions.com/api/v1/account"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://arena-predictions.com/api/v1/account', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"account": {
"balanceDollars": 84210.55,
"netWorthDollars": 87950.55,
"openStakeDollars": 3100,
"heldDollars": 640,
"openPositions": 2,
"restingOrders": 1,
"run": 1,
"runStartedAt": "2026-10-31T16:02:11Z",
"startBalanceDollars": 100000,
"adjustmentsInRunDollars": 0,
"pnlSinceResetDollars": -12049.45,
"selfResetEnabled": true,
"resetBlockedBy": "cooldown",
"nextResetAt": "2026-11-30T16:02:11Z",
"lifetimePnlDollars": -13299.85,
"resets": 1,
"busts": 0,
"lastResetAt": "2026-10-31T16:02:11Z"
},
"view": "all",
"mode": "paper"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Authorizations
Authorization: Bearer arena_sk_... (the x-arena-key header is accepted too). Keys are created at /docs, shown once, stored hashed.
Query Parameters
current leaves out lifetimePnlDollars, resets, busts and lastResetAt.
Available options:
all, current