---
title: "Get a competition trader paper balance, positions, and PnL chart"
method: GET
path: "/v1/streaming/competitions/{competitionId}/traders/{username}"
tags: ["streaming"]
---

# Get a competition trader paper balance, positions, and PnL chart

`GET /v1/streaming/competitions/{competitionId}/traders/{username}`

## Path parameters

- `competitionId` string, required
- `username` string, required

## Response `200`

Successful response

- PaperCompetitionTraderOutput
  - `as_of` integer, required — Unix timestamp in seconds
  - `refresh_after_ms` 1000, required
  - `competition` object, required
    - `id` string, required
    - `name` string, nullable, required
    - `status` 'pending' | 'countdown' | 'active' | 'ended' | 'settled' | 'cancelled', required
    - `trading_starts_at` string, date-time, nullable, required
    - `trading_ends_at` string, date-time, nullable, required
    - `starting_balance` string, required — Base-10 decimal encoded as a string
  - `trader` object, required
    - `id` string, uuid, required
    - `username` string, required
    - `display_name` string, required
    - `avatar_url` string, nullable, required
    - `x_username` string, nullable, required
  - `balance` object, required
    - `account_value` string, required — Base-10 decimal encoded as a string
    - `available_balance` string, required — Base-10 decimal encoded as a string
    - `raw_usd` string, required — Base-10 decimal encoded as a string
    - `total_margin_used` string, required — Base-10 decimal encoded as a string
    - `total_position_value` string, required — Base-10 decimal encoded as a string
    - `realized_pnl` string, required — Base-10 decimal encoded as a string
    - `unrealized_pnl` string, required — Base-10 decimal encoded as a string
    - `pnl` string, required — Base-10 decimal encoded as a string
    - `pnl_percent` string, required — Base-10 decimal encoded as a string
  - `positions` object[], required
    - `symbol` string, required
    - `side` 'LONG' | 'SHORT', required
    - `size` string, required — Base-10 decimal encoded as a string
    - `entry_price` string, required — Base-10 decimal encoded as a string
    - `mark_price` string, required — Base-10 decimal encoded as a string
    - `position_value` string, required — Base-10 decimal encoded as a string
    - `unrealized_pnl` string, required — Base-10 decimal encoded as a string
    - `return_on_equity` string, required — Base-10 decimal encoded as a string
    - `liquidation_price` string, nullable, required — Base-10 decimal encoded as a string
    - `leverage_type` 'cross' | 'isolated', required
    - `leverage` integer, required
    - `margin_used` string, required — Base-10 decimal encoded as a string
    - `opened_at` string, date-time, nullable, required
  - `pnl_chart` object, required
    - `resolution_seconds` integer, required
    - `points` object[], required
      - `ts` integer, required — Unix timestamp in seconds
      - `equity` string, required — Base-10 decimal encoded as a string
      - `pnl` string, required — Base-10 decimal encoded as a string
      - `pnl_percent` string, required — Base-10 decimal encoded as a string

## Other responses

- `400` — Invalid input data
- `404` — Resource not found
- `500` — Internal server error

## Changes

- **2026-08-27** `2e6f0d9a237e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/legend/apis/legend-api/changes/v1/streaming/competitions/:competitionId/traders/:username/get.md)

---

[API](https://skmtc.dev/legend/apis/legend-api.md) · [All operations](https://skmtc.dev/legend/apis/legend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/legend/legend-api/revisions/49a2cefd3b8c/schema)
