Skip to main content
The portfolio API gives you a unified view of your account state across all connected venues. Use it to monitor open positions and available balances, inspect fill history, track realized and unrealized PnL, supply fair-value overrides for mark-to-market calculations, look up fee schedules, and configure or trigger risk controls. All methods are available on the client.portfolio and client.risk sub-clients.

Positions

Retrieve all open positions for a subaccount. Each entry includes the instrument, size, side, and average entry price. Use client.positions(subaccount_id) (top-level shortcut) or client.portfolio.positions(subaccount_id) — both call GET /v1/positions.

Balances

Retrieve the cash balances for a subaccount across all connected venues. The response includes available and total balance breakdowns per venue.

Fills

Retrieve the fill history for a subaccount. Fills represent individual execution events — each fill records the quantity and price at which an order was matched.

PnL

Current PnL

Retrieve the current realized and unrealized profit and loss for a subaccount.

PnL History

Retrieve a time series of PnL snapshots. The limit parameter controls how many entries are returned (default 200).

Fair Values

Override the mark-to-market prices used for unrealized PnL calculations by supplying your own fair values. This is useful when your internal mid-market model differs from the last traded price. Call client.portfolio.set_fair_values(subaccount_id, values) — PUT /v1/fair-values. Pass a list of objects, each containing an instrument_id and a fair_value string.
Fair values affect only PnL calculations — they do not influence order routing or execution. Submit updated values whenever your internal model reprices.

Fees

Fee Schedule

Retrieve the fee schedule for a venue or all venues. Pass venue=None (the default) to return schedules for every connected venue.

Per-Instrument Fees

Look up the effective fee rates for a specific list of instruments. This is useful before placing large orders when you need precise cost estimates.

Risk Management

The client.risk sub-client provides controls that span all order activity on your account. These endpoints require the same Ed25519 credentials as trading operations.

Risk State

Retrieve the current risk state for a subaccount, including utilization against configured limits.

Risk Limits

Retrieve the configured risk limits for a subaccount.
Update limits with client.risk.set_limits(**payload). The payload fields depend on the limit types your account supports.

Cancel All Orders (Risk)

Cancel all open orders for a subaccount through the risk API. This mirrors client.orders.cancel_all() but is scoped to the risk control plane.

Kill Switch

Activate the kill switch to immediately halt all order submission and cancel every open order on your account. Deactivate it by calling the same method with enabled=False.
Activating the kill switch (enabled=True) immediately halts all order submission and cancels every open order on your account. The account remains locked until you explicitly deactivate the switch with enabled=False. Use this only in emergency or automated circuit-breaker scenarios.