Private accounts
Accounts are private by default, and no key can make one public.
The key owner always sees their own data under
portfolio:read. On the owner’s own picks, placedPrivate says the pick was placed while private, and shown says whether others can see it now.
X-Arena-Org on GET /portfolio and GET /portfolio/trades returns that organization’s paper sandbox (cash, positions, resting orders and trades) and organization.slug. Those reads do not return the personal account. The same header on POST /portfolio/orders and DELETE /portfolio/orders/{orderId} selects that sandbox for the order, and the response includes organization. Without the header those calls stay on the personal account. GET /account is the personal account. GET /organizations lists the organizations this key belongs to; any valid key, and the list ignores X-Arena-Org. See Authentication.
Settled picks
GET /traders/{traderId}/picks lists won, lost and void picks only. No exchange tickers, titles or entry prices:
marketLabelis Arena’s own label (KC ML,KC -3.5,Over 44.5), ornullwithmarketLabelReason.stakeDollarsisnullon won and void picks, because with the P&L it would reveal the entry price.instrumentIdlinks to an Arena instrument when one exists, elsenull.
Venue data
Venue market ids, side ids and venue prices are served only while the venue-data switch is on. It is currently off. While off:GET /quotesandGET /instruments/{ref}/quotesanswer403 venue_data_off.- No keyed response names a ticker or a venue’s price.
- Responses that could carry venue data include
venueData: false. GET /traders/{traderId}/track-recordis served while the switch is off. That keyed envelope has the same scores and signing key as the public record, and names no series ticker and no venue. The CLI, the Python SDK and hosted MCP verify still read the public envelope, which names series.
limitCents, or a position’s costDollars and contracts) are served regardless.