curl --request GET \
--url https://arena-predictions.com/api/v1/portfolio \
--header 'Authorization: Bearer <token>'import requests
url = "https://arena-predictions.com/api/v1/portfolio"
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/portfolio', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"account": {
"balanceDollars": 123,
"netWorthDollars": 123,
"openStakeDollars": 123,
"heldDollars": 123,
"openPositions": 1,
"restingOrders": 1,
"run": 1,
"runStartedAt": "2023-11-07T05:31:56Z",
"startBalanceDollars": 123,
"adjustmentsInRunDollars": 123,
"pnlSinceResetDollars": 123,
"selfResetEnabled": true,
"resetBlockedBy": "reset_not_enabled",
"nextResetAt": "2023-11-07T05:31:56Z",
"lifetimePnlDollars": 123,
"resets": 1,
"busts": 1,
"lastResetAt": "2023-11-07T05:31:56Z"
},
"positions": [
{
"tradeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"boughtSide": "yes",
"contracts": 123,
"costDollars": 123,
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"parlayId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fillVenue": "<string>",
"openedAt": "2023-11-07T05:31:56Z",
"marketTicker": "<string>",
"entryCents": 123
}
],
"positionsCount": 123,
"positionsTruncated": true,
"orders": [
{
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"action": "buy",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"orderSide": "yes",
"contracts": 123,
"filledContracts": 123,
"remainingContracts": 123,
"limitCents": 123,
"holdDollars": 123,
"timeInForce": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"marketTicker": "<string>"
}
],
"ordersCount": 123,
"ordersTruncated": true,
"asOf": "2023-11-07T05:31:56Z",
"venueData": true,
"mode": "paper",
"organization": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
}{
"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
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Get your portfolio
The key owner’s own paper portfolio in one call: the account, open positions (at most 500) and resting orders (at most 200), each naming the Arena instrument its market lists and the side held. Private picks included. With no X-Arena-Org header this is the key’s own main account. With the header it is that organization’s paper sandbox: its cash, positions and resting orders, and organization.slug. An unknown or forbidden organization is refused rather than answered from the personal account. No ticker, title or price while the venue-data switch is off. Not cached.
curl --request GET \
--url https://arena-predictions.com/api/v1/portfolio \
--header 'Authorization: Bearer <token>'import requests
url = "https://arena-predictions.com/api/v1/portfolio"
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/portfolio', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"account": {
"balanceDollars": 123,
"netWorthDollars": 123,
"openStakeDollars": 123,
"heldDollars": 123,
"openPositions": 1,
"restingOrders": 1,
"run": 1,
"runStartedAt": "2023-11-07T05:31:56Z",
"startBalanceDollars": 123,
"adjustmentsInRunDollars": 123,
"pnlSinceResetDollars": 123,
"selfResetEnabled": true,
"resetBlockedBy": "reset_not_enabled",
"nextResetAt": "2023-11-07T05:31:56Z",
"lifetimePnlDollars": 123,
"resets": 1,
"busts": 1,
"lastResetAt": "2023-11-07T05:31:56Z"
},
"positions": [
{
"tradeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"boughtSide": "yes",
"contracts": 123,
"costDollars": 123,
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"parlayId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fillVenue": "<string>",
"openedAt": "2023-11-07T05:31:56Z",
"marketTicker": "<string>",
"entryCents": 123
}
],
"positionsCount": 123,
"positionsTruncated": true,
"orders": [
{
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"action": "buy",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"orderSide": "yes",
"contracts": 123,
"filledContracts": 123,
"remainingContracts": 123,
"limitCents": 123,
"holdDollars": 123,
"timeInForce": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"marketTicker": "<string>"
}
],
"ordersCount": 123,
"ordersTruncated": true,
"asOf": "2023-11-07T05:31:56Z",
"venueData": true,
"mode": "paper",
"organization": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
}{
"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
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Authorizations
Authorization: Bearer arena_sk_... (the x-arena-key header is accepted too). Keys are made in Settings (https://arena-predictions.com/settings#api-keys) or with arena keys create, shown once, stored hashed.
Headers
Organization id. When present, this call uses that organization's paper sandbox. When absent, the key owner's personal paper account. A value that is not an organization id is 400 invalid_request. An unknown organization is 404 organization_not_found and one this key cannot use is 403 organization_forbidden. The personal account is never the fallback. Paper only. This header does not select a Combine evaluation account.
63Response
Your portfolio.
Null before the first trade.
Show child attributes
Show child attributes
500Show child attributes
Show child attributes
200Show child attributes
Show child attributes
"paper"Present when X-Arena-Org selected an organization sandbox. Absent on the personal account.
Show child attributes
Show child attributes