---
title: "Get your account"
method: GET
path: "/account"
tags: ["Portfolio"]
---

# Get your account

`GET /account`

## Request

- Base URL: `https://arena-predictions.com/api/v1`
- URL: `https://arena-predictions.com/api/v1/account`
- Auth: HTTP bearer

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.

## Query parameters

- `run` 'all' | 'current'

## Response `200`

The account.

- AccountResponse
  - `account` Account, required
    - `balanceDollars` number, required: Spendable paper dollars.
    - `netWorthDollars` number, required: Balance plus open positions at cost plus money held by resting buys.
    - `openStakeDollars` number, required
    - `heldDollars` number, required: Held by resting buy orders.
    - `openPositions` integer, required: How many. Positions themselves are not in this response.
    - `restingOrders` integer, required
    - `run` integer, required: 0 until the first reset.
    - `runStartedAt` string, date-time, nullable, required
    - `startBalanceDollars` number, required: What the run started with: 100,000.
    - `adjustmentsInRunDollars` number, required: Operator corrections in this run. Not profit.
    - `pnlSinceResetDollars` number, required: Net worth less the run's start and adjustments.
    - `selfResetEnabled` boolean, required: Whether the owner turned resets on in Settings on the web.
    - `resetBlockedBy` 'reset_not_enabled' | 'cooldown' | 'open_positions' | 'nothing_to_reset' | 'null', nullable, required: What would refuse a reset right now, or null.
    - `nextResetAt` string, date-time, nullable, required: Set while the 30-day cooldown runs.
    - `lifetimePnlDollars` number: Profit since 2026-09-01 across every run. Left out with run=current.
    - `resets` integer: Left out with run=current.
    - `busts` integer: Left out with run=current.
    - `lastResetAt` string, date-time, nullable: Left out with run=current.
  - `view` 'all' | 'current_run', required
  - `mode` 'paper', required

## Other responses

- `400`: invalid_request: run is not current or all.
- `401`: Missing, malformed, unknown, revoked or expired key. Carries a WWW-Authenticate: Bearer challenge.
- `403`: insufficient_scope: the key does not carry portfolio:read.
- `404`: account_not_found: the key's account has no balance yet.
- `429`: rate_limited (over the plan's minute limit) or quota_exceeded (over the month). Only while the limits are enforced; until then requests are counted and the headers set, and nothing is refused. error.retryAfterSeconds equals Retry-After.
- `503`: The key could not be verified, or the account could not be read, right now. Retry after the Retry-After seconds.

---

[API](https://skmtc.dev/arena-predictions/apis/arena-api.md) · [All operations](https://skmtc.dev/arena-predictions/apis/arena-api/llms.txt) · [OpenAPI document](https://skmtc.dev/arena-predictions/apis/arena-api/revisions/9d89d166dae6?raw)
