---
title: "Get trader"
method: GET
path: "/v1/view/trader/{pubkey}"
tags: ["Trader"]
---

# Get trader

`GET /v1/view/trader/{pubkey}`

Handles `GET /v1/view/trader/{pubkey}` via `get.v1.view.trader.by_pubkey`.

## Path parameters

- `pubkey` string, required

## Response `200`

Phoenix Eternal trader

- TraderView — Trader view with all trading information
  - `accumulatedFunding` string, required — Accumulated funding amount.
  - `authority` string, required — Trader authority public key.
  - `cancelMargin` string, required — Margin threshold used for cancellation checks.
  - `capabilities` TraderCapabilitiesView, required — Capability matrix exposed alongside a trader's status. Each field is a nested object that reports whether the action is immediately available (`immediate`) and whether it becomes available after activating a cold trader (`viaColdActivation`).
    - `depositCollateral` CapabilityAccessView, required — Capability exposure for the current trader state. `immediate` indicates the action can be taken without additional state transitions, while `via_cold_activation` signals the action will succeed if the trader warms from `InitializedCold` to `InitializedHot` during processing.
      - `immediate` boolean, required — Whether this capability is currently available.
      - `viaColdActivation` boolean — Whether this capability becomes available after cold activation.
    - `placeLimitOrder` CapabilityAccessView, required — Capability exposure for the current trader state. `immediate` indicates the action can be taken without additional state transitions, while `via_cold_activation` signals the action will succeed if the trader warms from `InitializedCold` to `InitializedHot` during processing.
      - `immediate` boolean, required — Whether this capability is currently available.
      - `viaColdActivation` boolean — Whether this capability becomes available after cold activation.
    - `placeMarketOrder` CapabilityAccessView, required — Capability exposure for the current trader state. `immediate` indicates the action can be taken without additional state transitions, while `via_cold_activation` signals the action will succeed if the trader warms from `InitializedCold` to `InitializedHot` during processing.
      - `immediate` boolean, required — Whether this capability is currently available.
      - `viaColdActivation` boolean — Whether this capability becomes available after cold activation.
    - `riskIncreasingTrade` CapabilityAccessView, required — Capability exposure for the current trader state. `immediate` indicates the action can be taken without additional state transitions, while `via_cold_activation` signals the action will succeed if the trader warms from `InitializedCold` to `InitializedHot` during processing.
      - `immediate` boolean, required — Whether this capability is currently available.
      - `viaColdActivation` boolean — Whether this capability becomes available after cold activation.
    - `riskReducingTrade` CapabilityAccessView, required — Capability exposure for the current trader state. `immediate` indicates the action can be taken without additional state transitions, while `via_cold_activation` signals the action will succeed if the trader warms from `InitializedCold` to `InitializedHot` during processing.
      - `immediate` boolean, required — Whether this capability is currently available.
      - `viaColdActivation` boolean — Whether this capability becomes available after cold activation.
    - `withdrawCollateral` CapabilityAccessView, required — Capability exposure for the current trader state. `immediate` indicates the action can be taken without additional state transitions, while `via_cold_activation` signals the action will succeed if the trader warms from `InitializedCold` to `InitializedHot` during processing.
      - `immediate` boolean, required — Whether this capability is currently available.
      - `viaColdActivation` boolean — Whether this capability becomes available after cold activation.
  - `collateralBalance` string, required — Collateral balance.
  - `discountedUnrealizedPnl` string, required — Discounted unrealized PnL used in risk calculations.
  - `effectiveCollateral` string, required — Effective collateral used for risk checks.
  - `effectiveCollateralForWithdrawals` string, required — Effective collateral used for withdrawal checks.
  - `flags` integer, required — Canonical capability mask stored in every trader header. The derived preset constructors (`cold`, `hot_active`, `reduce_only`, `frozen`) preserve the intended behavioural guarantees: cold traders operate from their local buffer until warmed, active traders have full matching-engine access, reduce-only traders may only take risk-reducing actions (but can still move collateral), and frozen traders are fully quarantined with balance transfers disabled.
  - `initialMargin` string, required — Required initial margin.
  - `initialMarginForWithdrawals` string, required — Initial margin used for withdrawal checks.
  - `isInActiveTraders` boolean, required — Whether trader is currently in the active-trader buffer.
  - `lastDepositSlot` integer, required — Last collateral deposit slot.
  - `limitOrders` object, required — Open limit orders grouped by symbol.
  - `maintenanceMargin` string, required — Required maintenance margin.
  - `makerFeeOverrideMultiplier` number, double, required — Maker fee multiplier (1.0 = default, <1.0 = discount, >1.0 = premium).
  - `maxPositions` integer, required — Maximum number of positions allowed.
  - `numMarketsWithSplines` integer, required — Number of markets where this trader has registered splines
  - `portfolioValue` string, required — Current portfolio value.
  - `positions` TraderPositionView[], required — Open positions.
    - `accumulatedFunding` string, required — Accumulated funding amount.
    - `backstopMargin` string, required — The backstop margin threshold for transfer mechanism.
    - `discountedUnrealizedPnl` string, required — Unrealized PnL after risk discounting.
    - `entryPrice` string, required — Average entry price.
    - `initialMargin` string, required — The total initial margin required for position + limit orders.
    - `limitOrderMargin` string, required — The margin required for current limit orders.
    - `liquidationPrice` string, required — Estimated liquidation price.
    - `maintenanceMargin` string, required — The maintenance margin required to avoid liquidation.
    - `positionInitialMargin` string, required — The initial margin required for just the position (excluding limit orders).
    - `positionSize` string, required — Net position size in base units.
    - `positionValue` string, required — Current position notional value.
    - `stopLossPrice` string, nullable — Best stop-loss trigger price, if configured.
    - `symbol` string, required — Market symbol (for example, "SOL-PERP").
    - `takeProfitPrice` string, nullable — Best take-profit trigger price, if configured.
    - `unrealizedPnl` string, required — Current unrealized PnL.
    - `unsettledFunding` string, required — Unsettled funding amount. - Positive value = funding you will receive when settled (increases collateral) - Negative value = funding you owe when settled (decreases collateral)
    - `virtualQuotePosition` string, required — Virtual quote position in quote units.
  - `riskState` 'healthy' | 'unhealthy' | 'underwater' | 'zeroCollateralNoPositions', required
  - `riskTier` 'safe' | 'atRisk' | 'cancellable' | 'liquidatable' | 'backstopLiquidatable' | 'highRisk', required
  - `slot` integer, required — Solana slot of the state snapshot used to build this trader view.
  - `slotIndex` integer, required — Intra-slot sequence index of the state snapshot used to build this trader view.
  - `state` 'uninitialized' | 'cold' | 'active' | 'reduceOnly' | 'frozen', required — Serializable representation of a trader's high-level activity state.
  - `takerFeeOverrideMultiplier` number, double, required — Taker fee multiplier (1.0 = default, <1.0 = discount, >1.0 = premium).
  - `traderKey` string, required — Trader PDA public key.
  - `traderPdaIndex` integer, required — Trader PDA index under the authority.
  - `traderSubaccountIndex` integer, required — Trader subaccount index.
  - `unrealizedPnl` string, required — Total unrealized PnL.
  - `unsettledFundingOwed` string, required — Unsettled funding amount owed to the trader. - Positive value = funding you will receive when settled (increases collateral) - Negative value = funding you owe when settled (decreases collateral)

## Other responses

- `400` — Standard JSON error payload.
- `500` — Standard JSON error payload.

---

[API](https://skmtc.net/phoenix/apis/phoenix-eternal-api.md) · [All operations](https://skmtc.net/phoenix/apis/phoenix-eternal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phoenix/phoenix-eternal-api/versions/0f598402d680/schema)
